# 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 GcdDomain and F has FunctionSpace R and R has UniqueFactorizationDomain and R has Comparable and R has RetractableTo Integer

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 GcdDomain and R has Comparable and R has RetractableTo Integer and F has FunctionSpace R

rootKerSimp(op, f, n) should be local but conditional.

rootPower: F -> F if R has GcdDomain and R has Comparable and R has RetractableTo Integer and F has FunctionSpace R

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 GcdDomain and R has Comparable and R has RetractableTo Integer and F has FunctionSpace R

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 GcdDomain and R has Comparable and R has RetractableTo Integer and F has FunctionSpace R

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.