# IntegrationResult FΒΆ

intaux.spad line 1 [edit on github]

F: Field

If a function `f`

has an elementary integral `g`

, then `g`

can be written in the form `g = h + c1 log(u1) + c2 log(u2) + ... + cn log(un)`

where `h`

, which is in the same field as `f`

, is called the rational part of the integral, and `c1 log(u1) + ... cn log(un)`

is called the logarithmic part of the integral. This domain manipulates integrals represented in that form, by keeping both parts separately. The logs are not explicitly computed.

- 0: %
from AbelianMonoid

- *: (%, Fraction Integer) -> %
from RightModule Fraction Integer

- *: (Fraction Integer, %) -> %
from LeftModule Fraction Integer

- *: (Integer, %) -> %
from AbelianGroup

- *: (NonNegativeInteger, %) -> %
from AbelianMonoid

- *: (PositiveInteger, %) -> %
from AbelianSemiGroup

- +: (%, %) -> %
from AbelianSemiGroup

- -: % -> %
from AbelianGroup

- -: (%, %) -> %
from AbelianGroup

- coerce: % -> OutputForm
from CoercibleTo OutputForm

- coerce: F -> %
from CoercibleFrom F

- differentiate: (%, F -> F) -> F
`differentiate(ir, D)`

differentiates`ir`

with respect to the derivation`D`

.

- differentiate: (%, Symbol) -> F if F has PartialDifferentialRing Symbol
`differentiate(ir, x)`

differentiates`ir`

with respect to`x`

- elem?: % -> Boolean
`elem?(ir)`

tests if an integration result is elementary over`F?`

- integral: (F, F) -> %
`integral(f, x)`

returns the formal integral of`f`

with respect to`x`

- integral: (F, Symbol) -> % if F has RetractableTo Symbol
`integral(f, x)`

returns the formal integral of`f`

with respect to`x`

- latex: % -> String
from SetCategory

- logpart: % -> List Record(scalar: Fraction Integer, coeff: SparseUnivariatePolynomial F, logand: SparseUnivariatePolynomial F)
`logpart(ir)`

returns the logarithmic part of an integration result

- mkAnswer: (F, List Record(scalar: Fraction Integer, coeff: SparseUnivariatePolynomial F, logand: SparseUnivariatePolynomial F), List Record(integrand: F, intvar: F)) -> %
`mkAnswer(r, l, ne)`

creates an integration result from a rational part`r`

, a logarithmic part`l`

, and a non-elementary part ne.

- notelem: % -> List Record(integrand: F, intvar: F)
`notelem(ir)`

returns the non-elementary part of an integration result

- opposite?: (%, %) -> Boolean
from AbelianMonoid

- ratpart: % -> F
`ratpart(ir)`

returns the rational part of an integration result

- retract: % -> F
from RetractableTo F

- retractIfCan: % -> Union(F, failed)
from RetractableTo F

- sample: %
from AbelianMonoid

- subtractIfCan: (%, %) -> Union(%, failed)

- zero?: % -> Boolean
from AbelianMonoid