Artifact fa3dc7efe3302a61f5740b1ba5fd6f98f46156d3b7690c9ff195dd78a694d30b:
- Executable file
r38/log/arnum.rlg
— 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: 7177) [annotate] [blame] [check-ins using] [more...]
Tue Apr 15 00:32:36 2008 run on win32 % Test of algebraic number package. defpoly sqrt2**2-2; 1/(sqrt2+1); sqrt2 - 1 (x**2+2*sqrt2*x+2)/(x+sqrt2); x + sqrt2 on gcd; (x**3+(sqrt2-2)*x**2-(2*sqrt2+3)*x-3*sqrt2)/(x**2-2); 2 x - 2*x - 3 -------------- x - sqrt2 off gcd; sqrt(x**2-2*sqrt2*x*y+2*y**2); x - sqrt2*y off arnum; %to start a new algebraic extension. defpoly cbrt5**3-5; on rationalize; 1/(x-cbrt5); 2 2 x + cbrt5*x + cbrt5 ----------------------- 3 x - 5 off rationalize; off arnum; %to start a new algebraic extension. %The following examples are taken from P.S. Wang Math. Comp. 30, % 134,(1976),p.324. on factor; defpoly i**2+1=0; w0 := x**2+1; w0 := (x + i)*(x - i) w1 := x**4-1; w1 := (x + i)*(x - i)*(x + 1)*(x - 1) w2 := x**4+(i+2)*x**3+(2*i+5)*x**2+(2*i+6)*x+6; 2 w2 := (x + i*x + 3)*(x + i + 1)*(x - (i - 1)) w3 := (2*i+3)*x**4+(3*i-2)*x**3-2*(i+1)*x**2+i*x-1; 2 2 2 3 w3 := (2*i + 3)*(x + i*x - 1)*(x - (----*i - ----)) 13 13 off arnum; defpoly a**2-5; w4 := x**2+x-1; 1 1 1 1 w4 := (x + ---*a + ---)*(x - (---*a - ---)) 2 2 2 2 off arnum; defpoly a**2+a+2; w5 := x**4+3*x**2+4; w5 := (x + a + 1)*(x + a)*(x - (a + 1))*(x - a) off arnum; defpoly a**3+2=0; w6:=64*x**6-4; 2 1 1 2 2 1 1 2 1 1 w6 := 64*(x + ---*a*x + ---*a )*(x - ---*a*x + ---*a )*(x + ---*a)*(x - ---*a) 2 4 2 4 2 2 off arnum; defpoly a**4+a**3+a**2+a+1=0; w7:=16*x**4+8*x**3+4*x**2+2*x+1; w7 := 1 3 1 2 1 1 1 3 1 2 1 16*(x + ---*a + ---*a + ---*a + ---)*(x - ---*a )*(x - ---*a )*(x - ---*a) 2 2 2 2 2 2 2 off arnum, factor; defpoly sqrt5**2-5,cbrt3**3-3; *** Defining polynomial for primitive element: 6 4 3 2 a1 - 15*a1 - 6*a1 + 75*a1 - 90*a1 - 116 cbrt3**3; 3 sqrt5**2; 5 cbrt3; 120 5 27 4 2000 3 1170 2 6676 6825 - (------*a1 + ------*a1 - ------*a1 - ------*a1 + ------*a1 - ------) 8243 8243 8243 8243 8243 8243 sqrt5; 120 5 27 4 2000 3 1170 2 14919 6825 ------*a1 + ------*a1 - ------*a1 - ------*a1 + -------*a1 - ------ 8243 8243 8243 8243 8243 8243 sqrt(x**2+2*(sqrt5-cbrt3)*x+5-2*sqrt5*cbrt3+cbrt3**2); 240 5 54 4 4000 3 2340 2 21595 13650 x + ------*a1 + ------*a1 - ------*a1 - ------*a1 + -------*a1 - ------- 8243 8243 8243 8243 8243 8243 on rationalize; 1/(x+sqrt5-cbrt3); 5 240 5 54 4 4000 3 2340 2 21595 13650 (x - (------*a1 + ------*a1 - ------*a1 - ------*a1 + -------*a1 - -------) 8243 8243 8243 8243 8243 8243 4 *x - 108 5 800 4 1800 3 15433 2 15900 14465 3 (------*a1 - ------*a1 - ------*a1 + -------*a1 + -------*a1 + -------)*x 8243 8243 8243 8243 8243 8243 3 2 - (a1 - 15*a1)*x - 900 5 3919 4 15000 3 8775 2 148986 154225 (------*a1 - ------*a1 - -------*a1 - ------*a1 + --------*a1 - --------)*x 8243 8243 8243 8243 8243 8243 1919 5 1050 4 18245 3 12528 2 236725 73080 - (------*a1 + ------*a1 - -------*a1 - -------*a1 + --------*a1 - ------- 8243 8243 8243 8243 8243 8243 6 4 3 2 ))/(x - 15*x - 6*x + 75*x - 90*x - 116) off arnum, rationalize; split_field(x**3+2); *** Splitting field is generated by: 6 a3 + 108 1 4 1 {----*a3 + ---*a3, 36 2 1 4 - ----*a3 , 18 1 4 1 ----*a3 - ---*a3} 36 2 for each j in ws product (x-j); 3 x + 2 split_field(x**3+4*x**2+x-1); *** Splitting field is generated by: 3 2 a4 + 4*a4 + a4 - 1 2 2 {a4,a4 + 3*a4 - 2, - (a4 + 4*a4 + 2)} for each j in ws product (x-j); 3 2 x + 4*x + x - 1 split_field(x**3-3*x+7); *** Splitting field is generated by: 6 4 2 a6 - 18*a6 + 81*a6 + 1215 1 4 5 2 1 2 {-----*a6 - ----*a6 + ---*a6 + ---, 126 42 2 7 1 4 5 2 4 - (----*a6 - ----*a6 + ---), 63 21 7 1 4 5 2 1 2 -----*a6 - ----*a6 - ---*a6 + ---} 126 42 2 7 for each j in ws product (x-j); 3 x - 3*x + 7 split_field(x**3+4*x**2+x-1); *** Splitting field is generated by: 3 2 a7 + 4*a7 + a7 - 1 2 2 {a7,a7 + 3*a7 - 2, - (a7 + 4*a7 + 2)} for each j in ws product (x-j); 3 2 x + 4*x + x - 1 split_field(x**3-x**2-x-1); *** Splitting field is generated by: 6 5 4 3 2 a9 - 6*a9 + 7*a9 + 12*a9 - 17*a9 - 6*a9 + 53 3 4 3 3 1 2 5 17 { - (----*a9 - ----*a9 - ----*a9 - ----*a9 + ----), 76 19 38 38 76 3 4 6 3 1 2 14 17 ----*a9 - ----*a9 - ----*a9 + ----*a9 + ----, 38 19 19 19 38 3 4 3 3 1 2 33 59 - (----*a9 - ----*a9 - ----*a9 + ----*a9 - ----)} 76 19 38 38 76 for each j in ws product (x-j); 3 2 x - x - x - 1 % A longer example. off arnum; defpoly a**6+3*a**5+6*a**4+a**3-3*a**2+12*a+16; factorize(x**3-3); 1 5 1 4 2 3 1 2 2 7 {{x + ---*a + ---*a + ---*a - ---*a + ---*a + ---,1}, 6 3 3 6 3 3 1 5 1 4 1 3 7 2 11 4 {x - (----*a + ----*a + ---*a - ----*a + ----*a + ---),1}, 12 12 6 12 12 3 1 5 1 4 1 3 5 2 1 {x - (----*a + ---*a + ---*a + ----*a - ---*a + 1),1}} 12 4 2 12 4 end; Time for test: 114 ms, plus GC time: 5 ms