POC alu code

This commit is contained in:
Willem 2022-02-04 22:44:11 +01:00
parent 5a0b3978d1
commit bde611e456
13 changed files with 134 additions and 25 deletions

View file

@ -1,6 +1,7 @@
package love.distributedrebirth.numberxd; package love.distributedrebirth.numberxd;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
import love.distributedrebirth.numberxd.base2t.BaseNumber; import love.distributedrebirth.numberxd.base2t.BaseNumber;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
@ -8,5 +9,7 @@ public interface BaseGetậl<T extends BaseGetậl<T,V>,V extends BaseNumber<V>>
V getValue(); V getValue();
T toClone(); T toClone(BaseIteratorOctal values);
BaseIteratorOctal iteratorOctalsByClone();
} }

View file

@ -47,7 +47,12 @@ public class GroßGetậl1ⁿᴰ extends AbstractBaseGetậlMatrix1<GroßGetậl
} }
@Override @Override
public GroßGetậl1ⁿᴰ toClone() { public GroßGetậl1ⁿᴰ toClone(BaseIteratorOctal values) {
return new GroßGetậl1ⁿᴰ(value.toClone()); return new GroßGetậl1ⁿᴰ(values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
return value.iteratorOctalsByClone();
} }
} }

View file

@ -43,11 +43,16 @@ public class GroßGetậl6ˢᴰ extends AbstractBaseGetậlMatrix2<GroßGetậl6
} }
@Override @Override
public GroßGetậl6ˢᴰ toClone() { public GroßGetậl6ˢᴰ toClone(BaseIteratorOctal values) {
return new GroßGetậl6ˢᴰ(values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack(); BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
for (int i=0;i<this.values.length;i++) { for (int i=0;i<this.values.length;i++) {
cloneStack.addIterator(this.values[i].iteratorOctalsByClone()); cloneStack.addIterator(this.values[i].iteratorOctalsByClone());
} }
return new GroßGetậl6ˢᴰ(cloneStack); return cloneStack;
} }
} }

View file

@ -31,7 +31,12 @@ public class GroßGetậlŌṁDiamond1ⁿᴰ extends AbstractGroßGetậlŌṁ1
} }
@Override @Override
public GroßGetậlŌṁDiamond1ⁿᴰ toClone() { public GroßGetậlŌṁDiamond1ⁿᴰ toClone(BaseIteratorOctal values) {
return new GroßGetậlŌṁDiamond1ⁿᴰ(getFractalLevel(), values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack(); BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
for (int x=0;x<getMatrix1Length();x++) { for (int x=0;x<getMatrix1Length();x++) {
setMatrix1(x); setMatrix1(x);
@ -40,6 +45,6 @@ public class GroßGetậlŌṁDiamond1ⁿᴰ extends AbstractGroßGetậlŌṁ1
cloneStack.addIterator(getValue().iteratorOctalsByClone()); cloneStack.addIterator(getValue().iteratorOctalsByClone());
} }
} }
return new GroßGetậlŌṁDiamond1ⁿᴰ(getFractalLevel(), cloneStack); return cloneStack;
} }
} }

View file

@ -27,7 +27,12 @@ public class GroßGetậlŌṁDiamond6ˢᴰ extends AbstractGroßGetậlŌṁ6ˢ
} }
@Override @Override
public GroßGetậlŌṁDiamond6ˢᴰ toClone() { public GroßGetậlŌṁDiamond6ˢᴰ toClone(BaseIteratorOctal values) {
return new GroßGetậlŌṁDiamond6ˢᴰ(getFractalLevel(), values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack(); BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
for (int x=0;x<getMatrix1Length();x++) { for (int x=0;x<getMatrix1Length();x++) {
setMatrix1(x); setMatrix1(x);
@ -39,6 +44,6 @@ public class GroßGetậlŌṁDiamond6ˢᴰ extends AbstractGroßGetậlŌṁ6ˢ
} }
} }
} }
return new GroßGetậlŌṁDiamond6ˢᴰ(getFractalLevel(), cloneStack); return cloneStack;
} }
} }

View file

@ -26,7 +26,12 @@ public class GroßGetậlŌṁHyperStàr1ⁿᴰ extends AbstractGroßGetậlŌ
} }
@Override @Override
public GroßGetậlŌṁHyperStàr1ⁿᴰ toClone() { public GroßGetậlŌṁHyperStàr1ⁿᴰ toClone(BaseIteratorOctal values) {
return new GroßGetậlŌṁHyperStàr1ⁿᴰ(getFractalLevel(), values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack(); BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
for (int x=0;x<getMatrix1Length();x++) { for (int x=0;x<getMatrix1Length();x++) {
setMatrix1(x); setMatrix1(x);
@ -35,6 +40,6 @@ public class GroßGetậlŌṁHyperStàr1ⁿᴰ extends AbstractGroßGetậlŌ
cloneStack.addIterator(getValue().iteratorOctalsByClone()); cloneStack.addIterator(getValue().iteratorOctalsByClone());
} }
} }
return new GroßGetậlŌṁHyperStàr1ⁿᴰ(getFractalLevel(), cloneStack); return cloneStack;
} }
} }

View file

@ -26,7 +26,12 @@ public class GroßGetậlŌṁHyperStàr6ˢᴰ extends AbstractGroßGetậlŌṁ
} }
@Override @Override
public GroßGetậlŌṁHyperStàr6ˢᴰ toClone() { public GroßGetậlŌṁHyperStàr6ˢᴰ toClone(BaseIteratorOctal values) {
return new GroßGetậlŌṁHyperStàr6ˢᴰ(getFractalLevel(), values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack(); BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
for (int x=0;x<getMatrix1Length();x++) { for (int x=0;x<getMatrix1Length();x++) {
setMatrix1(x); setMatrix1(x);
@ -38,6 +43,6 @@ public class GroßGetậlŌṁHyperStàr6ˢᴰ extends AbstractGroßGetậlŌṁ
} }
} }
} }
return new GroßGetậlŌṁHyperStàr6ˢᴰ(getFractalLevel(), cloneStack); return cloneStack;
} }
} }

View file

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
import love.distributedrebirth.numberxd.base2t.part.T04PartQuad; import love.distributedrebirth.numberxd.base2t.part.T04PartQuad;
import love.distributedrebirth.numberxd.base2t.type.V009Tyte; import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
import love.distributedrebirth.numberxd.base2t.type.V036Teger; import love.distributedrebirth.numberxd.base2t.type.V036Teger;
@ -16,6 +17,10 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
private static final Character LEFT_TO_RIGHT_MARK = 0x200E; private static final Character LEFT_TO_RIGHT_MARK = 0x200E;
private static final Character RIGHT_TO_LEFT_MARK = 0x200F; private static final Character RIGHT_TO_LEFT_MARK = 0x200F;
public Gê̄ldGetậl(BaseIteratorOctal values) {
this (new V036Teger(values));
}
public Gê̄ldGetậl(V036Teger value) { public Gê̄ldGetậl(V036Teger value) {
this.value = value; this.value = value;
this.totalDecimalValue = calculateDecimalValue(); this.totalDecimalValue = calculateDecimalValue();
@ -169,7 +174,12 @@ public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V0
} }
@Override @Override
public Gê̄ldGetậl toClone() { public Gê̄ldGetậl toClone(BaseIteratorOctal values) {
return new Gê̄ldGetậl(value.toClone()); return new Gê̄ldGetậl(values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
return value.iteratorOctalsByClone();
} }
} }

View file

@ -34,11 +34,16 @@ public class KlompGetậl4ˢᴰ extends AbstractBaseGetậlMatrix1<KlompGetậl4
} }
@Override @Override
public KlompGetậl4ˢᴰ toClone() { public KlompGetậl4ˢᴰ toClone(BaseIteratorOctal values) {
return new KlompGetậl4ˢᴰ(values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack(); BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
for (int i=0;i<this.values.length;i++) { for (int i=0;i<this.values.length;i++) {
cloneStack.addIterator(this.values[i].iteratorOctalsByClone()); cloneStack.addIterator(this.values[i].iteratorOctalsByClone());
} }
return new KlompGetậl4ˢᴰ(cloneStack); return cloneStack;
} }
} }

View file

@ -61,7 +61,12 @@ public class KlompÅtŌṁKāassGetậl4ˢᴰ extends AbstractBaseGetậlMatrix2
} }
@Override @Override
public KlompÅtŌṁKāassGetậl4ˢᴰ toClone() { public KlompÅtŌṁKāassGetậl4ˢᴰ toClone(BaseIteratorOctal values) {
return new KlompÅtŌṁKāassGetậl4ˢᴰ(getKaasCuts(), values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack(); BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
for (int x=0;x<getMatrix1Length();x++) { for (int x=0;x<getMatrix1Length();x++) {
setMatrix1(x); setMatrix1(x);
@ -70,6 +75,6 @@ public class KlompÅtŌṁKāassGetậl4ˢᴰ extends AbstractBaseGetậlMatrix2
cloneStack.addIterator(getValue().iteratorOctalsByClone()); cloneStack.addIterator(getValue().iteratorOctalsByClone());
} }
} }
return new KlompÅtŌṁKāassGetậl4ˢᴰ(getKaasCuts(), cloneStack); return cloneStack;
} }
} }

View file

@ -37,11 +37,16 @@ public class WaveGetậl1ᑫᴰ extends AbstractBaseGetậlMatrix1<WaveGetậl1
} }
@Override @Override
public WaveGetậl1ᑫᴰ toClone() { public WaveGetậl1ᑫᴰ toClone(BaseIteratorOctal values) {
return new WaveGetậl1ᑫᴰ(values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack(); BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
for (int i=0;i<this.values.length;i++) { for (int i=0;i<this.values.length;i++) {
cloneStack.addIterator(this.values[i].iteratorOctalsByClone()); cloneStack.addIterator(this.values[i].iteratorOctalsByClone());
} }
return new WaveGetậl1ᑫᴰ(cloneStack); return cloneStack;
} }
} }

View file

@ -26,7 +26,12 @@ public class WaveGetậl1ⁿᴰ implements BaseGetậl<WaveGetậl1ⁿᴰ, V0x04
} }
@Override @Override
public WaveGetậl1ⁿᴰ toClone() { public WaveGetậl1ⁿᴰ toClone(BaseIteratorOctal values) {
return new WaveGetậl1ⁿᴰ(getValue().iteratorOctalsByClone()); return new WaveGetậl1ⁿᴰ(values);
}
@Override
public BaseIteratorOctal iteratorOctalsByClone() {
return value.iteratorOctalsByClone();
} }
} }

View file

@ -1,8 +1,54 @@
package love.distributedrebirth.numberxd.alu; package love.distributedrebirth.numberxd.alu;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.numberxd.BaseGetậl;
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
import love.distributedrebirth.numberxd.base2t.BaseNumber;
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ŌctopǔsALU { public class ŌctopǔsALU {
public <T extends BaseGetậl<T,V>,V extends BaseNumber<V>> BaseGetậl<T,V> math(BaseGetậl<T,V> opA, BaseGetậl<T,V> opB) {
BaseIteratorOctal bioA = opA.iteratorOctalsByClone();
BaseIteratorOctal bioB = opB.iteratorOctalsByClone();
BaseIteratorOctalALU bioALU = new BaseIteratorOctalALU(bioA, bioB);
BaseGetậl<T,V> result = opA.toClone(bioALU);
return result;
}
class BaseIteratorOctalALU implements BaseIteratorOctal {
private final BaseIteratorOctal bioA;
private final BaseIteratorOctal bioB;
public BaseIteratorOctalALU(BaseIteratorOctal bioA, BaseIteratorOctal bioB) {
this.bioA = bioA;
this.bioB = bioB;
}
@Override
public boolean hasNext() {
return bioA.hasNext();
}
@Override
public T08PartOctal next() {
T08PartOctal valA = bioA.next();
T08PartOctal valB = bioB.next();
int valANum = valA.BȍőnRangTelNul();
int valBNum = valB.BȍőnRangTelNul();
var valResultNum = valANum + valBNum;
if (valResultNum > valA.BãßInstances().length) {
valResultNum = valA.BãßInstances().length -1;
}
T08PartOctal valResult = T08PartOctal.values()[valResultNum];
return valResult;
}
}
} }