12 lines
334 B
Text
12 lines
334 B
Text
xor(a,b)=(!a&b)||(a&!b);
|
|
halfadd(a,b)=[a&&b,xor(a,b)];
|
|
fulladd(a,b,c)=my(t=halfadd(a,c),s=halfadd(t[2],b));[t[1]||s[1],s[2]];
|
|
add4(a3,a2,a1,a0,b3,b2,b1,b0)={
|
|
my(s0,s1,s2,s3);
|
|
s0=fulladd(a0,b0,0);
|
|
s1=fulladd(a1,b1,s0[1]);
|
|
s2=fulladd(a2,b2,s1[1]);
|
|
s3=fulladd(a3,b3,s2[1]);
|
|
[s3[1],s3[2],s2[2],s1[2],s0[2]]
|
|
};
|
|
add4(0,0,0,0,0,0,0,0)
|