# TranscendentalIntegration(F, UP)ΒΆ

- F: Field
- UP: UnivariatePolynomialCategory F

This package provides functions for the transcendental case of the Risch algorithm.

- expintegrate: (Fraction UP, UP -> UP, Fraction UP -> Record(answer: Fraction UP, logpart: Fraction UP, ir: IntegrationResult Fraction UP), (Integer, F) -> Record(ans: F, right: F, primpart: F, sol?: Boolean)) -> Record(answer: IntegrationResult Fraction UP, a0: F)
`expintegrate(f, ', foo)`

returns`[g, a]`

such that`f = g' + a`

, and`a = 0`

or`a`

has no integral in`F`

; Argument foo is a Risch differential equation solver on`F`

.

- lambintegrate: (Fraction UP, F, F -> F, UP -> UP, F -> Union(Record(ratpart: F, coeff: F), failed), F -> IntegrationResult F) -> Record(answer: IntegrationResult Fraction UP, a0: IntegrationResult F)
`lambintegrate(f, dx, D1, D2, extint, int)`

integrates`f`

in extension by LambertW function.`dx`

is derivative of the argument of LambertW,`D1`

is dervative on`F`

,`D2`

is derivative on UP,`extint`

is extended integration function on`F`

, int is integration function on`F`

.

- monomialIntegrate: (Fraction UP, UP -> UP) -> Record(ir: IntegrationResult Fraction UP, specpart: Fraction UP, polypart: UP)
`monomialIntegrate(f, ')`

returns`[ir, s, p]`

such that`f = ir' + s + p`

and all the squarefree factors of the denominator of`s`

are special`w`

.`r`

.`t`

the derivation ‘.

- monomialIntPoly: (UP, UP -> UP) -> Record(answer: UP, polypart: UP)
`monomialIntPoly(p, ')`

returns [`q`

,`r`

] such that`p = q' + r`

and`degree(r) < degree(t')`

. Error if`degree(t') < 2`

.

- primintegrate: (Fraction UP, UP -> UP, Fraction UP -> Record(answer: Fraction UP, logpart: Fraction UP, ir: IntegrationResult Fraction UP), F -> Union(Record(ratpart: F, coeff: F), failed)) -> Record(answer: IntegrationResult Fraction UP, a0: F)
`primintegrate(f, ', foo)`

returns`[g, a]`

such that`f = g' + a`

, and`a = 0`

or`a`

has no integral in UP. Argument foo is an extended integration function on`F`

.