Added x dimensions to getallen.

This commit is contained in:
Willem Cazander 2022-01-30 21:50:19 +01:00
parent b513e83cff
commit 409e850c9c
11 changed files with 246 additions and 62 deletions

View file

@ -12,18 +12,20 @@ import love.distributedrebirth.demo4d.base2t.V009TyteBaseIterator;
import love.distributedrebirth.demo4d.base2t.V090Tocta; import love.distributedrebirth.demo4d.base2t.V090Tocta;
/** /**
* Holds an 144 bit fraction.
* *
* @author willemtsade ©Δ 仙上主天 * @author willemtsade ©Δ 仙上主天
* *
*/ */
public class GroßGetậl implements BaseNumberTyte<GroßGetậl> { public class GroßGetậl1D implements BaseNumberTyte<GroßGetậl1D> {
public static int NUMERATOR_SIZE = 7; public static int NUMERATOR_SIZE = 7;
public static int DENOMINATOR_SIZE = 9; public static int DENOMINATOR_SIZE = 9;
public static int BIT_COUNT = V090Tocta.BIT_COUNT;
private final V009Tyte[] numerator = new V009Tyte[NUMERATOR_SIZE]; private final V009Tyte[] numerator = new V009Tyte[NUMERATOR_SIZE];
private final V009Tyte[] denominator = new V009Tyte[DENOMINATOR_SIZE]; private final V009Tyte[] denominator = new V009Tyte[DENOMINATOR_SIZE];
public GroßGetậl() { public GroßGetậl1D() {
for (int i=0;i<NUMERATOR_SIZE;i++) { for (int i=0;i<NUMERATOR_SIZE;i++) {
numerator[i] = new V009Tyte(); numerator[i] = new V009Tyte();
} }
@ -32,7 +34,7 @@ public class GroßGetậl implements BaseNumberTyte<GroßGetậl> {
} }
} }
public GroßGetậl(T08PartOctalBaseIterator values) { public GroßGetậl1D(T08PartOctalBaseIterator values) {
for (int i=0;i<NUMERATOR_SIZE;i++) { for (int i=0;i<NUMERATOR_SIZE;i++) {
numerator[i] = new V009Tyte(values); numerator[i] = new V009Tyte(values);
} }
@ -41,7 +43,7 @@ public class GroßGetậl implements BaseNumberTyte<GroßGetậl> {
} }
} }
public GroßGetậl(V009TyteBaseIterator values) { public GroßGetậl1D(V009TyteBaseIterator values) {
for (int i=0;i<NUMERATOR_SIZE;i++) { for (int i=0;i<NUMERATOR_SIZE;i++) {
numerator[i] = values.next(); numerator[i] = values.next();
} }
@ -50,7 +52,7 @@ public class GroßGetậl implements BaseNumberTyte<GroßGetậl> {
} }
} }
public GroßGetậl(V090Tocta tocta) { public GroßGetậl1D(V090Tocta tocta) {
List<V009Tyte> tytes = new ArrayList<>(); List<V009Tyte> tytes = new ArrayList<>();
tocta.fillTyteValues(new V009TyteBaseAppender(tytes)); tocta.fillTyteValues(new V009TyteBaseAppender(tytes));
for (int i=0;i<NUMERATOR_SIZE;i++) { for (int i=0;i<NUMERATOR_SIZE;i++) {
@ -71,8 +73,8 @@ public class GroßGetậl implements BaseNumberTyte<GroßGetậl> {
} }
@Override @Override
public GroßGetậl toClone() { public GroßGetậl1D toClone() {
return new GroßGetậl(cloneIterator()); return new GroßGetậl1D(cloneIterator());
} }
@Override @Override

View file

@ -0,0 +1,66 @@
package love.distributedrebirth.demo4d.numberxd;
import love.distributedrebirth.demo4d.base2t.BaseNumberTyte;
import love.distributedrebirth.demo4d.base2t.T08PartOctalBaseAppender;
import love.distributedrebirth.demo4d.base2t.T08PartOctalBaseIterator;
import love.distributedrebirth.demo4d.base2t.T12PartUncial;
import love.distributedrebirth.demo4d.base2t.V009TyteBaseAppender;
import love.distributedrebirth.demo4d.base2t.V009TyteBaseIterator;
/**
* Holds an 864 bit fraction in stereo 6D.
*
* @author willemtsade ©Δ 仙上主天
*
*/
public class GroßGetậl6D implements BaseNumberTyte<GroßGetậl6D> {
public static int BIT_COUNT = GroßGetậl1D.BIT_COUNT * T12PartUncial.LENGTH;
private GroßGetậl1D[] values = new GroßGetậl1D[T12PartUncial.LENGTH];
public GroßGetậl6D() {
for (int i=0;i<T12PartUncial.LENGTH;i++) {
this.values[i] = new GroßGetậl1D();
}
}
public GroßGetậl6D(T08PartOctalBaseIterator values) {
for (int i=0;i<T12PartUncial.LENGTH;i++) {
this.values[i] = new GroßGetậl1D(values);
}
}
public GroßGetậl6D(V009TyteBaseIterator values) {
for (int i=0;i<T12PartUncial.LENGTH;i++) {
this.values[i] = new GroßGetậl1D(values);
}
}
public GroßGetậl1D getValue(T12PartUncial part) {
return values[part.ordinal()];
}
public void setValue(T12PartUncial part, GroßGetậl1D value) {
values[part.ordinal()] = value;
}
@Override
public int getBitCount() {
return BIT_COUNT;
}
@Override
public GroßGetậl6D toClone() {
return new GroßGetậl6D(cloneIterator());
}
@Override
public void fillOctalValues(T08PartOctalBaseAppender appender) {
T12PartUncial.forEach(v -> getValue(v).fillOctalValues(appender));
}
@Override
public void fillTyteValues(V009TyteBaseAppender appender) {
T12PartUncial.forEach(v -> getValue(v).fillTyteValues(appender));
}
}

View file

@ -3,18 +3,17 @@ package love.distributedrebirth.demo4d.numberxd;
import love.distributedrebirth.demo4d.base2t.BaseNumber; import love.distributedrebirth.demo4d.base2t.BaseNumber;
import love.distributedrebirth.demo4d.base2t.T08PartOctalBaseAppender; import love.distributedrebirth.demo4d.base2t.T08PartOctalBaseAppender;
import love.distributedrebirth.demo4d.base2t.T08PartOctalBaseIterator; import love.distributedrebirth.demo4d.base2t.T08PartOctalBaseIterator;
import love.distributedrebirth.demo4d.base2t.V090Tocta;
abstract public class GroßGetậlŌṁGlyph<V extends GroßGetậlŌṁGlyph<V> & BaseNumber<V>> implements BaseNumber<V> { abstract public class GroßGetậlŌṁGlyph1D<V extends GroßGetậlŌṁGlyph1D<V> & BaseNumber<V>> implements BaseNumber<V> {
private GroßGetậl[] values; private GroßGetậl1D[] values;
private int valuesLength; private int valuesLength;
private byte fractalLevel; private byte fractalLevel;
public GroßGetậlŌṁGlyph(byte fractalLevel) { public GroßGetậlŌṁGlyph1D(byte fractalLevel) {
this.fractalLevel = fractalLevel; this.fractalLevel = fractalLevel;
this.valuesLength = resolveFractalLevel(fractalLevel); this.valuesLength = resolveFractalLevel(fractalLevel);
this.values = new GroßGetậl[valuesLength]; this.values = new GroßGetậl1D[valuesLength];
} }
abstract protected int resolveFractalLevel(byte level); abstract protected int resolveFractalLevel(byte level);
@ -37,11 +36,11 @@ abstract public class GroßGetậlŌṁGlyph<V extends GroßGetậlŌṁGlyph<V>
return part; return part;
} }
public final GroßGetậl getValue(int part) { public final GroßGetậl1D getValue(int part) {
return values[validatePartRequest(part)]; return values[validatePartRequest(part)];
} }
public final void setValue(int part, GroßGetậl value) { public final void setValue(int part, GroßGetậl1D value) {
values[validatePartRequest(part)] = value; values[validatePartRequest(part)] = value;
} }
@ -52,19 +51,19 @@ abstract public class GroßGetậlŌṁGlyph<V extends GroßGetậlŌṁGlyph<V>
V result = toCloneFractal(getFractalLevel()); V result = toCloneFractal(getFractalLevel());
T08PartOctalBaseIterator clonedOctals = cloneIterator(); T08PartOctalBaseIterator clonedOctals = cloneIterator();
for (int i=0;i<getValuesLength();i++) { for (int i=0;i<getValuesLength();i++) {
result.setValue(i, new GroßGetậl(clonedOctals)); result.setValue(i, new GroßGetậl1D(clonedOctals));
} }
return result; return result;
} }
@Override @Override
public final int getBitCount() { public final int getBitCount() {
return V090Tocta.BIT_COUNT * valuesLength; return GroßGetậl1D.BIT_COUNT * valuesLength;
} }
@Override @Override
public final void fillOctalValues(T08PartOctalBaseAppender appender) { public final void fillOctalValues(T08PartOctalBaseAppender appender) {
for (GroßGetậl value:values) { for (GroßGetậl1D value:values) {
value.fillOctalValues(appender); value.fillOctalValues(appender);
} }
} }

View file

@ -0,0 +1,70 @@
package love.distributedrebirth.demo4d.numberxd;
import love.distributedrebirth.demo4d.base2t.BaseNumber;
import love.distributedrebirth.demo4d.base2t.T08PartOctalBaseAppender;
import love.distributedrebirth.demo4d.base2t.T08PartOctalBaseIterator;
abstract public class GroßGetậlŌṁGlyph6D<V extends GroßGetậlŌṁGlyph6D<V> & BaseNumber<V>> implements BaseNumber<V> {
private GroßGetậl6D[] values;
private int valuesLength;
private byte fractalLevel;
public GroßGetậlŌṁGlyph6D(byte fractalLevel) {
this.fractalLevel = fractalLevel;
this.valuesLength = resolveFractalLevel(fractalLevel);
this.values = new GroßGetậl6D[valuesLength];
}
abstract protected int resolveFractalLevel(byte level);
public final byte getFractalLevel() {
return fractalLevel;
}
public final int getValuesLength() {
return valuesLength;
}
private final int validatePartRequest(int part) {
if (part < 0) {
throw new IllegalArgumentException("Requested part is negative");
}
if (part > valuesLength) {
throw new IllegalArgumentException("Requested part exceeds fractal storage");
}
return part;
}
public final GroßGetậl6D getValue(int part) {
return values[validatePartRequest(part)];
}
public final void setValue(int part, GroßGetậl6D value) {
values[validatePartRequest(part)] = value;
}
abstract protected V toCloneFractal(byte level);
@Override
public final V toClone() {
V result = toCloneFractal(getFractalLevel());
T08PartOctalBaseIterator clonedOctals = cloneIterator();
for (int i=0;i<getValuesLength();i++) {
result.setValue(i, new GroßGetậl6D(clonedOctals));
}
return result;
}
@Override
public final int getBitCount() {
return GroßGetậl6D.BIT_COUNT * valuesLength;
}
@Override
public final void fillOctalValues(T08PartOctalBaseAppender appender) {
for (GroßGetậl6D value:values) {
value.fillOctalValues(appender);
}
}
}

View file

@ -1,6 +1,6 @@
package love.distributedrebirth.demo4d.numberxd; package love.distributedrebirth.demo4d.numberxd;
public class GroßGetậlŌṁGlyphDiamond extends GroßGetậlŌṁGlyph<GroßGetậlŌṁGlyphDiamond> { public class GroßGetậlŌṁGlyphDiamond1D extends GroßGetậlŌṁGlyph1D<GroßGetậlŌṁGlyphDiamond1D> {
// 0th = 1 * V144Tocta (1) // 0th = 1 * V144Tocta (1)
// 1th = 1+3 * V144Tocta (4) // 1th = 1+3 * V144Tocta (4)
@ -8,7 +8,7 @@ public class GroßGetậlŌṁGlyphDiamond extends GroßGetậlŌṁGlyph<GroßG
// 3th = 1+3+6+14 * V144Tocta (24) // 3th = 1+3+6+14 * V144Tocta (24)
// etc // etc
public GroßGetậlŌṁGlyphDiamond(byte level) { public GroßGetậlŌṁGlyphDiamond1D(byte level) {
super(level); super(level);
} }
@ -18,7 +18,7 @@ public class GroßGetậlŌṁGlyphDiamond extends GroßGetậlŌṁGlyph<GroßG
} }
@Override @Override
protected GroßGetậlŌṁGlyphDiamond toCloneFractal(byte level) { protected GroßGetậlŌṁGlyphDiamond1D toCloneFractal(byte level) {
return new GroßGetậlŌṁGlyphDiamond(level); return new GroßGetậlŌṁGlyphDiamond1D(level);
} }
} }

View file

@ -0,0 +1,24 @@
package love.distributedrebirth.demo4d.numberxd;
public class GroßGetậlŌṁGlyphDiamond6D extends GroßGetậlŌṁGlyph6D<GroßGetậlŌṁGlyphDiamond6D> {
// 0th = 1 * V144Tocta (1)
// 1th = 1+3 * V144Tocta (4)
// 2th = 1+3+6 * V144Tocta (10)
// 3th = 1+3+6+14 * V144Tocta (24)
// etc
public GroßGetậlŌṁGlyphDiamond6D(byte level) {
super(level);
}
protected int resolveFractalLevel(byte level) {
// TODO
return level;
}
@Override
protected GroßGetậlŌṁGlyphDiamond6D toCloneFractal(byte level) {
return new GroßGetậlŌṁGlyphDiamond6D(level);
}
}

View file

@ -1,23 +0,0 @@
package love.distributedrebirth.demo4d.numberxd;
public class GroßGetậlŌṁGlyphHyperStar extends GroßGetậlŌṁGlyph<GroßGetậlŌṁGlyphHyperStar> {
// 0th = V144Tocta
// 1th = 5 * V144Tocta
// 2th = 5 * 12 * V144Tocta
// etc
public GroßGetậlŌṁGlyphHyperStar(byte level) {
super(level);
}
protected int resolveFractalLevel(byte level) {
// TODO
return level;
}
@Override
protected GroßGetậlŌṁGlyphHyperStar toCloneFractal(byte level) {
return new GroßGetậlŌṁGlyphHyperStar(level);
}
}

View file

@ -0,0 +1,23 @@
package love.distributedrebirth.demo4d.numberxd;
public class GroßGetậlŌṁGlyphHyperStar1D extends GroßGetậlŌṁGlyph1D<GroßGetậlŌṁGlyphHyperStar1D> {
// 0th = V144Tocta
// 1th = 5 * V144Tocta
// 2th = 5 * 12 * V144Tocta
// etc
public GroßGetậlŌṁGlyphHyperStar1D(byte level) {
super(level);
}
protected int resolveFractalLevel(byte level) {
// TODO
return level;
}
@Override
protected GroßGetậlŌṁGlyphHyperStar1D toCloneFractal(byte level) {
return new GroßGetậlŌṁGlyphHyperStar1D(level);
}
}

View file

@ -0,0 +1,23 @@
package love.distributedrebirth.demo4d.numberxd;
public class GroßGetậlŌṁGlyphHyperStar6D extends GroßGetậlŌṁGlyph6D<GroßGetậlŌṁGlyphHyperStar6D> {
// 0th = V144Tocta
// 1th = 5 * V144Tocta
// 2th = 5 * 12 * V144Tocta
// etc
public GroßGetậlŌṁGlyphHyperStar6D(byte level) {
super(level);
}
protected int resolveFractalLevel(byte level) {
// TODO
return level;
}
@Override
protected GroßGetậlŌṁGlyphHyperStar6D toCloneFractal(byte level) {
return new GroßGetậlŌṁGlyphHyperStar6D(level);
}
}

View file

@ -11,14 +11,14 @@ import love.distributedrebirth.demo4d.base2t.V009TyteBaseAppender;
* @author willemtsade ©Δ 仙上主天 * @author willemtsade ©Δ 仙上主天
* *
*/ */
public class ŌṁKaassGetậl implements BaseNumberTyte<ŌṁKaassGetậl> { public class ŌṁKaassGetậl4D implements BaseNumberTyte<ŌṁKaassGetậl4D> {
private ŌṁKlompGetậl[] kaas; private ŌṁKlompGetậl4D[] kaas;
private final int kaasCuts; private final int kaasCuts;
public ŌṁKaassGetậl(int kaasCuts) { public ŌṁKaassGetậl4D(int kaasCuts) {
this.kaasCuts = kaasCuts; this.kaasCuts = kaasCuts;
this.kaas = new ŌṁKlompGetậl[kaasCuts]; this.kaas = new ŌṁKlompGetậl4D[kaasCuts];
} }
public final int getKaasCuts() { public final int getKaasCuts() {
@ -35,39 +35,39 @@ public class ŌṁKaassGetậl implements BaseNumberTyte<ŌṁKaassGetậl> {
return part; return part;
} }
public final ŌṁKlompGetậl getValue(int part) { public final ŌṁKlompGetậl4D getValue(int part) {
return kaas[validatePartRequest(part)]; return kaas[validatePartRequest(part)];
} }
public final void setValue(int part, ŌṁKlompGetậl value) { public final void setValue(int part, ŌṁKlompGetậl4D value) {
kaas[validatePartRequest(part)] = value; kaas[validatePartRequest(part)] = value;
} }
@Override @Override
public final ŌṁKaassGetậl toClone() { public final ŌṁKaassGetậl4D toClone() {
ŌṁKaassGetậl result = new ŌṁKaassGetậl(getKaasCuts()); ŌṁKaassGetậl4D result = new ŌṁKaassGetậl4D(getKaasCuts());
T08PartOctalBaseIterator clonedOctals = cloneIterator(); T08PartOctalBaseIterator clonedOctals = cloneIterator();
for (int i=0;i<getKaasCuts();i++) { for (int i=0;i<getKaasCuts();i++) {
result.setValue(i, new ŌṁKlompGetậl(clonedOctals)); result.setValue(i, new ŌṁKlompGetậl4D(clonedOctals));
} }
return result; return result;
} }
@Override @Override
public final int getBitCount() { public final int getBitCount() {
return ŌṁKlompGetậl.BIT_COUNT * kaasCuts; return ŌṁKlompGetậl4D.BIT_COUNT * kaasCuts;
} }
@Override @Override
public final void fillOctalValues(T08PartOctalBaseAppender appender) { public final void fillOctalValues(T08PartOctalBaseAppender appender) {
for (ŌṁKlompGetậl value:kaas) { for (ŌṁKlompGetậl4D value:kaas) {
value.fillOctalValues(appender); value.fillOctalValues(appender);
} }
} }
@Override @Override
public void fillTyteValues(V009TyteBaseAppender appender) { public void fillTyteValues(V009TyteBaseAppender appender) {
for (ŌṁKlompGetậl value:kaas) { for (ŌṁKlompGetậl4D value:kaas) {
value.fillTyteValues(appender); value.fillTyteValues(appender);
} }
} }

View file

@ -9,7 +9,7 @@ import love.distributedrebirth.demo4d.base2t.V654Triz;
import love.distributedrebirth.demo4d.base2t.VCA8Tath; import love.distributedrebirth.demo4d.base2t.VCA8Tath;
/** /**
* Holds an 25920 bit value. (3240 bytes) * Holds an 25920 bit value in stereo 4D. (3240 bytes)
* *
* 4 * VCA8Tath red * 4 * VCA8Tath red
* 4 * VCA8Tath blue * 4 * VCA8Tath blue
@ -17,18 +17,18 @@ import love.distributedrebirth.demo4d.base2t.VCA8Tath;
* @author willemtsade ©Δ 仙上主天 * @author willemtsade ©Δ 仙上主天
* *
*/ */
public class ŌṁKlompGetậl implements BaseNumberTyte<ŌṁKlompGetậl> { public class ŌṁKlompGetậl4D implements BaseNumberTyte<ŌṁKlompGetậl4D> {
public static int BIT_COUNT = V654Triz.BIT_COUNT * T08PartOctal.LENGTH; public static int BIT_COUNT = V654Triz.BIT_COUNT * T08PartOctal.LENGTH;
private final VCA8Tath[] values = new VCA8Tath[T08PartOctal.LENGTH]; private final VCA8Tath[] values = new VCA8Tath[T08PartOctal.LENGTH];
public ŌṁKlompGetậl() { public ŌṁKlompGetậl4D() {
for (int i=0;i<T08PartOctal.LENGTH;i++) { for (int i=0;i<T08PartOctal.LENGTH;i++) {
this.values[i] = new VCA8Tath(); this.values[i] = new VCA8Tath();
} }
} }
public ŌṁKlompGetậl(T08PartOctalBaseIterator values) { public ŌṁKlompGetậl4D(T08PartOctalBaseIterator values) {
for (int i=0;i<T08PartOctal.LENGTH;i++) { for (int i=0;i<T08PartOctal.LENGTH;i++) {
this.values[i] = new VCA8Tath(values); this.values[i] = new VCA8Tath(values);
} }
@ -48,8 +48,8 @@ public class ŌṁKlompGetậl implements BaseNumberTyte<ŌṁKlompGetậl> {
} }
@Override @Override
public ŌṁKlompGetậl toClone() { public ŌṁKlompGetậl4D toClone() {
return new ŌṁKlompGetậl(cloneIterator()); return new ŌṁKlompGetậl4D(cloneIterator());
} }
@Override @Override