PCHIP
Piecewise Cubic Hermite Interpolant Package


PCHIP is a FORTRAN90 library which can construct a piecewise cubic Hermite interpolant to data, and carry out various related operations, by Fred Fritsch.

Licensing:

The computer code and data files made available on this web page are distributed under the GNU LGPL license.

Languages:

PCHIP is available in a FORTRAN77 version and a FORTRAN90 version.

Related Data and Programs:

BARYCENTRIC_INTERP_1D, a FORTRAN90 library which defines and evaluates the barycentric Lagrange polynomial p(x) which interpolates a set of data, so that p(x(i)) = y(i). The barycentric approach means that very high degree polynomials can safely be used.

CHEBYSHEV_INTERP_1D, a FORTRAN90 library which determines the combination of Chebyshev polynomials which interpolates a set of data, so that p(x(i)) = y(i).

INTERPOLATION, a dataset directory which contains datasets to be interpolated.

LAGRANGE_INTERP_1D, a FORTRAN90 library which defines and evaluates the Lagrange polynomial p(x) which interpolates a set of data, so that p(x(i)) = y(i).

NEAREST_INTERP_1D, a FORTRAN90 library which interpolates a set of data using a piecewise constant interpolant defined by the nearest neighbor criterion, creating graphics files for processing by gnuplot.

NMS, a FORTRAN90 library which includes a wide variety of numerical software, including solvers for linear systems of equations, a Piecewise Cubic Hermite Interpolation Package (PCHIP), numerical quadrature, linear least squares data fitting, the solution of nonlinear equations, ordinary differential equations (ODE's), optimization and nonlinear least squares, simulation and random numbers, trigonometric approximation and Fast Fourier Transforms (FFT).

PWL_INTERP_1D, a FORTRAN90 library which interpolates a set of data using a piecewise linear function, creating graphics files for processing by gnuplot.

TEST_INTERP, a FORTRAN90 library which defines a number of test problems for interpolation, provided as a set of (x,y) data.

TEST_INTERP_1D, a FORTRAN90 library which defines test problems for interpolation of data y(x), depending on a 1D argument.

Reference:

  1. Carl deBoor,
    A Practical Guide to Splines,
    Springer, 2001,
    ISBN: 0387953663,
    LC: QA1.A647.v27.
  2. Carl deBoor,
    Package for calculating with B-splines,
    SIAM Journal on Numerical Analysis,
    Volume 14, Number 3, June 1977, pages 441-472.
  3. Fred Fritsch,
    Representations for Parametric Cubic Splines,
    Computer Aided Geometric Design,
    Volume 6, 1989, pages 79-82.
  4. Fred Fritsch,
    Piecewise Cubic Hermite Interpolation Package, Final Specifications,
    Lawrence Livermore National Laboratory,
    Computer Documentation UCID-30194, August 1982.
  5. Fred Fritsch, Judy Butland,
    A Method for Constructing Local Monotone Piecewise Cubic Interpolants,
    SIAM Journal on Scientific and Statistical Computing,
    Volume 5, Number 2, June 1984, pages 300-304.
  6. Fred Fritsch, Ralph Carlson,
    Monotone Piecewise Cubic Interpolation,
    SIAM Journal on Numerical Analysis,
    Volume 17, Number 2, April 1980, pages 238-246.
  7. Ron Jones, David Kahaner,
    XERROR, The SLATEC Error Handling Package,
    Software: Practice and Experience,
    Volume 13, Number 3, 1983, pages 251-257.
  8. David Kahaner, Cleve Moler, Steven Nash,
    Numerical Methods and Software,
    Prentice Hall, 1989,
    ISBN: 0-13-627258-4,
    LC: TA345.K34.

Source Code:

Examples and Tests:

TEST02 generates some files that can be input to GNUPLOT to illustrate the problem of interpolating monotonic data with a piecewise cubic Hermite spline.

TEST03 generates some files that can be input to GNUPLOT to illustrate the problem of interpolating monotonic data with a cubic spline.

List of Routines:

You can go up one level to the FORTRAN90 source codes.


Last revised on 06 April 2015.