Abstract
The conventional B-splines possess the de Boor–Cox formula, which relates to a pyramid algorithm. However, for multi-degree splines, a de Boor–Cox-type evaluation algorithm only exists in some special cases. This paper considers any multi-degree spline with arbitrary degree and continuity, and provides two generalized de Boor–Cox-type relations. One uses several lower degree polynomials to build a combination to evaluate basis functions, whose form is similar to using the de Boor–Cox formula several times. The other is a linear combination of two functions out of the recursive definition, which keeps the combination coefficient polynomials of degree 1, so it is more similar to the de Boor–Cox formula and can be illustrated by several pyramids with different heights. In the process of calculating the recursions, a recursive representation using the Bernstein basis is used and numerically analyzed.
MSC:
65D07; 41A15
1. Introduction
B-splines are well-established tools in computer-aided geometric design. Their basic functions build the unique normalized B-basis in their spanned space of piecewise polynomials, which has optimal shape-preserving properties [1]. Multi-degree splines (MD-splines for short), also called changeable-degree splines, allow different degrees for different segments. In their spanned space of piecewise polynomials with varying degrees, their basic functions also construct the unique normalized B-basis [2]. Therefore, they can be viewed as a direct extension of B-splines.
For MD-splines, the use of splines with varying degrees were investigated by [3] as a tool for approximation. Some variable-degree polynomial functions in [4,5] were constructed for shape-preserving interpolation and more theories were proposed in [6,7,8], in [9] the concept of multi-degree splines was proposed and some MD-spline curves of degree 1, 2 and 3 were built. In [10], a two-degree-spline basis is provided for dividing the process of degree elevation of B-spline into corner-cutting form. In [2,11], two types of MD-splines with different continuities were defined, and [12] deals with an explicit expression for MD-splines. The MD-spline degree-elevation property is provided in [13]. The definition of MD-splines is improved in [14]; two extended partitions are made ingeniously to unify the two types of MD-splines. Such extended partitions for B-splines were proposed in [15]. The support of each basis function is easily determined by the indexes of two extended partitions, and, using this configuration, arbitrary continuity MD-splines can be created. Recent references offer several numerical algorithms due to the inefficiency of the integral definition for MD-splines in numerical calculation. They employ simpler bases to express MD-splines and to compute the representation matrix. In [16], the continuity constraints between spline pieces were collected in a matrix and then its null space was computed by recurrence. In [17], it was proven that the output of this algorithm is exactly the basis of MDB-splines and a Chebyshevian extension of the construction was presented in [18]. The algorithm in [19] repeats the reverse knot insertion (RKI) process to evaluate the transition matrix. An improved version of the algorithm in [19] is outlined in [20]. it is a numerically stable method, because it avoids the derivative operations and minimizes the number of floating-point operations.
B-splines are recursively computed by applying the de Boor–Cox formula in [21,22], which is related to a pyramid algorithm in [23], namely,
In the formula, a B-spline of degree n is represented by two B-splines of degree , where the combination coefficients are both polynomials of degree 1. According to [24,25], the MD-splines build a de Boor–Cox-type formula if the continuity orders between neighboring pieces of different degrees are no more than 1. For general cases, the de Boor–Cox-type formula does not exist [14].
Our work is focused on more generalized de Boor–Cox-type relations for arbitrary-degree MD-splines with any continuity orders and provides two generalized forms. The first form uses the de Boor–Cox formula several times. A B-spline basis function of degree n is represented as a combination of B-splines of degree with polynomial coefficients of degree s, i.e.
For MD-splines, each function at level n can be represented by functions at recursive level , where these functions should be continuous or discontinuous at knots in their support intervals. On each interval, the sum of the degree of a function involved in the recurrence is similar to (2) and that of its coefficient polynomial is equal to the degree of . We provide an algorithm to calculate these coefficient polynomials. In the meantime, functions at recursive level can also be represented by these functions at recursive level , allowing the first form to be translated into a new form. In this new form, a function at recursive level n is represented by a combination of , and functions at recursive level , where the coefficient polynomials of , and are bothpolynomials of degree 1. In the second form, a function at recursive level n is represented by two functions with combination coefficient polynomials of degree 1. The left coefficient polynomial is the result of subtracting the left endpoint of from t, and the right coefficient polynomial is the result of subtracting t from the right endpoint of . Two representation functions are not in the integral recursion, but they can be constructed using knots derivative information of functions at recursive level . We present a building method based on the Taylor expansion of polynomials which demonstrates the theoretical viability of this form. If we replace functions that are not applicable to de Boor–Cox-type formulas with their construction polynomials in the recursion of MD-spline basis, then any function can be evaluated using this form formula. Multiple pyramids of varying heights can be used to depict this recurrence. To obtain the two forms for MD-splines, we offer a recursive method to evaluate the representation matrix between the MD-spline basis and Bernstein basis, and design some numerical experiments for it. This method utilizes the integral property of Bernstein polynomials and possesses sufficient numerical accuracy and efficiency.
The remainder of this paper is organized as follows: Section 2 reviews the necessary definitions of MD-splines. Section 3 provides a recursive method by Bernstein representation and contains some numerical experiments. Section 4 reveals general recursive relations of the MD-spline basis and constructs de Boor–Cox-type formula. Finally, this paper is concluded with some conclusion.
2. MD-Spline Basis Review
In the following, we will recall some concepts of MD-splines given in [9,14]. MD-spline basis functions are piecewise polynomials defined on a partition of an interval, which is determined by a breakpoint sequence , a degree sequence , and a sequence containing the orders of regularity.
Let , be a strictly increasing partition of a given interval . If is the degree of the MD-spline on , then let be the degree sequence and . Finally, the entries of the order sequence , which describe the required continuity at breakpoints , are defined as follows:
There are two extended partitions of to determine the support intervals. The left extended partition is
and the right one is
where .
Figure 1 shows an example for illustrating the left and right extended partitions. Here, , , , and .
Figure 1.
Original partition , left and right extended partitions and , respectively.
The relation of indexes is noted by function p. In detail, is the index of the corresponding breakpoint of in and is the index of the corresponding breakpoint in . That is, , and . For example, in Figure 1, since , . Since , .
Definition 1
(Multi-degree spline basis). For , functions in are generated recursively over , and . The final sequence is a MD-spline basis, given by
for each nontrivial interval , where
In addition, when , we set
MD-spline basis possesses some properties such as a B-spline basis:
- Local support: for .
- Positivity: for .
- End point: vanishes exactly times at , and at .
- Partition of unity: for all
Some properties of functions , for any are as follows:
- Support interval: the support interval of is
- Degree: on interval with , the degree of equals to when .
- Continuity: at knot , with , is -continuous when .
In [24], MD-splines are defined to describe some particular MD-spline bases, such as , MD-splines.
Definition 2
( multi-degree spline basis). An MD-spline basis is said to be a MD-spline basis if its functions are, at most, continuous at the joins between pieces of different degrees.
In the example of Figure 1, as , , we do not need to consider the continuity at and . Therefore, functions in this basis will be -continuous at the join between and , and be -continuous at the join between and . Therefore, the corresponding MD-spline basis will be a MD-spline basis.
3. Recursive Method
As Bernstein polynomials of degree n form a basis of the space of polynomials of degree at most n, functions in can be represented by Bernstein polynomials with different degrees. Thus, the recursive process for defining an MD-spline basis can be performed from these Bernstein polynomials.
3.1. Bernstein Representation
Bernstein polynomials [26] of degree n on interval are defined as
Let
Then, each function , and can be linearly represented as
where are some constants that are not all zero, and this equation can also be written as
where is called the Bernstein representation vector of function on .
On the support interval of , consistent with the previous settings, the number of elements in is . For each n, stands for the whole set of Bernstein polynomials:
Let
Then
and the corresponding representation matrix is
where
Compared with the representation matrix in [19], matrix represents functions in at each recursive level n.
Definition 3
( function). A function defined over , and is called a function if it is at most continuous at breakpoints within its support interval.
functions are not equivalent to functions in a MD-spline basis, a MD-spline basis only requires continuity at the join of different degrees. For example, a MD-spline basis may contain B-splines; however, B-splines are not continuous at their internal breakpoints. A MD-spline basis has some particular properties, such as the integrals of functions in it can be computed easily, which is used in [20]. functions are also particularly to be used in this section, as their Bernstein presentation vectors are easily expressed.
Example 1.
Consider a MD-spline basis with , and . The first function and the last function are Bernstein polynomials. Function is continuous at , and it is plotted in red in Figure 2. Other functions are all B-spline functions, where are functions and are functions. In addition, all functions define a MD-spline basis. It holds
Figure 2.
An example of multi-degree spline basis functions.
is a function, and its Bernstein representation vector on each interval is composed of an entry equal to 1 and the rest are equal to 0, while the Bernstein representation vectors of B-spline functions include several nonzero entries.
3.2. Recursive Process
The recursion of Bernstein representation vectors is determined by Equation (6) and the integral property of Bernstein polynomial [26]. Each vector is affected not only by , but also by and ; hence, the recursive relationship should be evaluated on distinct intervals.
On interval , consider the following matrix
The integral of Bernstein polynomials satisfy the equality
According to the integral formula, the integral of is determined as follows:
Similarly, another part of the integral is
The integral recursion can be substituted by the recursive process of Bernstein representation vectors according to Equation (19). The matrix H is just presented in (18) for simplicity of expression. A cumulative-sum operation can be used to describe the recursion of a representation vector in calculation.
Without loss of generality, assuming that on interval , it holds that
We indicates the cumulative-sum operation by an operator :
Thus,
Then, we use an operator to extract the last element of a vector. For example, . Then,
Consider . The integral starting from is
where is a constant, and is a vector. The symbol ⊕ means that is added to each element in .
Using the two operators above, can be calculated as follows:
Consistent with the conventional B-splines, functions in an MD-spline basis can be independently calculated using a recursive method. According to the Bernstein representation, once the vector is calculated, function is determined. Consequently, Bernstein representation vectors can replace functions in the recursive process.
The support interval of , is ; therefore, there are intervals in it. Therefore, we establish an initial matrix ; each entry is 0 and indicates a vector .
Matrix has rows, which means that there are corresponding functions on when . However, the indexes of these functions may exceed the limit range . There are two solutions for this. One does not generate rows whose indexes surpass the maximum allowed range. The other one disregards these rows because all of their elements equal 0. In order to make the algorithm more understandable, we employ the second solution. In the recursive process, we use these vectors to explain the recursion of matrix in the algorithm.
There are some details in this procedure.
- The operation (line 12) causes vectors with the same index j have the same length, hence allowing these vectors can bulid the matrix .
- (line 15) indicates the row of the matrix , and . Thus each row is normalized.
- There are only two cases of subtraction without considering the subtraction of zero rows (line 19 and 21).
- The subtraction is performed in range (lines 20, 22 and 23).
Algorithm 1 only calculates one function in MD-spline basis. If vectors in the initial matrix are changed to be , all basis functions are produced.
The following is an example for Algorithm 1.
Example 2.
Consider a MD-spline basis with , , and . Two extended partition are and . We are aming to calculate function . These partitions are shown in Figure 3.
Figure 3.
The setting of Example 2, and the support interval of is plotted in red.
The support interval of is , and . Thus the order of the initial matrix is , then
At the beginning of each loop, value 1 is assigned to the vector that satisfies the condition in line 5 in Algorithm 1. Therefore, .
| Algorithm 1 Recursive process of Bernstein representation vectors. |
| Input:, , , i Output:
|
Because there is no function when . In order to be concise, we start the calculation from . In this case, it is easy to get :
In the third row of M, the results of cumulative sum and normalization operations are as follows:
and
Thus . Note that . After normalization, this row changes into
Similarly, the second row changes into
According to the substraction in Algorithm 1, equals to on interval and on interval . After substraction
can be computed in the same manner. Then, remove the third row and change into the subsequent one:
By repeating these operations, then the final vector will be
Therefore,
This example can aid comprehension of this section. Although only a portion of the calculation is displayed, the entire recursion is similar. The representation matrix may be calculated directly, and this method is quite intuitive and straightforward to comprehend.
3.3. Algorithm Analysis
The numerical stability of Algorithm 1 is influenced by the floating point operations. There are three types of operations in the algorithm.
- 1
- Cumulative sum operation: the operation in Algorithm 1 (line 9) is composed of addition and multiplication. All elements in the vector are positive and increasing. If the length of an interval is excessively long, the number of bits of elements may vary significantly. This procedure frequently executes this operation, resulting in numerical inaccuracies.
- 2
- Normalized operation: this operation restricts all elements in to the range . Since the denominator is the largest number in this vector and all members are positive, this operation will not result in a significant amount of numerical inaccuracy.
- 3
- Subtraction operation: Equation (19) prevents the scenario where two approximate floating point-numbers are subtracted.
The complexity of Algorithm 1 depends on the settings of the sequences , so, like reference [20], we only count the number of operations.
At each recursive level in Algorithm 1, there are no more than non-zero rows of each . Therefore, the total number of non-zero rows will not exceed in the whole recursive process.
- Cumulative sum operation: the number of elements in is ; thus, the number of this operation will not exceed .
- Normalized operation: each non-zero row will be normalized, so the maximum number of this operation is .
- Subtraction operation: similarly, there are subtraction operations, at most.
Thus, the number of operations will not exceed , which is used to estimate the numerical complexity of Algorithm 1.
Due to the recursive nature of Algorithm 1, the cyclical calculation of floating-point numbers may lead to error accumulation. Based on the preceding research, the cumulative sum operation is the primary source of mistake. This error can be reduced by a bidirectional algorithm, and Equation (6) is reformed as follows:
where . The symbol means rounding down operation.
Then, Algorithm 1 is modified, and the subsequent Algorithm 2 is more numerically stable in calculation.
To represent the reverse integral, we define two reverse operators. Consistent with the prior setting , then and . Algorithm 2 is as follows:
| Algorithm 2 Revised recursive method. |
|
3.4. Numerical Experiment
In [20], three typical methods for calculating an MD-spline basis are compared, which are named RKI/Greville, RKI/Derivative and H-Operator. Due to the higher order derivative operations, RKI/Derivative and H-Operator are not numerically stable, while RKI/ Greville avoids these operations and it is numerically stable.
Then, we will design some experiments in Table 1 to test Algorithms 1 and 2. Calculation results are divided into ’Exact’ and ’Numerical’. The ’Exact’ results rely on the symbolic computation in MATLAB, while the ’Numerical’ results are determined by the standard precision in MATLAB (rounding unit ).
Table 1.
Sequences for Tests.
Example 3.
Values in Table 2 are calculated from Algorithm 1, where ’Exact’ in the second column indicates that the Bernstein representation matrix is calculated through symbolic computation. Exact MD-spline basis and Bernstein basis are also calculated by symbolic computation. The absence of relative error in the third column demonstrates that Algorithm 1 is correct.
Table 2.
Algorithm 1 numerical results of Example 3 in Test 1.
Example 4.
This experiment demonstrates that Algorithm 1 requires revision. The addition of two floating integers with significantly dissimilar digits will result in significant numerical errors. In Table 3, the value produced by Algorithm 1 on the third row has a large relative error and does not symmetric with the first value, whereas the problem is avoided by Algorithm 2.
Table 3.
Comparison of Algorithm 1 and Algorithm 2 numerical results in Test 2.
Example 5.
Table 4 illustrates the values and relative errors of for Test 3. The RKI/Greville method is unquestionably stable. Algorithm 2 has adequate numerical precision in this instance, where the highest degree exceeds 20. This algorithm is typically stable in experiments below this degree.
Table 4.
Comparison of Algorithm 2 and RKI/Greville method numerical results in Test 3.
Example 6.
This experiment shows that the efficiency of different methods, as measured by MATLAB execution time. Results in Table 4 are calculated using the same point values for four tests. All tests are performed on an environment consisting of MATLAB 2020a and the AMD Ryzen 5 4600U.
Calculating the values of basis functions at the internal knots yields the running time. Note that Algorithm 2 can calculate a single function in the MD-spline basis; its experiment is divided into two separate instances. The information displayed in the second column of Table 4 represents the duration of a single basis function. In order to ensure that values of this function are not zero at most knots, we select the middle basis function. A second scenario involves calculating the values of all basis functions at knots.
Based on the data in Table 5, it is evident that the efficacy of Algorithm 2 is assured. When the degree of basis is low, as in Test 1 and Test 2, there is little difference between the computation times of single functions and whole functions. However, as the degree increases, so does the efficiency gap.
Table 5.
Running time in different tests.
In some extreme cases, such as Test 4, the degrees of the basis functions are extremely high, making it inefficient to calculate the values of all functions. As the RKI/Greville method is calculated on separate pieces, it needs longer running time.
Compared to the RKI/Greville method, Algorithm 2 is less accurate numerically but more efficient in its calculations. Using a B-spline basis instead of a Bernstein basis as representation functions can improve the numerical precision due to the smaller representation matrix reducing the number of floating-point operations.
Recursive Bernstein representation is not only meaningful for calculation, but it also provides a tool for investigating the recursive relations of MD-spline.
4. Generalized de Boor–Cox-Type Recursive Relations
In this section, we will discuss two generalized de Boor–Cox-type relations of MD-splines.
4.1. The First Form of Generalized de Boor–Cox-Type Relation
A de Boor–Cox-type formula for MD-spline bases exists because functions are formed by two or three Bernstein polynomial segments, and vectors corresponding to functions on each interval are composed of an entry equal to 1 and the rest equal to several elements at 0. Therefore, functions can always be represented by two functions. However, this type of relation does not exist between , , functions and functions.
Theorem 1.
There is no de Boor–Cox-type recursive relation for MD-spline basis for .
Proof of Theorem 1.
For a , , function , assume that the following equation holds:
where and are two polynomials of degree 1. Without loss of generality, on a single interval , let and . Both vectors and contain more than one non-zero element. Using to indicate the h-th element of , it should be satisfied that
where c and are two constants. Then, functions and will be
where and are two unknown real numbers. As h is arbitrary, we have
Any , MD-spline basis function can be represented as several functions.
Theorem 2.
For MD-spline basis, assume that functions are all functions or Bernstein polynomials. Then, function , can be represented as
Proof.
Proof of Theorem 2 Since each piece of functions equals to Bernstein polynomial, coefficient polynomials can be determined by Bernstein representation vectors. Since can be expressed by as
where
can also be expressed by . Therefore, Equation (42) always holds in the inner interval , and we only need to focus on the first interval and the last interval .
On the first one , assume that ; then, elements from the first to th in are 0, and is nonzero according to the integral property of Bernstein polynomials. Thus, elements from the first to the th in are 0, which means that .
Similarly, on the last one , this relationship can be determined, then is expressed as Equation (42). □
Based on the recursive property of Bernstein polynomials, Theorem 2 reveals a relationship between functions in the recursive process, which is the first form of generalized de Boor–Cox-type relation. The coefficient polynomials are piecewise, but not unique. Moreover, their domains must fall inside the support intervals of the corresponding functions.
The recursive method of Bernstein representation vectors provides a tool for calculating the coefficient polynomials. Since functions and Bernstein polynomials have unique Bernstein representation vectors, all in Equation (42) will be computed from , .
Note that has a single non-zero element 1 and has the same length as (line 6) on each interval. Therefore, coefficient is the corresponding element in , which can be obtained by the element-wise division operation in Algorithm 3 (line 6).
| Algorithm 3 Coefficient polynomials calculation. |
| Input: Output:
|
Typically, functions are situated at a lower recursive level. Some functions occur at subsequent recursive levels. For instance, is a function and the representation functions of can be , which are situated at various recursive levels.
Example 7.
Assume that , , . Then, are all functions or Bernstein polynomials. Function can be represented as follows:
considering the following diagonally chunked matrix:
where , and can be obtained by Equation (44). Then, coefficient polynomials are determined by
Next, a distinct set of functions is employed to represent . Note that is a function, and functions , in Equation (45) can be replaced by . Over three intervals, the coefficient polynomials must be computed successively. On interval , it holds that
On interval , it holds that
for the same functions and . Then,
On interval , it holds that
Thus,
where functions , , , ad are not at the same level, and the coefficient polynomials and are not equivalent to them in Equation (45).
Here, two distinct representations of this function are shown, and Figure 4 depicts the coefficient polynomials. These relationships are prevalent throughout the recursive procedure.
Figure 4.
(a) Representation functions , , , . (b) Corresponding coefficient polynomials , , , . (c) Representation functions , , , . (d) Corresponding coefficient polynomials , , , .
Based on the above discussion, functions at the recursive levels n and can all be represented by several functions or Bernstein polynomials. Consequently, can be represented as follows:
where functions refer to functions or Bernstein polynomials; , are polynomials of degree 1. This equation is a general relationship for functions in the MD-spline recursive process.
This subsection summarizes several broad relationships that exist in the recursion; nonetheless, there is no law for generating coefficient polynomials. Consequently, the first generalized de Boor–Cox-type formula lacks practical relevance.
4.2. The Second Form of Generalized de Boor–Cox-Type Relation
Since Equation (38) cannot be found in the recursion of MD-spline basis, we must resort to functions outside of the recursion process in order to obtain this type of formula. If we design two suitable functions that can substitute two functions in the linear combination (42), we have a generalized de Boor–Cox-type formula.
For each , we have the following result.
Theorem 3.
It holds that
where and are both piecewise polynomials.
Proof of Theorem 3.
On interval , the Taylor expansion of function is given by all its derivatives. For convenience, let . Then
Let
and
Then, Equation (54) holds. □
Functions and , here, are constructed by and . Due to the integral definition of the MD-spline basis, the values of derivatives at can be calculated by the functions in previous recursive levels. The derivative equation is as follows:
In addition, the values of and can be calculated by the integral of and .
Consequently, this form of the formula is conceptually similar to the de Boor–Cox formula. Despite the fact that new functions and must be generated, they are all constructed using information from previous functions. Only the intricacy of construction needs to be considered. Taylor expansions are only used for theoretical exposition and cannot be implemented in practice. The coefficient polynomials need only be guaranteed to be polynomials of degree 1; they need not be identical to them in Equation (54). It is even feasible to employ piecewise coefficients to lessen the complexity of construction.
The generalized de Boor–Cox-type formula will employ a generalized pyramid structure, which will be contrasted to the pyramid for B-spline in the accompanying illustration.
Example 8.
For B-spline basis , all the basis functions possess similar pyramids; hence, often only one pyramid is depicted. Several pyramids may be utilized to describe the de Boor–Cox recursion for B-splines if the entire basis is used, as shown in Figure 5. The knot sequence is and the degree is 4. All pyramids have the same height beginning with the degree 0 functions, i.e., the functions at level 0 in the de Boor–Cox-type recursion.
Figure 5.
Pyramids for B-spline basis.
For a MD-spline basis with , , and , the recursive process in Theorem 3 is shown in Figure 6. For a MD-spline basis, pyramids might have varying heights.
Figure 6.
Pyramids for MD-spline basis.
Compared with the B-spline basis, the recursive process for the MD-spline basis is determined not only by the degrees but also by the continuous orders.
Although Theorem 3 provides an illustration of the theoretical plausibility of this design, the reality of the building itself is quite complicated. The Bernstein representation approach enables the construction of a structure, but because it is still sophisticated, it is not shown here. If a suitable construction approximation method exists, this theory will be practical.
5. Conclusions
In the paper, we present an evaluation approach for MD-splines. Unlike prior algorithms for evaluating MD-spline bases, this one is non-global, and its intermediate outcomes correspond to functions in the recursive process. Due to the absence of complicated operations, it is efficient in most cases. In addition, its numerical precision in normal degrees is comparable to that of the RKI/Greville approach. In addition to being useful for numerical evaluation, it offers a method for calculating coefficient polynomials in generalized de Boor–Cox-type relations.
Then, we provide two forms of the generalized de Boor–Cox-type formula for MD-splines. Both forms attempt to approximate the de Boor–Cox formula. The first form summarizes the majority of relationships that may appear in the recursion. The second form is a constructed structure. It is theoretically feasible, but requires a computationally cheap building technique.
It is important to note that the present value of the generalized de Boor–Cox-type formula is theoretical, but the preceding numerical algorithm has practical applicability. The second form of the generalized formula has potential because it simply has to address the construction problem. Future work might be devoted to the optimization of the numerical algorithm and the search for better construction techniques.
Author Contributions
Investigation, X.M. and W.S.; methodology, X.M. and W.S.; software, X.M.; writing—original draft preparation, X.M. and W.S.; writing—review and editing, X.M. and W.S.; funding acquisition, W.S. All authors have read and agreed to the published version of the manuscript.
Funding
This research was funded by the National Natural Science Foundation of China (No. 61772013).
Institutional Review Board Statement
Not applicable.
Informed Consent Statement
Not applicable.
Data Availability Statement
Not applicable.
Conflicts of Interest
The authors declare no conflict of interest.
References
- Carnicer, J.; Peña, J.M. Totally positive bases for shape preserving curve design and optimality of B-splines. Comput. Aided. Geom. Design 1994, 11, 633–654. [Google Scholar] [CrossRef]
- Shen, W.; Wang, G. Changeable degree spline basis functions. J. Comput. Appl. Math. 2010, 234, 2516–2529. [Google Scholar] [CrossRef]
- Nürnberger, G.; Schumaker, L.L.; Sommer, M.; Strauss, H. Generalized Chebyshevian splines. SIAM J. Math. Anal. 1984, 15, 790–804. [Google Scholar] [CrossRef]
- Costantini, P.; Goodman, T.N.T.; Manni, C. Constructing C³ shape-preserving interpolating space curves. Adv. Comput. Math. 2001, 14, 103–127. [Google Scholar] [CrossRef]
- Costantini, P.; Manni, C. Shape-preserving C³ Interpolation: The Curve Case. Adv. Comput. Math. 2003, 18, 41–63. [Google Scholar] [CrossRef]
- Kaklis, P.D.; Pandelis, D.G. Convexity-preserving polynomial splines of non-uniform degree. IMA J. Numer. Anal. 1990, 10, 455–468. [Google Scholar] [CrossRef]
- Costantini, P. Variable degree polynomial splines. In Curves and Surfaces with Applications in CAGD; Vanderbilt University Press: Nashville, TN, USA, 1997; pp. 85–94. [Google Scholar]
- Costantini, P. Curve and surface construction using variable degree polynomial splines. Comput. Aided. Geom. Design 2000, 17, 419–446. [Google Scholar] [CrossRef]
- Sederberg, T.W.; Zheng, J.; Song, X. Knot intervals and multi-degree splines. Comput. Aided. Geom. Design 2003, 20, 455–468. [Google Scholar] [CrossRef]
- Wang, G.Z.; Deng, C.Y. On the degree elevation of B-spline curves and corner cutting. J Comput. Aided. Geom. Design 2007, 24, 90–98. [Google Scholar] [CrossRef]
- Shen, W.; Wang, G. A basis of multi-degree splines. Comput. Aided. Geom. Design 2010, 27, 23–35. [Google Scholar] [CrossRef]
- Shen, W.; Wang, G.; Yin, P. Explicit representations of changeable degree spline basis functions. J. Comput. Appl. Math. 2013, 238, 39–50. [Google Scholar] [CrossRef]
- Shen, W.; Yin, P.; Tang, C. Degree elevation of changeable degree spline. J. Comput. Appl. Math. 2016, 300, 56–67. [Google Scholar] [CrossRef]
- Beccari, C.V.; Casciola, G.; Morigi, S. On multi-degree splines. Comput. Aided. Geom. Design 2017, 58, 8–23. [Google Scholar] [CrossRef]
- Buchwald, B.; Mühlbach, G. Construction of B-splines for generalized spline spaces generated from local ECT-systems. J. Comput. Appl. Math. 2003, 159, 249–267. [Google Scholar] [CrossRef]
- Speleers, H. Algorithm 999: Computation of multidegree B-splines. ACM. Trans. Math. Softw. 2019, 45, 1–15. [Google Scholar] [CrossRef]
- Toshniwal, D.; Speleers, H.; Hiemstra, R.R.; Manni, C.; Hughes, T.J. Multi-degree B-splines: Algorithmic computation and properties. Comput. Aided. Geom. Design 2020, 76, 101792. [Google Scholar] [CrossRef]
- Hiemstra, R.R.; Hughes, T.J.; Manni, C.; Speleers, H.; Toshniwal, D. A Tchebycheffian extension of multi-degree B-splines: Algorithmic computation and properties. SIAM. J. Numer. Anal. 2020, 2, 1138–1163. [Google Scholar] [CrossRef]
- Beccari, C.V.; Casciola, G. Matrix representations for multi-degree B-splines. J. Comput. Appl. Math. 2021, 381, 113007. [Google Scholar] [CrossRef]
- Beccari, C.V.; Casciola, G. Stable numerical evaluation of multi-degree B-splines. J. Comput. Appl. Math. 2022, 400, 113743. [Google Scholar] [CrossRef]
- De Boor, C. On calculating with B-splines. J. Abbr. 1972, 6, 50–62. [Google Scholar] [CrossRef]
- Cox, M. The numerical evaluation of B-splines. J. Inst. Math. Appl. 1972, 10, 134–149. [Google Scholar] [CrossRef]
- Goldman, R. Pyramid Algorithms: A Dynamic Programming Approach to Curves and Surfaces for Geometric Modeling. In The Morgan Kaufmann Series in Computer Graphics; Morgan Kaufmann Publishers, Academic Press: San Diego, CA, USA, 2002; pp. 347–443. [Google Scholar]
- Beccari, C.V.; Casciola, G.A. Cox-de Boor-type recurrence relation for C¹ multi-degree splines. Comput. Aided. Geom. Design 2019, 75, 101784. [Google Scholar] [CrossRef]
- Li, X.; Huang, Z.J.; Liu, Z. A geometric approach for multi-degree spline. J. Comput. Sci. Tech. 2012, 27, 841–850. [Google Scholar] [CrossRef]
- Farouki, R.T. The Bernstein polynomial basis: A centennial retrospective. Comput. Aided. Geom. Design 2012, 29, 379–419. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).