=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/parts/algnum.texi,v retrieving revision 1.4 retrieving revision 1.7 diff -u -p -r1.4 -r1.7 --- OpenXM/src/asir-doc/parts/algnum.texi 2000/03/17 02:17:03 1.4 +++ OpenXM/src/asir-doc/parts/algnum.texi 2003/04/20 08:01:24 1.7 @@ -1,4 +1,4 @@ -@comment $OpenXM: OpenXM/src/asir-doc/parts/algnum.texi,v 1.3 2000/03/10 07:18:40 noro Exp $ +@comment $OpenXM: OpenXM/src/asir-doc/parts/algnum.texi,v 1.6 2003/04/19 15:44:55 noro Exp $ \BJP @node 代数的数に関する演算,,, Top @chapter 代数的数に関する演算 @@ -410,13 +410,15 @@ into the @b{root} by @code{rattoalgp()} function. @example [88] rattoalgp(S,[alg(0)]); -(((#0+2)/(#0+2))*t#1^2+((#0^2+2*#0)/(#0+2))*t#1+((2*#0^2+4*#0)/(#0+2)))*x -+((1)/(#0+2))*t#1+((1)/(#0+2)) +(((#0+2)/(#0+2))*t#1^2+((#0^2+2*#0)/(#0+2))*t#1 ++((2*#0^2+4*#0)/(#0+2)))*x+((1)/(#0+2))*t#1+((1)/(#0+2)) [89] rattoalgp(S,[alg(0),alg(1)]); -(((#0^3+6*#0^2+12*#0+8)*#1^2+(#0^4+6*#0^3+12*#0^2+8*#0)*#1+2*#0^4+12*#0^3 -+24*#0^2+16*#0)/(#0^3+6*#0^2+12*#0+8))*x+(((#0+2)*#1+#0+2)/(#0^2+4*#0+4)) +(((#0^3+6*#0^2+12*#0+8)*#1^2+(#0^4+6*#0^3+12*#0^2+8*#0)*#1 ++2*#0^4+12*#0^3+24*#0^2+16*#0)/(#0^3+6*#0^2+12*#0+8))*x ++(((#0+2)*#1+#0+2)/(#0^2+4*#0+4)) [90] rattoalgp(S,[alg(1),alg(0)]); -(((#0+2)*#1^2+(#0^2+2*#0)*#1+2*#0^2+4*#0)/(#0+2))*x+((#1+1)/(#0+2)) +(((#0+2)*#1^2+(#0^2+2*#0)*#1+2*#0^2+4*#0)/(#0+2))*x ++((#1+1)/(#0+2)) [91] simpalg(@@89); (#1^2+#0*#1+2*#0)*x+((-1/5*#0+2/5)*#1-1/5*#0+2/5) [92] simpalg(@@90); @@ -499,8 +501,8 @@ where the ground field is a multiple extension. (#0) [64] B=newalg(75*s^2+(10*A^7-175*A^4-470*A)*s+3*A^8-45*A^5-261*A^2); (#1) -[65] P1=75*x^2+(150*B+10*A^7-175*A^4-395*A)*x+(75*B^2+(10*A^7-175*A^4-395*A)*B -+13*A^8-220*A^5-581*A^2)$ +[65] P1=75*x^2+(150*B+10*A^7-175*A^4-395*A)*x ++(75*B^2+(10*A^7-175*A^4-395*A)*B+13*A^8-220*A^5-581*A^2)$ [66] P2=x^2+A*x+A^2$ [67] cr_gcda(P1,P2); 27*x+((#0^6-19*#0^3-65)*#1-#0^7+19*#0^4+38*#0) @@ -531,9 +533,9 @@ The function to do this factorization is @code{asq()}. [116] A=newalg(x^2+x+1); (#4) [117] T=simpalg((x+A+1)*(x^2-2*A-3)^2*(x^3-x-A)^2); -x^11+(#4+1)*x^10+(-4*#4-8)*x^9+(-10*#4-4)*x^8+(16*#4+20)*x^7+(24*#4-6)*x^6 -+(-29*#4-31)*x^5+(-15*#4+28)*x^4+(38*#4+29)*x^3+(#4-23)*x^2+(-21*#4-7)*x -+(3*#4+8) +x^11+(#4+1)*x^10+(-4*#4-8)*x^9+(-10*#4-4)*x^8+(16*#4+20)*x^7 ++(24*#4-6)*x^6+(-29*#4-31)*x^5+(-15*#4+28)*x^4+(38*#4+29)*x^3 ++(#4-23)*x^2+(-21*#4-7)*x+(3*#4+8) [118] asq(T); [[x^5+(-2*#4-4)*x^3+(-#4)*x^2+(2*#4+3)*x+(#4-2),2],[x+(#4+1),1]] @end example @@ -641,9 +643,9 @@ The function is @code{sp()}. @example [103] sp(x^5-2); -[[x+(-#1),2*x+(#0^3*#1^3+#0^4*#1^2+2*#1+2*#0),2*x+(-#0^4*#1^2),2*x -+(-#0^3*#1^3),x+(-#0)],[[(#1),t#1^4+t#0*t#1^3+t#0^2*t#1^2+t#0^3*t#1+t#0^4], -[(#0),t#0^5-2]]] +[[x+(-#1),2*x+(#0^3*#1^3+#0^4*#1^2+2*#1+2*#0),2*x+(-#0^4*#1^2), +2*x+(-#0^3*#1^3),x+(-#0)], +[[(#1),t#1^4+t#0*t#1^3+t#0^2*t#1^2+t#0^3*t#1+t#0^4],[(#0),t#0^5-2]]] @end example @noindent @@ -1083,7 +1085,7 @@ substitutes a @b{root} for the associated indeterminat @item return \JP 多項式 \EG polynomial -@item poly1, poly2 +@item poly1 poly2 \JP 多項式 \EG polynomial @end table @@ -1269,18 +1271,45 @@ first. \E @item \BJP -@code{sp_noalg} では, @var{poly} に含まれる代数的数 @var{ai} を不定元 @var{vi} -で置き換える. @code{defpolylist} は, @var{[[vn,dn(vn,...,v1)],...,[v1,d(v1)]]} -なるリストである. ここで @var{di(vi,...,v1)} は @var{ai} の定義多項式において +@code{af(F,AL)} において, @code{AL} は代数的数のリストであり, 有理数体の +代数拡大を表す. @code{AL=[An,...,A1]} と書くとき, 各 @code{Ak} は, それより +右にある代数的数を係数とした, モニックな定義多項式で定義されていなければ +ならない. +\E +\BEG +In @code{af(F,AL)}, @code{AL} denotes a list of @code{roots} and it +represents an algebraic number field. In @code{AL=[An,...,A1]} each +@code{Ak} should be defined as a root of a defining polynomial +whose coefficients are in @code{Q(A(k+1),...,An)}. +\E + +@example +[1] A1 = newalg(x^2+1); +[2] A2 = newalg(x^2+A1); +[3] A3 = newalg(x^2+A2*x+A1); +[4] af(x^2+A2*x+A1,[A2,A1]); +[[x^2+(#1)*x+(#0),1]] +@end example + +\BJP +@code{af_noalg} では, @var{poly} に含まれる代数的数 @var{ai} を不定元 @var{vi} +で置き換える. @code{defpolylist} は, [[vn,dn(vn,...,v1)],...,[v1,d(v1)]] +なるリストである. ここで @var{di}(vi,...,v1) は @var{ai} の定義多項式において 代数的数を全て @var{vj} に置き換えたものである. \E \BEG To call @code{sp_noalg}, one should replace each algebraic number @var{ai} in @var{poly} with an indeterminate @var{vi}. @code{defpolylist} -is a list @var{[[vn,dn(vn,...,v1)],...,[v1,d(v1)]]}. In this expression -@var{di(vi,...,v1)} is a defining polynomial of @var{ai} represented +is a list [[vn,dn(vn,...,v1)],...,[v1,d(v1)]]. In this expression +@var{di}(vi,...,v1) is a defining polynomial of @var{ai} represented as a multivariate polynomial. \E + +@example +[1] af_noalg(x^2+a2*x+a1,[[a2,a2^2+a1],[a1,a1^2+1]]); +[[x^2+a2*x+a1,1]] +@end example + @item \BJP 結果は, 通常の無平方分解, 因数分解と同様 [@b{因子}, @b{重複度}] @@ -1302,10 +1331,14 @@ the input polynomial by a constant. @end itemize @example +[98] A = newalg(t^2-2); +(#0) [99] asq(-x^4+6*x^3+(2*alg(0)-9)*x^2+(-6*alg(0))*x-2); [[-x^2+3*x+(#0),2]] [100] af(-x^2+3*x+alg(0),[alg(0)]); [[x+(#0-1),1],[-x+(#0+2),1]] +[101] af_noalg(-x^2+3*x+a,[[a,x^2-2]]); +[[x+a-1,1],[-x+a+2,1]] @end example @table @t @@ -1374,7 +1407,7 @@ is a list containing only integral polynomials. \E \BEG The splitting field is represented as a list of pairs of form -@code{[root,algptorat(defpoly(root))]}. +@code{[root,} @code{algptorat(defpoly(root))]}. In more detail, the list is interpreted as a representation of successive extension obtained by adjoining @b{root}'s to the rational number field. Adjoining is performed from the right @@ -1401,9 +1434,10 @@ the builtin function @code{res()} is always used. @example [101] L=sp(x^9-54); -[[x+(-#2),-54*x+(#1^6*#2^4),54*x+(#1^6*#2^4+54*#2),54*x+(-#1^8*#2^2), --54*x+(#1^5*#2^5),54*x+(#1^5*#2^5+#1^8*#2^2),-54*x+(-#1^7*#2^3-54*#1), -54*x+(-#1^7*#2^3),x+(-#1)],[[(#2),t#2^6+t#1^3*t#2^3+t#1^6],[(#1),t#1^9-54]]] +[[x+(-#2),-54*x+(#1^6*#2^4),54*x+(#1^6*#2^4+54*#2), +54*x+(-#1^8*#2^2),-54*x+(#1^5*#2^5),54*x+(#1^5*#2^5+#1^8*#2^2), +-54*x+(-#1^7*#2^3-54*#1),54*x+(-#1^7*#2^3),x+(-#1)], +[[(#2),t#2^6+t#1^3*t#2^3+t#1^6],[(#1),t#1^9-54]]] [102] for(I=0,M=1;I<9;I++)M*=L[0][I]; [111] M=simpalg(M); -1338925209984*x^9+72301961339136