# TranscendentalManipulations(R, F)ΒΆ

manip.spad line 458 [edit on github]

R: Join(Comparable, GcdDomain)

F: Join(FunctionSpace R, TranscendentalFunctionCategory)

TranscendentalManipulations provides functions to simplify and expand expressions involving transcendental operators.

- cos2sec: F -> F
`cos2sec(f)`

converts every`cos(u)`

appearing in`f`

into`1/sec(u)`

.

- cosh2sech: F -> F
`cosh2sech(f)`

converts every`cosh(u)`

appearing in`f`

into`1/sech(u)`

.

- cot2tan: F -> F
`cot2tan(f)`

converts every`cot(u)`

appearing in`f`

into`1/tan(u)`

.

- cot2trig: F -> F
`cot2trig(f)`

converts every`cot(u)`

appearing in`f`

into`cos(u)/sin(u)`

.

- coth2tanh: F -> F
`coth2tanh(f)`

converts every`coth(u)`

appearing in`f`

into`1/tanh(u)`

.

- coth2trigh: F -> F
`coth2trigh(f)`

converts every`coth(u)`

appearing in`f`

into`cosh(u)/sinh(u)`

.

- csc2sin: F -> F
`csc2sin(f)`

converts every`csc(u)`

appearing in`f`

into`1/sin(u)`

.

- csch2sinh: F -> F
`csch2sinh(f)`

converts every`csch(u)`

appearing in`f`

into`1/sinh(u)`

.

- expand: F -> F
`expand(f)`

performs the following expansions on`f:`

begin{items} item 1. logs of products are expanded into sums of logs. item 2. trigonometric and hyperbolic trigonometric functions of sums are expanded into sums of products of trigonometric and hyperbolic trigonometric functions. item 3. formal powers of the form`(a/b)^c`

are expanded into`a^c * b^(-c)`

. end{items}

- expandLog: F -> F
`expandLog(f)`

converts every`log(a/b)`

appearing in`f`

into`log(a) - log(b)`

, and every`log(a*b)`

into`log(a) + log(b)`

.

- expandPower: F -> F
`expandPower(f)`

converts every power`(a/b)^c`

appearing in`f`

into`a^c * b^(-c)`

.

- expandTrigProducts: F -> F if F has ConvertibleTo Pattern R and R has PatternMatchable R and R has ConvertibleTo Pattern R and F has PatternMatchable R
`expandTrigProducts(e)`

replaces`sin(x)*sin(y)`

by`(cos(x-y)-cos(x+y))/2`

,`cos(x)*cos(y)`

by`(cos(x-y)+cos(x+y))/2`

, and`sin(x)*cos(y)`

by`(sin(x-y)+sin(x+y))/2`

. Note: this operation uses pattern matcher, so it is relatively expensive. To avoid getting into an infinite loop the transformations are applied at most ten times.

- htrigs: F -> F
`htrigs(f)`

converts all the exponentials in`f`

into hyperbolic sines and cosines.

- removeCoshSq: F -> F
`removeCoshSq(f)`

converts every`cosh(u)^2`

appearing in`f`

into`1 - sinh(u)^2`

, and also reduces higher powers of`cosh(u)`

with that formula.

- removeCosSq: F -> F
`removeCosSq(f)`

converts every`cos(u)^2`

appearing in`f`

into`1 - sin(u)^2`

, and also reduces higher powers of`cos(u)`

with that formula.

- removeSinhSq: F -> F
`removeSinhSq(f)`

converts every`sinh(u)^2`

appearing in`f`

into`1 - cosh(u)^2`

, and also reduces higher powers of`sinh(u)`

with that formula.

- removeSinSq: F -> F
`removeSinSq(f)`

converts every`sin(u)^2`

appearing in`f`

into`1 - cos(u)^2`

, and also reduces higher powers of`sin(u)`

with that formula.

- sec2cos: F -> F
`sec2cos(f)`

converts every`sec(u)`

appearing in`f`

into`1/cos(u)`

.

- sech2cosh: F -> F
`sech2cosh(f)`

converts every`sech(u)`

appearing in`f`

into`1/cosh(u)`

.

- simplify: F -> F
`simplify(f)`

performs the following simplifications on`f:`

begin{items} item 1. rewrites trigs and hyperbolic trigs in terms of`sin`

,`cos`

,`sinh`

,`cosh`

. item 2. rewrites`sin^2`

and`sinh^2`

in terms of`cos`

and`cosh`

, item 3. rewrites`exp(a)*exp(b)`

as`exp(a+b)`

. item 4. rewrites`(a^(1/n))^m * (a^(1/s))^t`

as a single power of a single radical of`a`

. end{items}

- simplifyExp: F -> F
`simplifyExp(f)`

performs the following simplifications on`f:`

begin{items} item 1. rewrites`exp(a)*exp(b)`

as`exp(a+b)`

. item 2. rewrites`a^b*a^c`

as`a^(b+c)`

. item 3. rewrites`exp(a)/exp(b)`

as`exp(a-b)`

. item 4. rewrites`a^b/a^c`

as`a^(b-c)`

. end{items}

- simplifyLog: F -> F
`simplifyLog(f)`

converts every`log(a) - log(b)`

appearing in`f`

into`log(a/b)`

, every`log(a) + log(b)`

into`log(a*b)`

and every`n*log(a)`

into`log(a^n)`

.

- sin2csc: F -> F
`sin2csc(f)`

converts every`sin(u)`

appearing in`f`

into`1/csc(u)`

.

- sinh2csch: F -> F
`sinh2csch(f)`

converts every`sinh(u)`

appearing in`f`

into`1/csch(u)`

.

- tan2cot: F -> F
`tan2cot(f)`

converts every`tan(u)`

appearing in`f`

into`1/cot(u)`

.

- tan2trig: F -> F
`tan2trig(f)`

converts every`tan(u)`

appearing in`f`

into`sin(u)/cos(u)`

.

- tanh2coth: F -> F
`tanh2coth(f)`

converts every`tanh(u)`

appearing in`f`

into`1/coth(u)`

.

- tanh2trigh: F -> F
`tanh2trigh(f)`

converts every`tanh(u)`

appearing in`f`

into`sinh(u)/cosh(u)`

.