The Essentials of CAGD

Before making changes to the algorithm, let's take another look at knot multiplicity and a data structure issue. When evaluating a curve for display, you will have to choose an increment which you use to step along the curve. For piecewise polynomials, it is a good idea to specify this increment for each segment, otherwise you might miss a possible corner of your curve. As we have seen, the segments correspond to the non-zero length knot intervals. Since we want to avoid plotting zero-length segments, it is a good idea to label such segments as part of your data structure.
So far, we have described a knot sequence as a one-dimensional floating point array with every knot stored explicitly. This is sometimes called the expanded knot sequence. An alternative approach would be to store only the unique floating point values, and then create an integer array which indicates each knot's multiplicity. [2] This array is called the knot multiplicity vector. It is also possible to combine the two approaches above, as illustrated in the following example.
We list the knot sequence (value and index) and below it, the multiplicity vector.
The first knot in a multiplicity is given the multiplicity value, and the other knots are given multiplicity zero.
Another example:
First of all, we search only within the domain knots for non-zero length intervals. Then, nonzero length intervals will be denoted by a multiplicity vector value of...