BackgroundSymbolic computation of NURBS [16,5,4,26] refers to algebraic operations on one or more than one NURBS, resulting in another NURBS. The operations typically include primitive ones such as sum/difference, multiplication/division , differentiation, and composition, and derived ones such as dot product, cross product (of 2 B-splines) and triple-scalar product (of 3 B-splines) in R
3, and generalized cross product (of n − 1 B-splines) and scalar product (of n B-splines) in R n , etc. These operations are essential to the construction of complex NURBS models from simple ones, and more importantly to curve/surface interrogation [5,8,21,9,25]. NURBS symbolic computation has also been used in various other areas such as computing bisectors [10,11,12], blending surfaces [19] and offsetting * This work was supported in part by NSF ( CCR0310705 ) . All opinions, findings, conclusions or recommendations expressed in this document are those of the authors and do not necessarily reflect the views of the sponsoring agencies.† contact author: xchen@cs.utah.edu curves [7]. Actually, with the help of rational constraint solvers [28,13], NURBS symbolic computation plays a fundamental role virtually in every area of geometric computation on free-form curves/surfaces. However, there is one critical problem that severely restricts the power of NURBS symbolic computation -the rapidly increasing degree of the derived NURBS, which is especially true when rational B-splines are involved. Let us first review briefly symbolic computation on polynomial B-splines. To symbolically add/subtract two polynomial B-splines, both degree elevation and knot vector refinement have to be done so that both operands have the same degree and knot vector, and then addition/subtraction is simply applied point-wise to their control polygons. Dividing a polynomial B-spline by another polynomial scalar B-spline basically follows the same procedure, except that the final step is division and the derived B-spline is rational. Differentiation of a polynomial B-spline is simple and has the favorable property of decreasing the degree by one. Multiplication of two B-splines, though, is complicated with different approaches [23,5,29]; what is of concern to this paper is that polynomial B-spline multiplication results in another polynomial B-spline with a degree that is the sum of the degrees of the two operands.In contrast, rational NURBS symbolic computation is a rather different situation. Every operation on a rational B-spline is derived rather than primitive, and is implemented typically as more than one primitive operations on the denominator and numerator. As a result, addition/subtraction/division raises the degree just as multiplication does, and differentiation doubles the degree 1 . Because any operation on two rationals either adds together or doubles the degrees, any nontrivial symbolic computation on rational B-splines, especially when higher order differentiation is involved, would quite likely become impractical because of the huge d...