Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Testing latest pari + WASM + node.js... and it works?! Wow.

28495 views
License: GPL3
ubuntu2004
charpoly([x,x+1;1,2],y,0)
charpoly([x,x+1;1,2],y,1)
charpoly([x,x+1;1,2],y,2)
charpoly([x,x+1;1,2],y,3)
charpoly([0,0,2,2;0,0,2,2;2,2,0,0;2,2,0,0])
charpoly([0,0,2,2;0,0,2,2;2,2,0,0;2,2,0,0],,4)
minpoly(matrix(4,4,i,j,i/j))

default(realprecision,38);
A=[5/3,7/45;0,21/10];
mateigen(A)
mateigen(A*1.)
mateigen(A,1)
merror=[224,221,13,2;201,199,12,2;100,99,6,1;85,84,5,1];
[D,M]=mateigen(merror,1);
D
exponent(merror*M - M*matdiagonal(D))
M=[x,x+y;x+1,1];charpoly(M,w)
v=[1,1.,Mod(1,3),1/2,1+O(3),I,quadgen(5),matid(2)*Mod(1,3),matid(2)*Mod(1,2^64+13)];
for(i=1,#v,print(charpoly(v[i])))

{ \\ #2010
g(s2,s3)=s6=s2*s3;[2,0,0,-s6+3,2*s3-3*s2,3*s3-3*s2;
   0,-2,0,s3-s2,-s6+2,-s6+3;
   0,0,-1,s3-2*s2,-s6+1,-s6+3;
   0,0,s3,2*s6-6,-5*s3+6*s2,-6*s3+7*s2;
   -2*s3,2,-s6+5,-7*s3+10*s2,8*s6-21,9*s6-27;
   2*s3,-2,s6-5,8*s3-11*s2,-9*s6+23,-10*s6+30]/2;
}
exponent(charpoly(g(sqrt(2),sqrt(3))) - (x^6-x^5-3*x^4-3*x^3-3*x^2-x+1)) < -120
centerlift(charpoly(g(sqrt(2+O(23^10)), sqrt(3+O(23^10)))))

charpoly(matid(4),,0)
charpoly(matid(4),,3)
charpoly(matid(4)*(2^64+13))
m=[1,2,3,4;5,6,7,8;9,10,11,12;1,5,7,11];
charpoly(m*Mod(1,3))
charpoly(m*Mod(1,2^64+13))
matadjoint(matid(2),1)
matadjoint([;])
matadjoint(Mat(1))
matadjoint([x,0,0;0,0,0;0,0,0])
matadjoint([Mod(1,2)*x,0,0;0,0,0;0,0,0])
charpoly(x*matid(3))
minpoly(Mod(x+1,x^4+1))
minpoly(Mod(x,x^2))
minpoly(Mod(1,x^2+x+1))
minpoly(Mod(1,x^24+1))
minpoly(Mod(1,x^2))

test(p)=
{
  my(P,Q);
  P=random(x^10*'b^10*Mod(1,p))*Mod(1,ffinit(p,10,'b));
  Q=random(x^10*'b^10*Mod(1,p))*Mod(1,ffinit(p,10,'b));
  my(z=Mod(P,Q));
  if(subst(minpoly(z),x,z)!=0,error(z));
  if(subst(charpoly(z),x,z)!=0,error(z));
}
test(5);
test(nextprime(2^40));
test(nextprime(2^100));

a=[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0;0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0;-1,-1,-1,4,0,0,0,0,-1,0,0,0,0,0,0,0,0;0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0;0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0;0,0,0,0,-1,-1,-1,4,-1,0,0,0,0,0,0,0,0;0,0,0,-1,0,0,0,-1,4,-1,-1,0,0,0,0,0,0;0,0,0,0,0,0,0,0,-1,1,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,-1,0,4,-1,-1,-1,0,0,0;0,0,0,0,0,0,0,0,0,0,-1,1,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,-1,0,1,0,0,0,0;0,0,0,0,0,0,0,0,0,0,-1,0,0,3,-1,0,-1;0,0,0,0,0,0,0,0,0,0,0,0,0,-1,3,-2,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,2,0;0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,1];
mateigen(a);
mateigen([;])
mateigen([;],1)
mateigen(Mat(1))
mateigen(Mat(1),1)

t=sqrt(5);
M=[1,-1,0,0,0,0,0;-1,1,0,0,0,0,0;0,0,1,(t-1)/4,(-t-1)/4,(-t-1)/4,(t-1)/4;0,0,(t-1)/4,1,(t-1)/4,(-t-1)/4,(-t-1)/4;0,0,(-t-1)/4,(t-1)/4,1,(t-1)/4,(-t-1)/4;0,0,(-t-1)/4,(-t-1)/4,(t-1)/4,1,(t-1)/4;0,0,(t-1)/4,(-t-1)/4,(-t-1)/4,(t-1)/4,1];
mateigen(M)
mateigen(M,1)
M= [1/2,0.43301270189221932338186158537646809174,0,0,0,0,0,0;0.43301270189221932338186158537646809174,0.59375000000000000000000000000000000000,0.16010860571811872473782872938314143736,0,0,0,0,0;0,0.16010860571811872473782872938314143736,0.17773437500000000000000000000000000000,0.043156991785125689527076292745166173981,0,0,0,0;0,0,0.043156991785125689527076292745166173981,0.046264648437500000000000000000000000000,0.010983784699077503627379527042372838459,0,0,0;0,0,0,0.010983784699077503627379527042372838459,0.011680603027343750000000000000000000000,0.0027580894367975917547150661058975793532,0,0;0,0,0,0,0.0027580894367975917547150661058975793532,0.0029273033142089843750000000000000000000,0.00069028107976465866361951420577874482654,0;0,0,0,0,0,0.00069028107976465866361951420577874482655,0.00073227286338806152343750000000000000000,0.00017261768635203427455190103576949842909;0,0,0,0,0,0,0.00017261768635203427455190103576949842909,0.00018309801816940307617187500000000000000];
mateigen(M)

\\ Errors, keep at end of file
charpoly(Mod('b, 'b^2 + Mod('a,'a^2+1)), 'newvar)
minpoly(Mod(y,x), 'y)
localbitprec(32);mateigen(merror*bitprecision(1.,64))