# Documentation

M-Splines are B-splines normalized so that the integral of each basis function over the spline domain is 1.

mSpline :: Knots (Scalar a) -> [a] -> MSpline aSource

`mSpline kts cps`

creates a M-spline with the given knot vector and control
points. The degree is automatically inferred as the difference between the
number of spans in the knot vector (`numKnots kts - 1`

) and the number of
control points (`length cps`

).

evalSpline :: Spline s v => s v -> Scalar v -> vSource