  GNU-Darwin Web

### `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)`.
``` A1 = newalg(x^2+1);
 A2 = newalg(x^2+A1);
 A3 = newalg(x^2+A2*x+A1);
 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.
``` 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.
``` A = newalg(t^2-2);
(#0)
 asq(-x^4+6*x^3+(2*alg(0)-9)*x^2+(-6*alg(0))*x-2);
[[-x^2+3*x+(#0),2]]
 af(-x^2+3*x+alg(0),[alg(0)]);
[[x+(#0-1),1],[-x+(#0+2),1]]
 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`