### `sp`

sp(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.
• 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`, section `defpoly`, section `algptorat`, section `sp_norm`.