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

### `sp`, `sp_noalg`

`sp(poly)`
`sp_noalg(poly)`
  :: Finds the splitting field of polynomial poly and splits.

return
  list
poly
  polynomial

- Defined in the file ``sp'`.
- Finds the splitting field of poly, an uni-variate polynomial over with rational coefficients, and splits it into its linear factors over the field.
- The result consists of a two element list: The first element is the list of all linear factors of poly; the second element is a list which represents the successive extension of the field. In the result of `sp_noalg` all the algebraic numbers are replaced by the special indeterminate associated with it, that is `t#i` for `#i`. By this operation the result of `sp_noalg` is a list containing only integral polynomials.
- The splitting field is represented as a list of pairs of form `[root,` `algptorat(defpoly(root))]`. In more detail, the list is interpreted as a representation of successive extension obtained by adjoining root's to the rational number field. Adjoining is performed from the right root to the left.
- `sp()` invokes `sp_norm()` internally. Computation of norm is done by several methods according to the situation but the algorithm selection is not always optimal and a simple resultant computation is often superior to the other methods. By setting the global variable `USE_RES` to 1, the builtin function `res()` is always used.

    [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),-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^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];
    [111] M=simpalg(M);
    -1338925209984*x^9+72301961339136
    [112] ptozp(M);
    -x^9+54

`Reference`
  section `asq`, `af`, `af_noalg`, section `defpoly`, section `algptorat`, section `sp_norm`.

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