Cubic Hermite spline
In numerical analysis, a cubic Hermite spline or cubic Hermite interpolator is a spline where each piece is a third-degree polynomial specified in Hermite form, that is, by its values and first derivatives at the end points of the corresponding domain interval. Cubic Hermite splines are typically used for interpolation of numeric data specified at given argument values formula_1, to obtain a continuous function. The data should consist of the desired function value and derivative at each formula_2. (If only the values are provided, the derivatives must be estimated from them.) The Hermite formula is applied  to each interval formula_3 separately. The resulting spline will be continuous and will have continuous first derivative. Cubic polynomial splines can be specified in other ways, the Bezier cubic being the most common. However, these two methods provide the same set of splines, and data can be easily converted between the Bézier and Hermite forms; so the names are often used as if they were synonymous. Cubic polynomial splines are extensively used in computer graphics and geometric modeling to obtain curves or motion trajectories that pass through specified points of the plane or three-dimensional space. In these applications, each  coordinate of the plane or space is separately interpolated by a cubic spline function of a separate parameter "t". Cubic polynomial splines are also used extensively in structural analysis applications, such as Euler–Bernoulli beam theory. Cubic splines can be extended to functions of two or more parameters, in several ways. Bicubic splines (Bicubic interpolation) are often used to interpolate data on a regular rectangular grid, such as pixel values in a digital image or altitude data on a terrain. Bicubic surface patches, defined by three bicubic splines, are an essential tool in computer graphics. Cubic splines are often called  csplines, especially in computer graphics. Hermite splines are named after Charles Hermite. Interpolation on a single interval. Unit interval (0, 1). On the unit interval formula_4, given a starting point formula_5 at formula_6 and an ending point formula_7 at formula_8 with starting tangent formula_9 at formula_6 and ending tangent formula_11 at formula_8, the polynomial can be defined by where "t" ∈ [0, 1]. Interpolation on an arbitrary interval. Interpolating formula_14 in an arbitrary interval formula_3 is done by mapping the latter to formula_16 through an affine (degree-1) change of variable. The formula is where formula_18, and formula_19 refers to the  basis functions, defined below. Note that the tangent values have been scaled by formula_20 compared to the equation on the unit interval. Uniqueness. The formula specified above provide the unique third-degree polynomial path between the two points with the given tangents. Proof. Let formula_21 be two third-degree polynomials satisfying the given boundary conditions. Define formula_22 then: Since both formula_25 and formula_26 are third-degree polynomials, formula_27 is at most a third-degree polynomial. So formula_27 must be of the form Calculating the derivative gives We know furthermore that Putting () and () together, we deduce that formula_33, and therefore formula_34  thus formula_35 Representations. We can write the interpolation polynomial as where formula_37, formula_38, formula_39, formula_40 are Hermite basis functions. These can be written in different ways, each way revealing different properties: The "expanded" column shows the representation used in the definition above. The "factorized" column shows immediately that formula_38 and formula_40 are zero at the boundaries. You can further conclude that formula_39 and formula_40 have a zero of multiplicity 2 at 0, and formula_37 and formula_38 have such a zero at 1, thus they have slope 0 at those boundaries. The "Bernstein" column shows the decomposition of the Hermite basis  functions into Bernstein polynomials of order 3: Using this connection you can express cubic Hermite interpolation in terms of cubic Bézier curves with respect to the four values formula_48 and do Hermite interpolation using the de Casteljau algorithm. It shows that in a cubic Bézier patch the two control points in the middle determine the tangents of the interpolation curve at the respective outer points. Interpolating a data set. A data set, formula_49 for formula_50, can be interpolated by applying the above procedure on each interval, where the tangents are chosen in a sensible manner, meaning that the tangents for  intervals sharing endpoints are equal. The interpolated curve then consists of piecewise cubic Hermite splines and is globally continuously differentiable in formula_51. The choice of tangents is not unique, and there are several options available. Finite difference. The simplest choice is the three-point difference, not requiring constant interval lengths: for internal points formula_53, and one-sided difference at the endpoints of the data set. Cardinal spline. A cardinal spline, sometimes called a canonical spline, is obtained if is used to calculate the tangents. The parameter is a "tension" parameter that must be in the interval . In some sense, this  can be interpreted as the "length" of the tangent. Choosing yields all zero tangents, and choosing yields a Catmull–Rom spline. Catmull–Rom spline. For tangents chosen to be a Catmull–Rom spline is obtained, being a special case of a cardinal spline. This assumes uniform parameter spacing. The curve is named after Edwin Catmull and Raphael Rom. The principal advantage of this technique is that the points along the original set of points also make up the control points for the spline curve. Two additional points are required on either end of the curve. The uniform Catmull–Rom implementation  can produce loops and self-intersections. The chordal and centripetal Catmull–Rom implementations solve this problem, but use a slightly different calculation. In computer graphics, Catmull–Rom splines are frequently used to get smooth interpolated motion between key frames. For example, most camera path animations generated from discrete key-frames are handled using Catmull–Rom splines. They are popular mainly for being relatively easy to compute, guaranteeing that each key frame position will be hit exactly, and also guaranteeing that the tangents of the generated curve are continuous over multiple segments. Kochanek–Bartels spline. A Kochanek–Bartels spline is a  further generalization on how to choose the tangents given the data points formula_56, formula_57 and formula_58, with three parameters possible: tension, bias and a continuity parameter. Monotone cubic interpolation. If a cubic Hermite spline of any of the above listed types is used for interpolation of a monotonic data set, the interpolated function will not necessarily be monotonic, but monotonicity can be preserved by adjusting the tangents. Interpolation on the unit interval with matched derivatives at endpoints. Consider a single coordinate of the points formula_59 and formula_60 as the values that a function "f"("x") takes at integer ordinates "x" =  n − 1, "n", "n" + 1 and "n" + 2, In addition, assume that the tangents at the endpoints are defined as the centered differences of the adjacent points: To evaluate the interpolated "f"("x") for a real "x", first separate "x" into the integer portion "n" and fractional portion "u": where formula_67 denotes the floor function, which returns the largest integer no larger than "x". Then the Catmull–Rom spline is where formula_69 denotes the matrix transpose. The bottom equality is depicting the application of Horner's method. This writing is relevant for tricubic interpolation, where one optimization requires  computing CINT sixteen times with the same "u" and different "p".