// k=1 => 1st derivative, k=2 => 2nd derivative, etc...
for (int k = 1; k <= d; k++) {
int tmp = degree - k + 1;
for (int i = 0; i <= (r - k); i++) {
Vec4D cw = new Vec4D(result[k - 1][i + 1]);
cw.subSelf(result[k - 1][i]);
cw.scaleSelf(tmp);
cw.scaleSelf(1 / (uKnots.get(r1 + i + degree + 1) - uKnots
.get(r1 + i + k)));
result[k][i] = cw;
}