# fnint

Integrate function

## Syntax

`intgrf = fnint(f,value) `

fnint(f)

## Description

`intgrf = fnint(f,value) `

is the description
of an indefinite integral of the *univariate* function
whose description is contained in `f`

. The integral is normalized
to have the specified `value`

at the left endpoint of the
function's basic interval, with the default value being zero.

The output is of the same type as the input, i.e., they are both ppforms or both
B-forms. `fnint`

does not work for rational splines nor for
functions in stform.

`fnint(f) `

is the same as
`fnint(f,0)`

.

Indefinite integration of a *multivariate* function, in
coordinate directions only, is available via `fnder`

`(f,dorder)`

with `dorder`

having nonpositive entries.

## Examples

The statement `diff(fnval(fnint(f),[a b]))`

provides the definite
integral over the interval [`a `

.. `b`

] of the
function described by `f`

.

If `f`

is in ppform, or in B-form with its last knot of
sufficiently high multiplicity, then, up to rounding errors, `f`

and `fnder(fnint(f))`

are the same.

If `f`

is in ppform and `fa`

is the value of the
function in `f`

at the left end of its basic interval, then, up to
rounding errors, `f`

and `fnint(fnder(f),fa)`

are
the same, unless the function described by `f`

has jump
discontinuities.

If `f`

contains the B-form of *f*, and
*t*_{1} is its leftmost knot, then, up to
rounding errors, `fnint(fnder(f))`

contains the B-form of
*f* –
*f*(*t*_{1}). However, its
leftmost knot will have lost one multiplicity (if it had multiplicity > 1 to
begin with). Also, its rightmost knot will have full multiplicity even if the
rightmost knot for the B-form of *f* in `f`

doesn't.

Here is an illustration of this last fact. The spline in ```
sp = spmak([0 0
1], 1)
```

is, on its basic interval
[`0`

..`1`

], the straight line that is 1 at 0
and 0 at 1. Now integrate its derivative: ```
spdi =
fnint(fnder(sp))
```

. As you can check, the spline in `spdi`

has the same basic interval, but, on that interval, it agrees with the straight line
that is 0 at 0 and -1 at 1.

See the examples “Intro to B-form” and “Intro to ppform” for examples.

## Algorithms

For the B-form, the formula [*PGS*; (X.22)] for integration is
used.