=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/parts/algnum.texi,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM/src/asir-doc/parts/algnum.texi 2000/03/10 07:18:40 1.3 +++ 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.2 1999/12/21 02:47:30 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 @@ -706,8 +708,8 @@ may yield a polynomial which differs by a constant. * rattoalgp:: * cr_gcda:: * sp_norm:: -* asq af:: -* sp:: +* asq af af_noalg:: +* sp sp_noalg:: @end menu \JP @node newalg,,, 代数的数に関する函数のまとめ @@ -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 @@ -1109,7 +1111,7 @@ x+(-#0) @table @t \JP @item 参照 \EG @item Reference -@fref{gr hgr gr_mod}, @fref{asq af} +@fref{gr hgr gr_mod}, @fref{asq af af_noalg} @end table \JP @node sp_norm,,, 代数的数に関する函数のまとめ @@ -1192,14 +1194,15 @@ x^12+2*x^8+5*x^4+1 @table @t \JP @item 参照 \EG @item Reference -@fref{res}, @fref{asq af} +@fref{res}, @fref{asq af af_noalg} @end table -\JP @node asq af,,, 代数的数に関する函数のまとめ -\EG @node asq af,,, Summary of functions for algebraic numbers -@subsection @code{asq}, @code{af} +\JP @node asq af af_noalg,,, 代数的数に関する函数のまとめ +\EG @node asq af af_noalg,,, Summary of functions for algebraic numbers +@subsection @code{asq}, @code{af}, @code{af_noalg} @findex asq @findex af +@findex af_noalg @table @t @item asq(@var{poly}) @@ -1209,6 +1212,7 @@ x^12+2*x^8+5*x^4+1 algebraic number field. \E @item af(@var{poly},@var{alglist}) +@itemx af_noalg(@var{poly},@var{defpolylist}) \JP :: 代数体上の 1 変数多項式の因数分解 \BEG :: Factorization of polynomial @var{poly} over an @@ -1226,6 +1230,9 @@ algebraic number field. @item alglist \JP @code{root} のリスト \EG @code{root} list +@item defpolylist +\JP @code{root} を表す不定元と定義多項式のペアのリスト +\EG @code{root} list of pairs of an indeterminate and a polynomial @end table @itemize @bullet @@ -1263,10 +1270,57 @@ In the second argument @code{alglist}, @b{root} define first. \E @item -\JP 結果は, 通常の無平方分解, 因数分解と同様 [@b{因子}, @b{重複度}] のリストである. +\BJP +@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 [[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{重複度}] +のリストである. @code{af_noalg} の場合, @b{因子} に現れる代数的数は, +@var{defpolylist} に従って不定元に置き換えられる. +\E +\BEG The result is a list, as a result of usual factorization, whose elements -is of the form [@b{factor}, @b{multiplicity}]. +is of the form [@b{factor}, @b{multiplicity}]. +In the result of @code{af_noalg}, algebraic numbers in @v{factor} are +replaced by the indeterminates according to @var{defpolylist}. \E @item \JP 重複度を込めた因子の全ての積は, @var{poly} と定数倍の違いがあり得る. @@ -1277,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 @@ -1289,13 +1347,14 @@ the input polynomial by a constant. @fref{cr_gcda}, @fref{fctr sqfr} @end table -\JP @node sp,,, 代数的数に関する函数のまとめ -\EG @node sp,,, Summary of functions for algebraic numbers -@subsection @code{sp} +\JP @node sp sp_noalg,,, 代数的数に関する函数のまとめ +\EG @node sp sp_noalg,,, Summary of functions for algebraic numbers +@subsection @code{sp}, @code{sp_noalg} @findex sp @table @t @item sp(@var{poly}) +@itemx sp_noalg(@var{poly}) \JP :: 最小分解体を求める. \EG :: Finds the splitting field of polynomial @var{poly} and splits. @end table @@ -1326,12 +1385,18 @@ over the field. @item \BJP 結果は, @var{poly} の因子のリストと, 最小分解体の, 逐次拡大による表現 -からなるリストである. +からなるリストである. @code{sp_noalg} では, 全ての代数的数が, 対応する +不定元 (即ち @code{#i} に対する @code{t#i}) に置き換えられる. これに +より, @code{sp_noalg} の出力は, 整数係数多変数多項式のリストとなる. \E \BEG The result consists of a two element list: The first element is the list of all linear factors of @var{poly}; the second element is a list which represents the successive extension of the field. +In the result of @code{sp_noalg} all the algebraic numbers are replaced +by the special indeterminate associated with it, that is @code{t#i} +for @code{#i}. By this operation the result of @code{sp_noalg} +is a list containing only integral polynomials. \E @item \BJP @@ -1342,7 +1407,7 @@ a list which represents the successive extension of th \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 @@ -1369,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 @@ -1382,6 +1448,6 @@ the builtin function @code{res()} is always used. @table @t \JP @item 参照 \EG @item Reference -@fref{asq af}, @fref{defpoly}, @fref{algptorat}, @fref{sp_norm}. +@fref{asq af af_noalg}, @fref{defpoly}, @fref{algptorat}, @fref{sp_norm}. @end table