# AlgebraicManipulations(R, F)¶

AlgebraicManipulations provides functions to simplify and expand expressions involving algebraic operators.

ratDenom: (F, F) -> F
ratDenom(f, a) removes a from the denominators in f if a is an algebraic kernel.
ratDenom: (F, List F) -> F
ratDenom(f, [a1, ..., an]) removes the ai's which are algebraic kernels from the denominators in f.
ratDenom: (F, List Kernel F) -> F
ratDenom(f, [a1, ..., an]) removes the ai's which are algebraic from the denominators in f.
ratDenom: F -> F
ratDenom(f) rationalizes the denominators appearing in f by moving all the algebraic quantities into the numerators.
ratPoly: F -> SparseUnivariatePolynomial F
ratPoly(f) returns a polynomial p such that p has no algebraic coefficients, and p(f) = 0.
rootFactor: F -> F if R has RetractableTo Integer and F has FunctionSpace R and R has UniqueFactorizationDomain and R has GcdDomain and R has Comparable
rootFactor(f) transforms every radical of the form (a1*...*am)^(1/n) appearing in f into a^(1/n)*...*am^(1/n). This transformation is not in general valid for all complex numbers a and b.
rootKerSimp: (BasicOperator, F, NonNegativeInteger) -> F if R has Comparable and F has FunctionSpace R and R has RetractableTo Integer and R has GcdDomain
rootKerSimp(op, f, n) should be local but conditional.
rootPower: F -> F if R has Comparable and F has FunctionSpace R and R has RetractableTo Integer and R has GcdDomain
rootPower(f) transforms every radical power of the form (a^(1/n))^m into a simpler form if m and n have a common factor.
rootProduct: F -> F if R has Comparable and F has FunctionSpace R and R has RetractableTo Integer and R has GcdDomain
rootProduct(f) combines every product of the form (a^(1/n))^m * (a^(1/s))^t into a single power of a root of a, and transforms every radical power of the form (a^(1/n))^m into a simpler form.
rootSimp: F -> F if R has Comparable and F has FunctionSpace R and R has RetractableTo Integer and R has GcdDomain
rootSimp(f) transforms every radical of the form (a * b^(q*n+r))^(1/n) appearing in f into b^q * (a * b^r)^(1/n). This transformation is not in general valid for all complex numbers b.
rootSplit: F -> F
rootSplit(f) transforms every radical of the form (a/b)^(1/n) appearing in f into a^(1/n) / b^(1/n). This transformation is not in general valid for all complex numbers a and b.