- data Knots a
- knot :: Ord a => a -> Knots a
- multipleKnot :: Ord a => a -> Int -> Knots a
- mkKnots :: Ord a => [a] -> Knots a
- fromList :: Ord k => [(k, Int)] -> Knots k
- knots :: Knots t -> [t]
- numKnots :: Knots t -> Int
- toList :: Knots k -> [(k, Int)]
- distinctKnots :: Knots t -> [t]
- numDistinctKnots :: Knots t -> Int
- knotMultiplicity :: Ord k => k -> Knots k -> Int
- setKnotMultiplicity :: Ord k => k -> Int -> Knots k -> Knots k
- knotDomain :: Knots a -> Int -> Maybe (a, a)
Knot vectors - multisets of points in a 1-dimensional space.
Create a knot vector consisting of one knot with the specified multiplicity.
Create a knot vector consisting of all the knots and corresponding multiplicities in a list.
Returns a list of all knots (not necessarily distinct) of a knot vector in ascending order
Returns the number of knots (not necessarily distinct) in a knot vector.
Returns a list of all distinct knots in ascending order along with their multiplicities.
Returns a list of all distinct knots of a knot vector in ascending order
Looks up the multiplicity of a knot (which is 0 if the point is not a knot)
Returns a new knot vector with the given knot set to the specified multiplicity and all other knots unchanged.
knotDomain kts p return the domain of a B-spline or NURBS with knot
kts and degree
p. This is the subrange spanned by all
except the first and last
p knots. Outside this domain, the spline
does not have a complete basis set. De Boor's algorithm assumes that
the basis functions sum to 1, which is only true on this range, and so
this is also precisely the domain on which de Boor's algorithm is valid.