| version 1.6, 2003/04/19 15:44:55 |
version 1.8, 2007/02/15 02:41:38 |
|
|
| @comment $OpenXM: OpenXM/src/asir-doc/parts/algnum.texi,v 1.5 2000/09/23 07:53:24 noro Exp $ |
@comment $OpenXM: OpenXM/src/asir-doc/parts/algnum.texi,v 1.7 2003/04/20 08:01:24 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 |
|
|
| @menu |
@menu |
| \BJP |
\BJP |
| * $BBe?tE*?t$NI=8=(B:: |
* $BBe?tE*?t$NI=8=(B:: |
| |
* $BJ,;6B?9`<0$K$h$kBe?tE*?t$NI=8=(B:: |
| * $BBe?tE*?t$N1i;;(B:: |
* $BBe?tE*?t$N1i;;(B:: |
| * $BBe?tBN>e$G$N(B 1 $BJQ?tB?9`<0$N1i;;(B:: |
* $BBe?tBN>e$G$N(B 1 $BJQ?tB?9`<0$N1i;;(B:: |
| * $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B:: |
* $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B:: |
| \E |
\E |
| \BEG |
\BEG |
| * Representation of algebraic numbers:: |
* Representation of algebraic numbers:: |
| |
* Representation of algebraic numbers by distributed polynomials:: |
| * Operations over algebraic numbers:: |
* Operations over algebraic numbers:: |
| * Operations for uni-variate polynomials over an algebraic number field:: |
* Operations for uni-variate polynomials over an algebraic number field:: |
| * Summary of functions for algebraic numbers:: |
* Summary of functions for algebraic numbers:: |
|
|
| [100] |
[100] |
| @end example |
@end example |
| |
|
| |
|
| |
@example |
| |
@end example |
| |
|
| \BJP |
\BJP |
| @node $BBe?tE*?t$N1i;;(B,,, $BBe?tE*?t$K4X$9$k1i;;(B |
@node $BBe?tE*?t$N1i;;(B,,, $BBe?tE*?t$K4X$9$k1i;;(B |
| @section $BBe?tE*?t$N1i;;(B |
@section $BBe?tE*?t$N1i;;(B |
| Line 410 into the @b{root} by @code{rattoalgp()} function. |
|
| Line 416 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 444 used for your own simplification. |
|
| Line 452 used for your own simplification. |
|
| \E |
\E |
| |
|
| \BJP |
\BJP |
| |
@node $BJ,;6B?9`<0$K$h$kBe?tE*?t$NI=8=(B,,, $BBe?tE*?t$K4X$9$k1i;;(B |
| |
@section $BJ,;6B?9`<0$K$h$kBe?tE*?t$NI=8=(B |
| |
\E |
| |
\BEG |
| |
@node Representation of algebraic numbers by distributed polynomials,,, Algebraic numbers |
| |
@section Representation of algebraic numbers by distributed polynomials |
| |
\E |
| |
|
| |
@noindent |
| |
\BJP |
| |
$BA0@a$G=R$Y$?$h$&$K(B, @code{root} $B$r4^$`Be?tE*?t$KBP$9$k4JC12=$O(B |
| |
$B%f!<%6$NH=CG$G9T$&I,MW$,$"$k(B. $B$3$l$KBP$7(B, $B$3$3$G2r@b$9$k$b$&0l$D$NBe?tE*?t$N(B |
| |
$BI=8=$K$D$$$F$O(B, $B2C8:>h=|(B, $B%Y%-$J$I$r9T$C$?$"$H<+F0E*$K4JC12=$,9T$o$l$k(B. |
| |
$B$3$NI=8=$O(B, $BC`<!3HBg$N>l9g$KFC$K8zN($h$/7W;;$,9T$o$l$k$h$&@_7W$5$l$F$*$j(B, |
| |
$B%0%l%V%J!<4pDl4X78$N4X?t$K$*$1$k78?tBN$H$7$FMQ$$$k$3$H$,$G$-$k(B. $B$3$NI=8=$O(B |
| |
$BFbItE*$K$O(B, @code{DAlg} $B$H8F$P$l$k%*%V%8%'%/%H$H$7$FDj5A$5$l$F$$$k(B. |
| |
@code{DAlg} $B$OJ,?t<0$N7A$GJ];}$5$l$k(B. $BJ,Jl$O@0?t(B, $BJ,;R$O@0?t78?t$NJ,;6B?9`<0$G$"$k(B. |
| |
\E |
| |
\BEG |
| |
Simplification of algebraic numbers containing @code{root} |
| |
is not done automatically and should be done by users. |
| |
There is another representation of algebraic numbers, for which the |
| |
results of fundamental operations are automatically simplified. |
| |
This representations are designed so that operations are efficiently |
| |
performed especially when the field is a successive extension and |
| |
it can be used as a ground field for Groebner basis related functions. |
| |
Internally an algebraic number of this type is defined as an object |
| |
called @code{DAlg}. A @code{DAlg} is represented as a fraction. The |
| |
denominator is an integer and the numerator is a distributed polynomial |
| |
with integral coefficients. |
| |
\E |
| |
|
| |
\BJP |
| |
@code{DAlg} $B$O!$(B@code{set_field()} $B$K$h$j$"$i$+$8$a@_Dj$5$l$?Be?tBN$N(B |
| |
$B85$H$7$F@8@.$5$l$k(B. $B@8@.J}K!$O(B, @code{newalg()} $B$G@8@.$5$l$?Be?tE*?t$r(B |
| |
$B4^$`?t$+$i(B @code{algtodalg()} $B$GJQ49$9$k(B, $B$"$k$$$OJ,;6B?9`<0$+$iD>@\(B |
| |
@code{dptodalg()} $B$GJQ49$9$k!$$N(B 2 $BDL$j$"$k(B. |
| |
$B0lC6(B @code{DAlg} $B7A<0$KJQ49$5$l$l$P(B, $B1i;;8e$K<+F0E*$K4JC12=$5$l$k(B. |
| |
\E |
| |
\BEG |
| |
@code{DAlg} is generated as an element of an algebraic number field |
| |
set by @code{set_field()}. There are two methods to generate a @code{DAlg}. |
| |
@code{algtodalg()} converts an algebraic number containing @code{root} |
| |
to @code{DAlg}. @code{dptodalg()} directly converts a distributed polynomial to |
| |
@code{DAlg}. |
| |
\E |
| |
@example |
| |
[0] A=newalg(x^2+1); |
| |
(#0) |
| |
[1] B=newalg(x^3+A*x+A); |
| |
(#1) |
| |
[2] set_field([B,A]); |
| |
0 |
| |
[3] C=algtodalg(A+B); |
| |
((1)*<<1,0>>+(1)*<<0,1>>) |
| |
[4] C^5; |
| |
((-11)*<<2,1>>+(5)*<<2,0>>+(10)*<<1,1>>+(9)*<<1,0>>+(11)*<<0,1>> |
| |
+(-1)*<<0,0>>) |
| |
[5] 1/C; |
| |
((2)*<<2,1>>+(-1)*<<2,0>>+(1)*<<1,1>>+(2)*<<1,0>>+(-3)*<<0,1>> |
| |
+(-1)*<<0,0>>)/5 |
| |
@end example |
| |
\BJP |
| |
$B$3$NNc$G$O(B, Q(a,b) (a^2+1=0, b^3+ab+b=0) $B$K$*$$$F(B, (a+b)^5 $B$*$h$S(B 1/(a+b) $B$r(B |
| |
$B7W;;(B ($B4JC12=(B) $B$7$F$$$k(B. $BJ,;R$G$"$kJ,;6B?9`<0$NI=<($O(B, $BJ,;6B?9`<0$NI=<($r$=$N$^$^N.MQ$7$F$$$k(B. |
| |
\E |
| |
\BEG |
| |
In this example Q(a,b) (a^2+1=0, b^3+ab+b=0) is set as the current ground field, |
| |
and (a+b)^5 and 1/(a+b) are simplified in the field. The numerators of the results |
| |
are printed as distributed polynomials. |
| |
\E |
| |
|
| |
\BJP |
| @node $BBe?tBN>e$G$N(B 1 $BJQ?tB?9`<0$N1i;;(B,,, $BBe?tE*?t$K4X$9$k1i;;(B |
@node $BBe?tBN>e$G$N(B 1 $BJQ?tB?9`<0$N1i;;(B,,, $BBe?tE*?t$K4X$9$k1i;;(B |
| @section $BBe?tBN>e$G$N(B 1 $BJQ?tB?9`<0$N1i;;(B |
@section $BBe?tBN>e$G$N(B 1 $BJQ?tB?9`<0$N1i;;(B |
| \E |
\E |
| Line 499 where the ground field is a multiple extension. |
|
| Line 580 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 612 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 722 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 708 may yield a polynomial which differs by a constant. |
|
| Line 789 may yield a polynomial which differs by a constant. |
|
| * sp_norm:: |
* sp_norm:: |
| * asq af af_noalg:: |
* asq af af_noalg:: |
| * sp sp_noalg:: |
* sp sp_noalg:: |
| |
* set_field:: |
| |
* algtodalg dalgtoalg dptodalg dalgtodp:: |
| @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 1405 is a list containing only integral polynomials. |
|
| Line 1488 is a list containing only integral polynomials. |
|
| \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 1432 the builtin function @code{res()} is always used. |
|
| Line 1515 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 1448 the builtin function @code{res()} is always used. |
|
| Line 1532 the builtin function @code{res()} is always used. |
|
| @fref{asq af af_noalg}, @fref{defpoly}, @fref{algptorat}, @fref{sp_norm}. |
@fref{asq af af_noalg}, @fref{defpoly}, @fref{algptorat}, @fref{sp_norm}. |
| @end table |
@end table |
| |
|
| |
\JP @node set_field,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
| |
\EG @node set_field,,, Summary of functions for algebraic numbers |
| |
@subsection @code{set_field} |
| |
@findex set_field |
| |
|
| |
@table @t |
| |
@item set_field(@var{rootlist}) |
| |
\JP :: $BBe?tBN$r4pACBN$H$7$F@_Dj$9$k(B. |
| |
\EG :: Set an algebraic number field as the currernt ground field. |
| |
@end table |
| |
|
| |
@table @var |
| |
@item return |
| |
0 |
| |
@item rootlist |
| |
\JP @code{root} $B$N%j%9%H(B |
| |
\EG A list of @code{root} |
| |
@end table |
| |
|
| |
@itemize @bullet |
| |
@item |
| |
\JP @code{root} $B$N%j%9%H(B @var{rootlist} $B$G@8@.$5$l$kBe?tBN$r4pACBN$H$7$F@_Dj$9$k(B. |
| |
\BEG |
| |
@code{set_field()} sets an algebraic number field generated by @code{root} in |
| |
@var{rootlist} over Q. |
| |
\E |
| |
@item |
| |
\BJP |
| |
@code{root} $B$OFbItE*$K=g=x$E$1$i$l$F$$$k$N$G(B, @var{rootlist} $B$O=89g$H$7$F;XDj(B |
| |
$B$9$l$P$h$$(B. ($B=g=x$O5$$K$7$J$/$F$h$$(B.) |
| |
\E |
| |
\BEG |
| |
You don't care about the order of @code{root} in @var{rootlist}, because |
| |
@code{root} are automatically ordered internally. |
| |
\E |
| |
@end itemize |
| |
|
| |
@example |
| |
[0] A=newalg(x^2+1); |
| |
(#0) |
| |
[1] B=newalg(x^3+A); |
| |
(#1) |
| |
[2] C=newalg(x^4+B); |
| |
(#1) |
| |
[3] set_field([C,B,A]); |
| |
0 |
| |
@end example |
| |
|
| |
@table @t |
| |
\JP @item $B;2>H(B |
| |
\EG @item Reference |
| |
@fref{algtodalg dalgtoalg dptodalg dalgtodp} |
| |
@end table |
| |
|
| |
\JP @node algtodalg dalgtoalg dptodalg dalgtodp,,, $BBe?tE*?t$K4X$9$kH!?t$N$^$H$a(B |
| |
\EG @node algtodalg dalgtoalg dptodalg dalgtodp,,, Summary of functions for algebraic numbers |
| |
@subsection @code{algtodalg}, @code{dalgtoalg}, @code{dptodalg}, @code{dalgtodp} |
| |
@findex algtodalg |
| |
@findex dalgtoalg |
| |
@findex dpodalg |
| |
@findex dalgtodp |
| |
|
| |
@table @t |
| |
@item algtodalg(@var{alg}) |
| |
\JP :: $BBe?tE*?t(B @var{alg} $B$r(B @code{DAlg} $B$KJQ49$9$k(B. |
| |
\EG :: Converts an algebraic number @var{alg} to a @code{DAlg}. |
| |
@item dalgtoalg(@var{dalg}) |
| |
\JP :: @code{DAlg} @code{dalg} $B$rBe?tE*?t$KJQ49$9$k(B. |
| |
\EG :: Converts a @code{DAlg} @code{dalg} to an algebraic number. |
| |
@item dptodalg(@var{dp}) |
| |
\JP :: $BJ,;6B?9`<0(B @var{dp} $B$r(B @code{DAlg} $B$KJQ49$9$k(B. |
| |
\EG :: Converts an algebraic number @var{alg} to a @code{DAlg}. |
| |
@item dalgtodp(@var{dalg}) |
| |
\JP :: @code{DAlg} @code{dalg} $B$rJ,;6B?9`<0$KJQ49$9$k(B. |
| |
\EG :: Converts a @code{DAlg} @code{dalg} to an algebraic number. |
| |
@end table |
| |
|
| |
@table @var |
| |
@item return |
| |
\JP $BBe?tE*?t(B, @code{DAlg} $B$^$?$O(B [$BJ,;6B?9`<0(B,$BJ,Jl(B] $B$J$k%j%9%H(B |
| |
\EG An algebraic number, a @code{DAlg} or a list [distributed polynomial,denominator] |
| |
@item alg |
| |
\JP @code{root} $B$r4^$`Be?tE*?t(B |
| |
\EG an algebraic number containing @code{root} |
| |
@item dp |
| |
\JP $BM-M}?t78?tJ,;6B?9`<0(B |
| |
\EG a distributed polynomial over Q |
| |
@end table |
| |
|
| |
@itemize @bullet |
| |
@item |
| |
\JP @code{root} $B$r4^$`Be?tE*?t(B, @code{DAlg} $B$*$h$SJ,;6B?9`<04V$NJQ49$r9T$&(B. |
| |
\BEG |
| |
These functions are converters between @code{DAlg} and an algebraic number |
| |
containing @code{root}, or a distributed polynomial. |
| |
\E |
| |
@item |
| |
\BJP |
| |
@code{DAlg} $B$,B0$9$Y$-Be?tBN$O(B, @code{set_field()} $B$K$h$j(B |
| |
$B$"$i$+$8$a@_Dj$7$F$*$/I,MW$,$"$k(B. |
| |
\E |
| |
\BEG |
| |
A ground field to which a @code{DAlg} belongs must be set by @code{set_field()} |
| |
in advance. |
| |
\E |
| |
@item |
| |
\BJP |
| |
@code{dalgtodp()} $B$O(B, $BJ,;R$G$"$k@0?t78?tJ,;6B?9`<0$H(B, $BJ,Jl$G$"$k@0?t$rMWAG$K;}$D(B |
| |
$B%j%9%H$rJV$9(B. |
| |
\E |
| |
\BEG |
| |
@code{dalgtodp()} returns a list containing the numerator (a distributed polynomial) |
| |
and the denominator (an integer). |
| |
\E |
| |
@item |
| |
\BJP |
| |
@code{algtodalg()}, @code{dptodalg()} $B$O4JC12=$5$l$?7k2L$rJV$9(B. |
| |
\E |
| |
\BEG |
| |
@code{algtodalg()}, @code{dptodalg()} return the simplified result. |
| |
\E |
| |
@end itemize |
| |
|
| |
@example |
| |
[0] A=newalg(x^2+1); |
| |
(#0) |
| |
[1] B=newalg(x^3+A*x+A); |
| |
(#1) |
| |
[2] set_field([B,A]); |
| |
0 |
| |
[3] C=algtodalg((A+B)^10); |
| |
((408)*<<2,1>>+(103)*<<2,0>>+(-36)*<<1,1>>+(-446)*<<1,0>> |
| |
+(-332)*<<0,1>>+(-218)*<<0,0>>) |
| |
[4] dalgtoalg(C); |
| |
((408*#0+103)*#1^2+(-36*#0-446)*#1-332*#0-218) |
| |
[5] D=dptodalg(<<10,10>>/10+2*<<5,5>>+1/3*<<0,0>>); |
| |
((-9)*<<2,1>>+(57)*<<2,0>>+(-63)*<<1,1>>+(-12)*<<1,0>> |
| |
+(-60)*<<0,1>>+(1)*<<0,0>>)/30 |
| |
[6] dalgtodp(D); |
| |
[(-9)*<<2,1>>+(57)*<<2,0>>+(-63)*<<1,1>>+(-12)*<<1,0>> |
| |
+(-60)*<<0,1>>+(1)*<<0,0>>,30] |
| |
@end example |
| |
|
| |
@table @t |
| |
\JP @item $B;2>H(B |
| |
\EG @item Reference |
| |
@fref{set_field} |
| |
@end table |