Data update

This commit is contained in:
Ingy döt Net 2023-12-16 21:33:55 -08:00
parent 35bcdeebf8
commit 74c69a0df6
2427 changed files with 31826 additions and 3468 deletions

View file

@ -45,7 +45,7 @@ sealed struct ZeckendorfNumber
dLen := i
};
int v := (dVal $shr (i * 2)) && 3;
int v := (dVal $shr (i * 2)) & 3;
v =>
0 { ^ self }
1 { ^ self }
@ -61,8 +61,8 @@ sealed struct ZeckendorfNumber
}
3 {
int tmp := 3 $shl (i * 2);
tmp := tmp.xor(-1);
dVal := dVal && tmp;
tmp := tmp.bxor(-1);
dVal := dVal & tmp;
self.b((i+1)*2)
};
@ -89,7 +89,7 @@ sealed struct ZeckendorfNumber
}
else
{
dVal := dVal && (1 $shl pos).Inverted;
dVal := dVal & (1 $shl pos).BInverted;
self.b(pos + 1);
int arg := pos - ((pos > 1) ? 2 : 1);
self.b(/*pos - ((pos > 1) ? 2 : 1)*/arg)
@ -101,9 +101,9 @@ sealed struct ZeckendorfNumber
if ((dVal $shr pos).allMask:1)
{
int tmp := 1 $shl pos;
tmp := tmp.xor(-1);
tmp := tmp.bxor(-1);
dVal := dVal && tmp;
dVal := dVal & tmp;
^ self
};
@ -125,9 +125,12 @@ sealed struct ZeckendorfNumber
int mVal := 0;
int mLen := 0;
n.readContent(ref dVal, ref dLen);
n.readContent(ref int v, ref int l);
m.readContent(ref mVal, ref mLen);
dVal := v;
dLen := l;
for(int GN := 0, GN < (mLen + 1) * 2, GN += 1)
{
if ((mVal $shr GN).allMask:1)
@ -142,9 +145,12 @@ sealed struct ZeckendorfNumber
int mVal := 0;
int mLen := 0;
n.readContent(ref dVal, ref dLen);
n.readContent(ref int v, ref int l);
m.readContent(ref mVal, ref mLen);
dVal := v;
dLen := l;
for(int GN := 0, GN < (mLen + 1) * 2, GN += 1)
{
if ((mVal $shr GN).allMask:1)
@ -153,7 +159,7 @@ sealed struct ZeckendorfNumber
}
};
while (((dVal $shr (dLen*2)) && 3) == 0 || dLen == 0)
while (((dVal $shr (dLen*2)) & 3) == 0 || dLen == 0)
{
dLen -= 1
}
@ -161,7 +167,10 @@ sealed struct ZeckendorfNumber
internal constructor product(ZeckendorfNumber n, ZeckendorfNumber m)
{
n.readContent(ref dVal, ref dLen);
n.readContent(ref int v, ref int l);
dVal := v;
dLen := l;
ZeckendorfNumber Na := m;
ZeckendorfNumber Nb := m;
@ -170,7 +179,7 @@ sealed struct ZeckendorfNumber
for(int i := 0, i < (dLen + 1) * 2, i += 1)
{
if (((dVal $shr i) && 1) > 0)
if (((dVal $shr i) & 1) > 0)
{
Nr += Nb
};
@ -179,7 +188,10 @@ sealed struct ZeckendorfNumber
Na := Nt
};
Nr.readContent(ref dVal, ref dLen);
Nr.readContent(ref v, ref l);
dVal := v;
dLen := l;
}
internal constructor newInternal(int v, int l)
@ -193,11 +205,11 @@ sealed struct ZeckendorfNumber
if (dVal == 0)
{ ^ "0" };
string s := dig1[(dVal $shr (dLen * 2)) && 3];
string s := dig1[(dVal $shr (dLen * 2)) & 3];
int i := dLen - 1;
while (i >= 0)
{
s := s + dig[(dVal $shr (i * 2)) && 3];
s := s + dig[(dVal $shr (i * 2)) & 3];
i-=1
};