Google

Go to the first, previous, next, last section, table of contents.


asq, af, af_noalg

asq(poly)
:: Square-free factorization of polynomial poly over an algebraic number field.
af(poly,alglist)
af_noalg(poly,defpolylist)
:: Factorization of polynomial poly over an algebraic number field.
return
list
poly
polynomial
alglist
root list
defpolylist
root list of pairs of an indeterminate and a polynomial
  • Both defined in the file `sp'.
  • If the inputs contain no root's, these functions run fast since they invoke functions over the integers. In contrast to this, if the inputs contain root's, they sometimes take a long time, since cr_gcda() is invoked.
  • Function af() requires the specification of base field, i.e., list of root's for its second argument.
  • In the second argument alglist, root defined last must come first.
  • In af(F,AL), AL denotes a list of roots and it represents an algebraic number field. In AL=[An,...,A1] each Ak should be defined as a root of a defining polynomial whose coefficients are in Q(A(k+1),...,An).
    [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]]
    
    To call sp_noalg, one should replace each algebraic number ai in poly with an indeterminate vi. defpolylist is a list [[vn,dn(vn,...,v1)],...,[v1,d(v1)]]. In this expression di(vi,...,v1) is a defining polynomial of ai represented as a multivariate polynomial.
    [1] af_noalg(x^2+a2*x+a1,[[a2,a2^2+a1],[a1,a1^2+1]]);
    [[x^2+a2*x+a1,1]]
    
  • The result is a list, as a result of usual factorization, whose elements is of the form [factor, multiplicity]. In the result of af_noalg, algebraic numbers in @v{factor} are replaced by the indeterminates according to defpolylist.
  • The product of all factors with multiplicities counted may differ from the input polynomial by a constant.
[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]]
Reference
section cr_gcda, section fctr, sqfr


Go to the first, previous, next, last section, table of contents.