# PatternMatchIntegration(R, F)¶

- R: Join(Comparable, RetractableTo Integer, GcdDomain, LinearlyExplicitOver Integer)
- F: Join(AlgebraicallyClosedField, TranscendentalFunctionCategory, FunctionSpace R)

PatternMatchIntegration provides functions that use the pattern matcher to find some indefinite and definite integrals involving special functions and found in the literature.

- pmComplexintegrate: (F, Symbol) -> Union(Record(special: F, integrand: F), failed) if R has ConvertibleTo Pattern Integer and R has PatternMatchable Integer and F has LiouvillianFunctionCategory
`pmComplexintegrate(f, x)`

returns either “failed” or`[g, h]`

such that`integrate(f, x) = g + integrate(h, x)`

. It only looks for special complex integrals that pmintegrate does not return.

- pmintegrate: (F, Symbol) -> Union(Record(special: F, integrand: F), failed) if R has ConvertibleTo Pattern Integer and R has PatternMatchable Integer and F has LiouvillianFunctionCategory
`pmintegrate(f, x)`

returns either “failed” or`[g,h]`

such that`integrate(f, x) = g + integrate(h, x)`

.

- pmintegrate: (F, Symbol, OrderedCompletion F, OrderedCompletion F) -> Union(F, failed) if F has SpecialFunctionCategory and R has PatternMatchable Integer and R has ConvertibleTo Pattern Integer
`pmintegrate(f, x = a..b)`

returns the integral of`f(x)dx`

from a to`b`

if it can be found by the built-in pattern matching rules.

- splitConstant: (F, Symbol) -> Record(const: F, nconst: F)
`splitConstant(f, x)`

returns`[c, g]`

such that`f = c * g`

and`c`

does not involve`t`

.