## Interpolation Functions

The interpolation function for a given dataset is stored in a `gsl_interp` object. These are created by the following functions.

Function: gsl_interp * gsl_interp_alloc (const gsl_interp_type * T, size_t size)
  This function returns a pointer to a newly allocated interpolation object of type T for size data-points.

Function: int gsl_interp_init (gsl_interp * interp, const double xa[], const double ya[], size_t size)
  This function initializes the interpolation object interp for the data (xa,ya) where xa and ya are arrays of size size. The interpolation object (`gsl_interp`) does not save the data arrays xa and ya and only stores the static state computed from the data. The xa data array is always assumed to be strictly ordered; the behavior for other arrangements is not defined.

Function: void gsl_interp_free (gsl_interp * interp)
  This function frees the interpolation object interp.