Tue Feb 10 12:26:27 2004 run on Linux
% Test series for the package MODSR: SOLVE and ROOTS for
% modular polynomials and modular polynomial systems.
% Moduli need not be primes.
on modular;
setmod 8;
1
m_solve(2x=3);
{}
% {}
m_solve(2x=4);
{{x=2},{x=6}}
% {{x=2},{x=6}}
m_solve(x^2-1);
{{x=1},{x=3},{x=5},{x=7}}
% {{x=1},{x=3},{x=5},{x=7}}
m_solve({x^2-y^3=3});
{{x=0,y=5},
{x=2,y=1},
{x=4,y=5},
{x=6,y=1}}
% {{x=0,y=5}, {x=2,y=1}, {x=4,y=5}, {x=6,y=1}}
m_solve({x^2-y^3=3,x=2});
{{y=1,x=2}}
% {{y=1,x=2}}
m_solve({x=2,x^2-y^3=3});
{{x=2,y=1}}
% {{x=2,y=1}}
m_solve({x1,x2 + 6,2*x1**3 + 4*x2**4 + x3 + 6});
{{x1=0,x2=2,x3=2}}
% {{x1=0,x2=2,x3=2}}
setmod 800;
8
m_solve(x^2-1);
{{x=1},
{x=49},
{x=351},
{x=399},
{x=401},
{x=449},
{x=751},
{x=799}}
% {{x=1}, {x=49}, {x=351}, {x=399}, {x=401}, {x=449}, {x=751}, {x=799}}
m_solve({x1 + 51,
282*x1^4 + x2 + 468,
x3 + 1054,
256*x1^2 + 257*x2^4 + 197*x3 + x4 + 653,
255*x1^4 + 40*x2^2 + x5 + 868,
230*x1^4 + 670*x3 + 575*x4^4 + 373*x5^3 + x6 + 1328,
182*x4^4 + 727*x5^2 + 609*x6**4 + x7 + 1032,
623*x1^3 + 614*x2^4 + 463*x3**2 + 365*x4 + 300*x7 + x8 + 1681});
{{x1=749,x2=50,x3=546,x4=729,x5=77,x6=438,x7=419,x8=399}}
% {{x1=749,x2=50,x3=546,x4=729,x5=77,x6=438,x7=419,x8=399}}
m_solve{x+y=4,x^2+y^2=8};
{{x=2,y=2},
{x=22,y=782},
{x=42,y=762},
{x=62,y=742},
{x=82,y=722},
{x=102,y=702},
{x=122,y=682},
{x=142,y=662},
{x=162,y=642},
{x=182,y=622},
{x=202,y=602},
{x=222,y=582},
{x=242,y=562},
{x=262,y=542},
{x=282,y=522},
{x=302,y=502},
{x=322,y=482},
{x=342,y=462},
{x=362,y=442},
{x=382,y=422},
{x=402,y=402},
{x=422,y=382},
{x=442,y=362},
{x=462,y=342},
{x=482,y=322},
{x=502,y=302},
{x=522,y=282},
{x=542,y=262},
{x=562,y=242},
{x=582,y=222},
{x=602,y=202},
{x=622,y=182},
{x=642,y=162},
{x=662,y=142},
{x=682,y=122},
{x=702,y=102},
{x=722,y=82},
{x=742,y=62},
{x=762,y=42},
{x=782,y=22}}
off modular;
% m_roots has the modulus as its second argument.
m_roots(x^2-1,8);
{1,3,5,7}
% {1,3,5,7}
m_roots(x^3-1,7);
{1,2,4}
% {1,2,4}
m_roots(x^3-x,7);
{0,1,6}
% {0,1,6}
m_roots((x-1)*(x-2)*(x-3),7);
{1,2,3}
% {1,2,3}
m_roots((x-1)*(x-2)*(x^3-1)*(x-5),7);
{1,2,4,5}
% {1,2,4,5}
m_roots((x-1)*(x-2)*(x^3-1)*(x-5),1009);
{1,2,5,374,634}
% {1,2,5,374,634}
m_roots((x-1)*(x-2)*(x^3-1)*(x-5),1000);
{1,2,5,26,51,101,127,130,151,201,226,251,255,301,351,377,401,426,451,501,505,551
,601,626,627,651,701,751,755,801,826,851,877,901,951}
length ws;
35
% 35
end;
Time for test: 50 ms, plus GC time: 10 ms