Introductory examples:
The input may contain both radicals and RootOfs, and PseudoDivision will embed the coefficients into an algebraic field, if possible:
Nested and mixed radicals and RootOfs are handled as well:
Multivariate input is accepted, but pseudo-division will only be performed on the input with respect to the single variable given in the x parameter, with all other names being considered as elements of the coefficient field:
If the degree of a is less than the degree of b, then the multiplier will be and the pseudo-quotient will be :
If b is a non-zero constant, the pseudo-remainder will always be zero:
The output will always be fully reduced and normalized:
Algebraic Objects will be converted to algebraic numbers, if possible:
Non-algebraic sub-expressions such as will be frozen and temporarily replaced by new local variables:
The x parameter can also be a function, as long as it is not an Algebraic Object:
Arguments of functions in the input will be recursively normalized:
Non-algebraic sub-expressions may become algebraic after recursive normalization occurs:
Rational functions are not accepted:
Floats are not accepted.
Algebraic functions such as are not accepted:
When non-indexed RootOfs are given in the input, the pseudo-division can still be performed and the output expressed in terms of the non-indexed RootOfs:
Even if the leading coefficients of the input contain zero divisors, PseudoDivision can still compute the pseudo-remainder, multiplier, and pseudo-quotient in terms of the input such that the identity is preserved:
Also, if the second argument is a zero divisor, then the computation will be performed anyway and an answer will be returned such that the identity is preserved:
Using option characteristic, pseudo-division can be performed over finite fields:
If a RootOf with a non-invertible leading coefficient is detected, an error may be returned:
In the second case, using option 'symbolic'=true will force PseudoDivision to select one of the factors and perform the computation. Here, it makes the substitution :
With option 'makeindependent'=true, the input will be checked for algebraic dependencies even if there are more than algebraic objects in the input:
With option 'makeindependent'=false, the input will never be checked for algebraic dependencies: