version 1.3, 2000/03/10 07:18:40 |
version 1.7, 2003/04/20 08:01:24 |
|
|
@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 |
\BJP |
@node $BBe?tE*?t$K4X$9$k1i;;(B,,, Top |
@node $BBe?tE*?t$K4X$9$k1i;;(B,,, Top |
@chapter $BBe?tE*?t$K4X$9$k1i;;(B |
@chapter $BBe?tE*?t$K4X$9$k1i;;(B |
Line 410 into the @b{root} by @code{rattoalgp()} function. |
|
Line 410 into the @b{root} by @code{rattoalgp()} function. |
|
|
|
@example |
@example |
[88] rattoalgp(S,[alg(0)]); |
[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 |
(((#0+2)/(#0+2))*t#1^2+((#0^2+2*#0)/(#0+2))*t#1 |
+((1)/(#0+2))*t#1+((1)/(#0+2)) |
+((2*#0^2+4*#0)/(#0+2)))*x+((1)/(#0+2))*t#1+((1)/(#0+2)) |
[89] rattoalgp(S,[alg(0),alg(1)]); |
[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 |
(((#0^3+6*#0^2+12*#0+8)*#1^2+(#0^4+6*#0^3+12*#0^2+8*#0)*#1 |
+24*#0^2+16*#0)/(#0^3+6*#0^2+12*#0+8))*x+(((#0+2)*#1+#0+2)/(#0^2+4*#0+4)) |
+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)]); |
[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); |
[91] simpalg(@@89); |
(#1^2+#0*#1+2*#0)*x+((-1/5*#0+2/5)*#1-1/5*#0+2/5) |
(#1^2+#0*#1+2*#0)*x+((-1/5*#0+2/5)*#1-1/5*#0+2/5) |
[92] simpalg(@@90); |
[92] simpalg(@@90); |
Line 499 where the ground field is a multiple extension. |
|
Line 501 where the ground field is a multiple extension. |
|
(#0) |
(#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); |
[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) |
(#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 |
[65] P1=75*x^2+(150*B+10*A^7-175*A^4-395*A)*x |
+13*A^8-220*A^5-581*A^2)$ |
+(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$ |
[66] P2=x^2+A*x+A^2$ |
[67] cr_gcda(P1,P2); |
[67] cr_gcda(P1,P2); |
27*x+((#0^6-19*#0^3-65)*#1-#0^7+19*#0^4+38*#0) |
27*x+((#0^6-19*#0^3-65)*#1-#0^7+19*#0^4+38*#0) |
Line 531 The function to do this factorization is @code{asq()}. |
|
Line 533 The function to do this factorization is @code{asq()}. |
|
[116] A=newalg(x^2+x+1); |
[116] A=newalg(x^2+x+1); |
(#4) |
(#4) |
[117] T=simpalg((x+A+1)*(x^2-2*A-3)^2*(x^3-x-A)^2); |
[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 |
x^11+(#4+1)*x^10+(-4*#4-8)*x^9+(-10*#4-4)*x^8+(16*#4+20)*x^7 |
+(-29*#4-31)*x^5+(-15*#4+28)*x^4+(38*#4+29)*x^3+(#4-23)*x^2+(-21*#4-7)*x |
+(24*#4-6)*x^6+(-29*#4-31)*x^5+(-15*#4+28)*x^4+(38*#4+29)*x^3 |
+(3*#4+8) |
+(#4-23)*x^2+(-21*#4-7)*x+(3*#4+8) |
[118] asq(T); |
[118] asq(T); |
[[x^5+(-2*#4-4)*x^3+(-#4)*x^2+(2*#4+3)*x+(#4-2),2],[x+(#4+1),1]] |
[[x^5+(-2*#4-4)*x^3+(-#4)*x^2+(2*#4+3)*x+(#4-2),2],[x+(#4+1),1]] |
@end example |
@end example |
Line 641 The function is @code{sp()}. |
|
Line 643 The function is @code{sp()}. |
|
|
|
@example |
@example |
[103] sp(x^5-2); |
[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 |
[[x+(-#1),2*x+(#0^3*#1^3+#0^4*#1^2+2*#1+2*#0),2*x+(-#0^4*#1^2), |
+(-#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], |
2*x+(-#0^3*#1^3),x+(-#0)], |
[(#0),t#0^5-2]]] |
[[(#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 |
@end example |
|
|
@noindent |
@noindent |
Line 706 may yield a polynomial which differs by a constant. |
|
Line 708 may yield a polynomial which differs by a constant. |
|
* rattoalgp:: |
* rattoalgp:: |
* cr_gcda:: |
* cr_gcda:: |
* sp_norm:: |
* sp_norm:: |
* asq af:: |
* asq af af_noalg:: |
* sp:: |
* sp sp_noalg:: |
@end menu |
@end menu |
|
|
\JP @node newalg,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
\JP @node newalg,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
Line 1083 substitutes a @b{root} for the associated indeterminat |
|
Line 1085 substitutes a @b{root} for the associated indeterminat |
|
@item return |
@item return |
\JP $BB?9`<0(B |
\JP $BB?9`<0(B |
\EG polynomial |
\EG polynomial |
@item poly1, poly2 |
@item poly1 poly2 |
\JP $BB?9`<0(B |
\JP $BB?9`<0(B |
\EG polynomial |
\EG polynomial |
@end table |
@end table |
|
|
@table @t |
@table @t |
\JP @item $B;2>H(B |
\JP @item $B;2>H(B |
\EG @item Reference |
\EG @item Reference |
@fref{gr hgr gr_mod}, @fref{asq af} |
@fref{gr hgr gr_mod}, @fref{asq af af_noalg} |
@end table |
@end table |
|
|
\JP @node sp_norm,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
\JP @node sp_norm,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
Line 1192 x^12+2*x^8+5*x^4+1 |
|
Line 1194 x^12+2*x^8+5*x^4+1 |
|
@table @t |
@table @t |
\JP @item $B;2>H(B |
\JP @item $B;2>H(B |
\EG @item Reference |
\EG @item Reference |
@fref{res}, @fref{asq af} |
@fref{res}, @fref{asq af af_noalg} |
@end table |
@end table |
|
|
\JP @node asq af,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
\JP @node asq af af_noalg,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
\EG @node asq af,,, Summary of functions for algebraic numbers |
\EG @node asq af af_noalg,,, Summary of functions for algebraic numbers |
@subsection @code{asq}, @code{af} |
@subsection @code{asq}, @code{af}, @code{af_noalg} |
@findex asq |
@findex asq |
@findex af |
@findex af |
|
@findex af_noalg |
|
|
@table @t |
@table @t |
@item asq(@var{poly}) |
@item asq(@var{poly}) |
Line 1209 x^12+2*x^8+5*x^4+1 |
|
Line 1212 x^12+2*x^8+5*x^4+1 |
|
algebraic number field. |
algebraic number field. |
\E |
\E |
@item af(@var{poly},@var{alglist}) |
@item af(@var{poly},@var{alglist}) |
|
@itemx af_noalg(@var{poly},@var{defpolylist}) |
\JP :: $BBe?tBN>e$N(B 1 $BJQ?tB?9`<0$N0x?tJ,2r(B |
\JP :: $BBe?tBN>e$N(B 1 $BJQ?tB?9`<0$N0x?tJ,2r(B |
\BEG |
\BEG |
:: Factorization of polynomial @var{poly} over an |
:: Factorization of polynomial @var{poly} over an |
Line 1226 algebraic number field. |
|
Line 1230 algebraic number field. |
|
@item alglist |
@item alglist |
\JP @code{root} $B$N%j%9%H(B |
\JP @code{root} $B$N%j%9%H(B |
\EG @code{root} list |
\EG @code{root} list |
|
@item defpolylist |
|
\JP @code{root} $B$rI=$9ITDj85$HDj5AB?9`<0$N%Z%"$N%j%9%H(B |
|
\EG @code{root} list of pairs of an indeterminate and a polynomial |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
Line 1263 In the second argument @code{alglist}, @b{root} define |
|
Line 1270 In the second argument @code{alglist}, @b{root} define |
|
first. |
first. |
\E |
\E |
@item |
@item |
\JP $B7k2L$O(B, $BDL>o$NL5J?J}J,2r(B, $B0x?tJ,2r$HF1MM(B [@b{$B0x;R(B}, @b{$B=EJ#EY(B}] $B$N%j%9%H$G$"$k(B. |
\BJP |
|
@code{af(F,AL)} $B$K$*$$$F(B, @code{AL} $B$OBe?tE*?t$N%j%9%H$G$"$j(B, $BM-M}?tBN$N(B |
|
$BBe?t3HBg$rI=$9(B. @code{AL=[An,...,A1]} $B$H=q$/$H$-(B, $B3F(B @code{Ak} $B$O(B, $B$=$l$h$j(B |
|
$B1&$K$"$kBe?tE*?t$r78?t$H$7$?(B, $B%b%K%C%/$JDj5AB?9`<0$GDj5A$5$l$F$$$J$1$l$P(B |
|
$B$J$i$J$$(B. |
|
\E |
\BEG |
\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} $B$G$O(B, @var{poly} $B$K4^$^$l$kBe?tE*?t(B @var{ai} $B$rITDj85(B @var{vi} |
|
$B$GCV$-49$($k(B. @code{defpolylist} $B$O(B, [[vn,dn(vn,...,v1)],...,[v1,d(v1)]] |
|
$B$J$k%j%9%H$G$"$k(B. $B$3$3$G(B @var{di}(vi,...,v1) $B$O(B @var{ai} $B$NDj5AB?9`<0$K$*$$$F(B |
|
$BBe?tE*?t$rA4$F(B @var{vj} $B$KCV$-49$($?$b$N$G$"$k(B. |
|
\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 |
|
$B7k2L$O(B, $BDL>o$NL5J?J}J,2r(B, $B0x?tJ,2r$HF1MM(B [@b{$B0x;R(B}, @b{$B=EJ#EY(B}] |
|
$B$N%j%9%H$G$"$k(B. @code{af_noalg} $B$N>l9g(B, @b{$B0x;R(B} $B$K8=$l$kBe?tE*?t$O(B, |
|
@var{defpolylist} $B$K=>$C$FITDj85$KCV$-49$($i$l$k(B. |
|
\E |
|
\BEG |
The result is a list, as a result of usual factorization, whose elements |
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 |
\E |
@item |
@item |
\JP $B=EJ#EY$r9~$a$?0x;R$NA4$F$N@Q$O(B, @var{poly} $B$HDj?tG\$N0c$$$,$"$jF@$k(B. |
\JP $B=EJ#EY$r9~$a$?0x;R$NA4$F$N@Q$O(B, @var{poly} $B$HDj?tG\$N0c$$$,$"$jF@$k(B. |
Line 1277 the input polynomial by a constant. |
|
Line 1331 the input polynomial by a constant. |
|
@end itemize |
@end itemize |
|
|
@example |
@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); |
[99] asq(-x^4+6*x^3+(2*alg(0)-9)*x^2+(-6*alg(0))*x-2); |
[[-x^2+3*x+(#0),2]] |
[[-x^2+3*x+(#0),2]] |
[100] af(-x^2+3*x+alg(0),[alg(0)]); |
[100] af(-x^2+3*x+alg(0),[alg(0)]); |
[[x+(#0-1),1],[-x+(#0+2),1]] |
[[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 |
@end example |
|
|
@table @t |
@table @t |
Line 1289 the input polynomial by a constant. |
|
Line 1347 the input polynomial by a constant. |
|
@fref{cr_gcda}, @fref{fctr sqfr} |
@fref{cr_gcda}, @fref{fctr sqfr} |
@end table |
@end table |
|
|
\JP @node sp,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
\JP @node sp sp_noalg,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
\EG @node sp,,, Summary of functions for algebraic numbers |
\EG @node sp sp_noalg,,, Summary of functions for algebraic numbers |
@subsection @code{sp} |
@subsection @code{sp}, @code{sp_noalg} |
@findex sp |
@findex sp |
|
|
@table @t |
@table @t |
@item sp(@var{poly}) |
@item sp(@var{poly}) |
|
@itemx sp_noalg(@var{poly}) |
\JP :: $B:G>.J,2rBN$r5a$a$k(B. |
\JP :: $B:G>.J,2rBN$r5a$a$k(B. |
\EG :: Finds the splitting field of polynomial @var{poly} and splits. |
\EG :: Finds the splitting field of polynomial @var{poly} and splits. |
@end table |
@end table |
Line 1326 over the field. |
|
Line 1385 over the field. |
|
@item |
@item |
\BJP |
\BJP |
$B7k2L$O(B, @var{poly} $B$N0x;R$N%j%9%H$H(B, $B:G>.J,2rBN$N(B, $BC`<!3HBg$K$h$kI=8=(B |
$B7k2L$O(B, @var{poly} $B$N0x;R$N%j%9%H$H(B, $B:G>.J,2rBN$N(B, $BC`<!3HBg$K$h$kI=8=(B |
$B$+$i$J$k%j%9%H$G$"$k(B. |
$B$+$i$J$k%j%9%H$G$"$k(B. @code{sp_noalg} $B$G$O(B, $BA4$F$NBe?tE*?t$,(B, $BBP1~$9$k(B |
|
$BITDj85(B ($BB($A(B @code{#i} $B$KBP$9$k(B @code{t#i}) $B$KCV$-49$($i$l$k(B. $B$3$l$K(B |
|
$B$h$j(B, @code{sp_noalg} $B$N=PNO$O(B, $B@0?t78?tB?JQ?tB?9`<0$N%j%9%H$H$J$k(B. |
\E |
\E |
\BEG |
\BEG |
The result consists of a two element list: The first element is |
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 |
the list of all linear factors of @var{poly}; the second element is |
a list which represents the successive extension of the field. |
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 |
\E |
@item |
@item |
\BJP |
\BJP |
Line 1342 a list which represents the successive extension of th |
|
Line 1407 a list which represents the successive extension of th |
|
\E |
\E |
\BEG |
\BEG |
The splitting field is represented as a list of pairs of form |
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 |
In more detail, the list is interpreted as a representation |
of successive extension obtained by adjoining @b{root}'s |
of successive extension obtained by adjoining @b{root}'s |
to the rational number field. Adjoining is performed from the right |
to the rational number field. Adjoining is performed from the right |
Line 1369 the builtin function @code{res()} is always used. |
|
Line 1434 the builtin function @code{res()} is always used. |
|
|
|
@example |
@example |
[101] L=sp(x^9-54); |
[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), |
[[x+(-#2),-54*x+(#1^6*#2^4),54*x+(#1^6*#2^4+54*#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^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),x+(-#1)],[[(#2),t#2^6+t#1^3*t#2^3+t#1^6],[(#1),t#1^9-54]]] |
-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]; |
[102] for(I=0,M=1;I<9;I++)M*=L[0][I]; |
[111] M=simpalg(M); |
[111] M=simpalg(M); |
-1338925209984*x^9+72301961339136 |
-1338925209984*x^9+72301961339136 |
Line 1382 the builtin function @code{res()} is always used. |
|
Line 1448 the builtin function @code{res()} is always used. |
|
@table @t |
@table @t |
\JP @item $B;2>H(B |
\JP @item $B;2>H(B |
\EG @item Reference |
\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 |
@end table |
|
|