# AlgebraicManipulations(R, F)ΒΆ

F: Join(Field, ExpressionSpace) with

coerce: SparseMultivariatePolynomial(R, Kernel %) -> %

denom: % -> SparseMultivariatePolynomial(R, Kernel %)

numer: % -> SparseMultivariatePolynomial(R, Kernel %)

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`

.