Safe Haskell | None |
---|

Reference implementation of B-Splines; very inefficient but "obviously" correct.

- bases :: (Fractional a, Ord a) => Knots a -> a -> [[a]]
- basisFunctions :: (Fractional a, Ord a) => Knots a -> [[a -> a]]
- basisPolynomials :: (Fractional a, Ord a) => Knots a -> [[[Poly a]]]
- basisPolynomialsAt :: (Fractional a, Ord a) => Knots a -> a -> [[Poly a]]
- evalReferenceBSpline :: (VectorSpace a, Fractional (Scalar a), Ord (Scalar a), Vector v a) => BSpline v a -> Scalar a -> a
- fitPolyToBSplineAt :: (Fractional a, Ord a, Scalar a ~ a, Vector v a) => BSpline v a -> a -> Poly a

# Documentation

bases :: (Fractional a, Ord a) => Knots a -> a -> [[a]]Source

The values of all the B-spline basis functions for the given knot vector at the given
point, ordered by degree; "b_{i,j}(x)" is `bases kts x !! i !! j`

.

basisFunctions :: (Fractional a, Ord a) => Knots a -> [[a -> a]]Source

All the B-spline basis functions for the given knot vector at the given
point, ordered by degree; "b_{i,j}" is `basisFunctions kts x !! i !! j`

.

basisPolynomials :: (Fractional a, Ord a) => Knots a -> [[[Poly a]]]Source

All the B-spline basis polynomials for the given knot vector, ordered first by knot span and then by degree.

basisPolynomialsAt :: (Fractional a, Ord a) => Knots a -> a -> [[Poly a]]Source

All the B-spline basis polynomials for the given knot vector at the given
point, ordered by degree; "b_{i,j}" is `basisPolynomialsAt kts x !! i !! j`

.

evalReferenceBSpline :: (VectorSpace a, Fractional (Scalar a), Ord (Scalar a), Vector v a) => BSpline v a -> Scalar a -> aSource

This is a fairly slow function which computes the value of a B-spline at a given point, using the mathematical definition of B-splines. It is mainly for testing purposes, as a reference against which the other evaluation functions are checked.

fitPolyToBSplineAt :: (Fractional a, Ord a, Scalar a ~ a, Vector v a) => BSpline v a -> a -> Poly aSource

This is a fairly slow function which computes one polynomial segment of a B-spline (the one containing the given point), using the mathematical definition of B-splines. It is mainly for testing purposes, as a reference against which the other evaluation functions are checked.