Artifact 5fa57717c9a0b42c553bfbb51ac43c3aab04418c5ceabee1fd8ab347bf033304:
- File
r34.1/xlog/decompos.log
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 9611) [annotate] [blame] [check-ins using] [more...]
Sat May 30 16:09:31 PDT 1992 REDUCE 3.4.1, 15-Jul-92 ... 1: 1: 2: 2: 3: 3: Time: 0 ms 4: 4: % Test for the univariate and multivariate polynomial decomposition. % Herbert Melenk, ZIB Berlin, 1990. procedure testdecompose u; begin scalar r,p,val,nextvar; write "decomposition of ",u; r := decompose u; if length r = 1 then rederr "decomposition failed"; write " leads to ",r; % test if the result is algebraically correct. r := reverse r; nextvar := lhs first r; val := rhs first r; r := rest r; while not(r={}) do << p := first r; r := rest r; if 'equal = part(p,0) then <<val := sub(nextvar=val,rhs p); nextvar := lhs p>> else val := sub(nextvar=val,p); >>; if val = u then write " O.K. " else <<write "**** reconstructed polynomial: "; write val; rederr "reconstruction leads to different polynomial"; >>; end; TESTDECOMPOSE % univariate decompositions testdecompose(x**4+x**2+1); 4 2 decomposition of X + X + 1 2 2 leads to {U + U + 1,U=X } O.K. testdecompose(x**6+9x**5+52x**4+177x**3+435x**2+630x+593); 6 5 4 3 2 decomposition of X + 9*X + 52*X + 177*X + 435*X + 630*X + 593 3 2 2 leads to {U + 25*U + 210*U + 593,U=X + 3*X} O.K. testdecompose(x**6+6x**4+x**3+9x**2+3x-5); 6 4 3 2 decomposition of X + 6*X + X + 9*X + 3*X - 5 2 3 leads to {U + U - 5,U=X + 3*X} O.K. testdecompose(x**8-88*x**7+2924*x**6-43912*x**5+263431*x**4-218900*x**3+ 65690*x**2-7700*x+234); 8 7 6 5 4 decomposition of X - 88*X + 2924*X - 43912*X + 263431*X 3 2 - 218900*X + 65690*X - 7700*X + 234 2 leads to {U + 35*U + 234, 2 U=V + 10*V, 2 V=X - 22*X} O.K. % multivariate cases testdecompose(u**2+v**2+2u*v+1); 2 2 decomposition of U + 2*U*V + V + 1 2 leads to {W + 1,W=U + V} O.K. testdecompose(x**4+2x**3*y + 3x**2*y**2 + 2x*y**3 + y**4 + 2x**2*y +2x*y**2 + 2y**3 + 5 x**2 + 5*x*y + 6*y**2 + 5y + 9); 4 3 2 2 2 2 3 decomposition of X + 2*X *Y + 3*X *Y + 2*X *Y + 5*X + 2*X*Y 2 4 3 2 + 2*X*Y + 5*X*Y + Y + 2*Y + 6*Y + 5*Y + 9 2 2 2 leads to {U + 5*U + 9,U=X + X*Y + Y + Y} O.K. testdecompose sub(u=(2 x**2 + 17 x+y + y**3),u**2+2 u + 1); 4 3 2 3 2 2 3 decomposition of 4*X + 68*X + 4*X *Y + 4*X *Y + 293*X + 34*X*Y 6 4 3 2 + 34*X*Y + 34*X + Y + 2*Y + 2*Y + Y + 2*Y + 1 2 2 3 leads to {U + 2*U + 1,U=2*X + 17*X + Y + Y} O.K. testdecompose sub(u=(2 x**2 *y + 17 x+y + y**3),u**2+2 u + 1); 4 2 3 2 4 2 2 2 decomposition of 4*X *Y + 68*X *Y + 4*X *Y + 4*X *Y + 4*X *Y 2 3 6 4 + 289*X + 34*X*Y + 34*X*Y + 34*X + Y + 2*Y 3 2 + 2*Y + Y + 2*Y + 1 2 2 3 leads to {U + 2*U + 1,U=2*X *Y + 17*X + Y + Y} O.K. % some cases which require a special (internal) mapping testdecompose ( (x + y)**2); 2 2 decomposition of X + 2*X*Y + Y 2 leads to {U ,U=X + Y} O.K. testdecompose ((x + y**2)**2); 2 2 4 decomposition of X + 2*X*Y + Y 2 2 leads to {U ,U=X + Y } O.K. testdecompose ( (x**2 + y)**2); 4 2 2 decomposition of X + 2*X *Y + Y 2 2 leads to {U ,U=X + Y} O.K. testdecompose ( (u + v)**2 +10 ); 2 2 decomposition of U + 2*U*V + V + 10 2 leads to {W + 10,W=U + V} O.K. % the decomposition is not unique and might generate quite % different images: testdecompose ( (u + v + 10)**2 -100 ); 2 2 decomposition of U + 2*U*V + 20*U + V + 20*V leads to {W*(W + 20),W=U + V} O.K. % some special (difficult) cases testdecompose (X**4 + 88*X**3*Y + 2904*X**2*Y**2 - 10*X**2 + 42592*X*Y**3 - 440*X*Y + 234256*Y**4 - 4840*Y**2); 4 3 2 2 2 3 decomposition of X + 88*X *Y + 2904*X *Y - 10*X + 42592*X*Y 4 2 - 440*X*Y + 234256*Y - 4840*Y 2 leads to {U*(U - 10),U=V ,V=X + 22*Y} O.K. % a polynomial with complex coefficients on complex; testdecompose(X**4 + (88*I)*X**3*Y - 2904*X**2*Y**2 - 10*X**2 - (42592*I)*X*Y**3 - (440*I)*X*Y + 234256*Y**4 + 4840*Y**2); 4 3 2 2 2 3 decomposition of X + 88*I*X *Y - 2904*X *Y - 10*X - 42592*I*X*Y 4 2 - 440*I*X*Y + 234256*Y + 4840*Y 2 leads to {U*(U + 10),U= - V ,V=X + 22*I*Y} O.K. off complex; % Examples given by J. Gutierrez and J.M. Olazabal. f1:=x**6-2x**5+x**4-3x**3+3x**2+5$ testdecompose(f1); 6 5 4 3 2 decomposition of X - 2*X + X - 3*X + 3*X + 5 2 3 2 leads to {U - 3*U + 5,U=X - X } O.K. f2:=x**32-1$ testdecompose(f2); 32 decomposition of X - 1 2 2 2 2 2 leads to {U - 1,U=V ,V=W ,W=A ,A=X } O.K. f3:=x**4-(2/3)*x**3-(26/9)*x**2+x+3$ testdecompose(f3); 4 3 2 9*X - 6*X - 26*X + 9*X + 27 decomposition of -------------------------------- 9 2 U - 9*U + 27 2 leads to {---------------,U=3*X - X} 9 O.K. f4:=sub(x=x**4-x**3-2x+1,x**3-x**2-1)$ testdecompose(f4); 12 11 10 9 8 7 6 decomposition of X - 3*X + 3*X - 7*X + 14*X - 10*X + 14*X 5 4 3 2 - 20*X + 9*X - 9*X + 8*X - 2*X - 1 3 2 4 3 leads to {U + 2*U + U - 1,U=X - X - 2*X} O.K. f5:=sub(x=f4,x**5-5)$ testdecompose(f5); 60 59 58 57 56 decomposition of X - 15*X + 105*X - 485*X + 1795*X 55 54 53 52 - 5873*X + 17255*X - 45845*X + 112950*X 51 50 49 - 261300*X + 567203*X - 1164475*X 48 47 46 + 2280835*X - 4259830*X + 7604415*X 45 44 43 - 13053437*X + 21545220*X - 34200855*X 42 41 40 + 52436150*X - 77668230*X + 111050794*X 39 38 37 - 153746645*X + 206190770*X - 267484170*X 36 35 34 + 336413145*X - 410387890*X + 484672110*X 33 32 31 - 555048350*X + 616671710*X - 663135380*X 30 29 28 + 690884384*X - 697721320*X + 681039235*X 27 26 25 - 642661265*X + 586604975*X - 516016275*X 24 23 22 + 437051535*X - 356628245*X + 278991765*X 21 20 19 - 208571965*X + 149093999*X - 101204325*X 18 17 16 + 64656350*X - 38848040*X + 21710870*X 15 14 13 - 10971599*X + 4928210*X - 1904450*X 12 11 10 9 + 519730*X - 15845*X - 71947*X + 52015*X 8 7 6 5 4 - 26740*X + 5510*X + 3380*X - 1972*X - 75*X 3 + 195*X - 10*X - 6 5 4 3 2 leads to {U - 5*U + 10*U - 10*U + 5*U - 6, 3 2 U=V + 2*V + V, 4 3 V=X - X - 2*X} O.K. clear f1,f2,f3,f4,f5; end; 5: 5: Time: 10591 ms plus GC time: 391 ms 6: 6: Quitting Sat May 30 16:09:47 PDT 1992