Introductory examples:
Powers of radicals and RootOfs are reduced and, in particular, constant denominators are inverted. Nested and mixed radicals / RootOfs are handled as well:
Algebraic functions in the coefficients are not accepted:
Non-algebraic subexpressions are first handled recursively (unless option 'recursive'=false is present) and then temporarily replaced by new variables:
Non-algebraic subexpressions may evaluate to something algebraic after recursive treatment:
Partial factorizations in the inputs are preserved, unless option 'expanded'=true is given:
By default, leading coefficients are rationalized and made positive. Note that this may factor out a leading term, even if the input is expanded:
Since Maple always expands the product of a number and a single factor, the leading coefficient may not be positive and the integer content may be nontrivial in such a case:
If option 'rationalize'=false is given, then leading coefficients and denominators will not be rationalized in the output:
If the input has floating point coefficients, only normal is applied to it:
There is no way for Normal to know whether without an index represents or , and it reverts to calling Algebraic[Reduce] or normal. In the following example, option 'symbolic'=true picks :
In the following example, there is a zero divisor in the denominator, and the result does not satisfy all properties of a normal form:
If there is a RootOf whose leading coefficient is not invertible, then it is not even possible to reduce a positive power of it:
An example where the normal form can be computed even though there is a non-indexed reducible RootOf:
Using option 'characteristic', normal forms over finite fields can be computed:
In contrast to characteristic , the complex number , radicals, and indexed RootOfs are not uniquely defined in positive characteristic, and they are treated as if they were non-indexed RootOfs:
The polynomial defining a RootOf will also be reduced modulo the characteristic:
The normal form cannot always be computed in composite characteristic:
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: