[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.3 Representation of algebraic numbers by distributed polynomials

Simplification of algebraic numbers containing 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 DAlg. A DAlg is represented as a fraction. The denominator is an integer and the numerator is a distributed polynomial with integral coefficients.

DAlg is generated as an element of an algebraic number field set by set_field(). There are two methods to generate a DAlg. algtodalg() converts an algebraic number containing root to DAlg. dptodalg() directly converts a distributed polynomial to DAlg.

[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

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.


[ << ] [ < ] [ Up ] [ > ] [ >> ]

This document was generated on December 18, 2017 using texi2html 5.0.