Quartic factorization code



To use this code, first make sure that the PUSH macro
is defined, an example definition is in macro.dem.
Following are some examples and results.

qfactor(x^4+x^3+x^2+x+1,x);
(x^2 + ((1/2) - ((sqrt(5))/2)) * x + 1) * (x^2 + (((sqrt(5))/2) + (1/2)) * x + 1)

qfactor(-3*x^4+34*x^3-119*x^2+172*x-90,x);
 - 3 * (x^2 - 8 * x + 10) * (x^2 - ((10 * x)/3) + 3)

assume(x>0);
map(radcan,qfactor(z^4 + 2 * sqrt(2) * x * z^3 + 4 * x^2 * z^2 - 2 * sqrt(2) * x * z
+ 1,z,radcan));
(z^2 + (sqrt(2) * x - sqrt(2) * sqrt(x^2 + 1)) * z - 2 * x * sqrt(x^2 + 1) + 2 * x^2
+ 1
) * (z^2 + (sqrt(2) * sqrt(x^2 + 1) + sqrt(2) * x) * z + 2 * x * sqrt(x^2 + 1) + 2 *
x^2 + 1)