In many applications, a knot is required to be inserted multiple times. A simple method for inserting the same knot multiple times is to repeatedly apply the knot insertion algorithm. However, in doing so, the original knot vector and the original set of control points must be modified after each insertion, which is a rather tedious task. Fortunately, by studying the behavior of the knot insertion algorithm, we can find a much simpler way to do the same.
Let us start with a simple case. Let t be inserted in the middle of knot span [u_{k}, u_{k+1}) and let the degree be p. The coefficients a_{i,1}'s for the first insertion, where kp+1 <= i <= k, are computed as follows:
After t is inserted, it becomes a knot and knots u_{k+1}, u_{k+2}, ..., u_{m} will be shifted one position to the right. More precisely, the new knots, v_{0}, v_{1}, ..., v_{k}, v_{k+1}, ..., v_{m} and v_{m+1} are
First Insertion  v_{0}  v_{1}  .....  v_{k}  v_{k+1} = t  v_{k+2}  .....  v_{m}  v_{m+1} 
Original  u_{0}  u_{1}  .....  u_{k}  t  u_{k+1}  .....  u_{m1}  u_{m} 
Note that v_{k+1} divides the new knot vector into two halves. Knots to the left of v_{k+1} = t are identical to the corresponding values of the original, while knots to the right of t satisfy the relation v_{h} = u_{h1}.
If t is inserted again, it lies in knot span [v_{k+1},v_{k+2}). Since t is equal to the left end, this second insertion makes v_{k+1} a double knot. The coefficients a_{i,2}'s for this second insertion, based on the new knot sequence, are computed as
where i is less than or equal to k+1. Rewriting the above using u we have
Note that the u_{i}'s are on the lefthand side of t = v_{k+1} and the u_{i+p}'s are on the righthand side of v = v_{k+1}.
Let this new set of knots be w_{i}'s. The relation of this new set and the origin is shown below:
Second Insertion  w_{0}  w_{1}  .....  w_{k}  w_{k+1} = w_{k+2} = t  w_{k+3}  .....  w_{m+1}  w_{m+2} 
First Insertion  v_{0}  v_{1}  .....  v_{k}  v_{k+1} = t  v_{k+2}  .....  v_{m}  v_{m+1} 
Original  u_{0}  u_{1}  .....  u_{k}  t  u_{k+1}  .....  u_{m1}  u_{m} 
Let t be inserted a third time, which makes w_{k+1} a triple knot. It is not difficult to see that the coefficients a_{i,3}'s for this third insertion are computed as follows:
The above can be rewritten as
Generalizing this idea, a_{i,h}'s, the coefficients for the hth insertion, are computed as follows:
What if in the original knot vector u_{k} is a multiple knot with multiplicity s and t is inserted at u_{k}? Would this affect the above formula? Fortunately, nothing will change. Let us see why. If u_{k} is a multiple knot of multiplicity s, then u_{k} = u_{k1} = u_{k2} = ... = u_{ks+1}:
w_{0}  w_{1}  .....  w_{ks+1} = ... = w_{k2} = w_{k1} = w_{k} = w_{k+1} = w_{k+2} = t  w_{k+3}  .....  w_{m+1}  w_{m+2} 
v_{0}  v_{1}  .....  v_{ks+1} = ... = v_{k2} = v_{k1} = v_{k} = v_{k+1} = t  v_{k+2}  .....  v_{m}  v_{m+1} 
u_{0}  u_{1}  .....  u_{ks+1} = ... = u_{k2} = u_{k1} = u_{k} = t  u_{k+1}  .....  u_{m1}  u_{m} 
Because all of them lie to the lefthand side of t and because the shifting of indices only happen to those knots to right of t, the computation formula for a_{i,h} does not have to be modified. Therefore, we conclude that
If a new knot t is inserted to knot span
[u_{k}, u_{k+1})
h times, the coefficients a_{i,h}
can be computed as follows:

Recall from the way of inserting a knot at an existing knot that if t is inserted at an existing knot u_{k} of multiplicity s, then control points P_{ks}, P_{ks+1}, ..., P_{k1} and P_{k} are not affected and only P_{kp}, P_{kp+1}, ..., P_{ks} participate in the computation of new control points Q_{i}'s. Let us rewrite all new control points after the first insertion with a second subscript 1. Thus, we have the following diagram:
If the same knot is inserted the second time, the affected p+1 control points are P_{k}, P_{k1}, P_{ks}, P_{ks,1}, P_{ks1,1}, ..., P_{kp+1,1} as shown in the above diagram. Note that P_{kp} is excluded because only p+1 control points are affected. However, since the multiplicity of t is increased by one due to the previous insertion, s+2 control points will not participate in the knot insertion computation: P_{k}, P_{k1}, ..., P_{ks} and P_{ks,1}. The computation scheme and the new set of control points are shown below. Note that new control points generated from the second insertion has 2 as the second subscript. The new control points are: (1) P_{kp+1,1} and P_{ks,1} computed from the first insertion, and (2) P_{kp+2,2} to P_{ks,2} computed from the second insertion.
For the third insertion, the affected p+1 control points are P_{kp+2,2} to P_{ks,2}, P_{ks,1}, and P_{ks} to P_{k}. Since this third insertion increases the multiplicity of t by one again, the number of control points that will not involve in the computation is also increased by one. As a result, P_{ks,2} will be the same before and after the third insertion. This is the meaning of the following diagram:
In general, if t is inserted h times at a knots u_{k} of multiplicity s, where s = 0 means t is inserted in the middle of that knot span and s > 0 means t is inserted at a knot u_{k} of multiplicity s, one can
Combining these two observations, we have the following algorithm for inserting a knot t multiple times.
The new set of control points are constructed from the original ones from P_{0} to P_{kp}, followed by the top edge of the diagram above (i.e., P_{kp+1,1}, P_{kp+2,2}, ..., P_{kp+h,h}), followed by the right edge of the diagram (i.e., P_{kp+h+1,h}, P_{kp+h+2,h}, ...., P_{ks,h}), followed by the bottom edge of the diagram (i.e., P_{ks,h1}, P_{ks,h2}, ...., P_{ks,1}), followed by the original control points P_{ks}, ..., P_{k}, ..., P_{n}.
As mentioned earlier, knot insertion is a corner cutting process. For example, suppose we have a Bspline curve of degree 6 and want to insert u twice at a knot u_{10} of multiplicity 2. The affected control points are P_{10}, P_{9}, ..., P_{4}, since k = 10, p = 6 and kp = 4. Since the multiplicity of u_{10} is 2, we have s = 2 and u_{10} and P_{9} are not changed. The first insertion produces P_{8,1}, P_{7,1}, P_{6,1} and P_{5,1} and the corners at P_{7}, P_{6} and P_{5} are cut. The new set of control points contains P_{0} to P_{4}, P_{5,1}, P_{6,1}, P_{7,1}, P_{8,1}, P_{8}, P_{9}, P_{10}, .....
The second insertion produces P_{8,2}, P_{7,2} and P_{6,2}. Thus, the corners at P_{7,1} and P_{6,1} are cut and the new set of control points are P_{0} to P_{4}, P_{5,1}, P_{6,2}, P_{7,2}, P_{8,2}, P_{8,1}, P_{8}, P_{9}, P_{10}, .....