for (int i = 0; i < pointsToInterpolate - 2; i++)
A.unsafe_set(i + 4, i + 2, 11.0 / 5.0 * MathTools.cube(h.unsafe_get(i, 0)));
A.unsafe_set(i + 4, i + 3, 4.0 / 5.0 * MathTools.cube(h.unsafe_get(i, 0)) + 4.0 / 5.0 * MathTools.cube(h.unsafe_get(i + 1, 0)));
A.unsafe_set(i + 4, i + 4, 1.0 / 5.0 * MathTools.cube(h.unsafe_get(i + 1, 0)));
MatrixTools.addMatrixBlock(A, i + 4, 0, C, i, 0, 1, pointsToInterpolate + 2, h.unsafe_get(i, 0));
MatrixTools.addMatrixBlock(A, i + 4, 0, C, i + 1, 0, 1, pointsToInterpolate + 2, h.unsafe_get(i + 1, 0));
A.unsafe_set(0, 2, 4.0 / 5.0 * MathTools.cube(h.unsafe_get(0, 0)));
A.unsafe_set(0, 3, 1.0 / 5.0 * MathTools.cube(h.unsafe_get(0, 0)));
A.unsafe_set(2, pointsToInterpolate, 11.0 / 5.0 * MathTools.cube(h.unsafe_get(pointsToInterpolate - 2, 0)));
A.unsafe_set(2, pointsToInterpolate + 1, 4.0 / 5.0 * MathTools.cube(h.unsafe_get(pointsToInterpolate - 2, 0)));