### 28.2 1D 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, with increasing x values; the behavior for other arrangements is not defined.

Function: void gsl_interp_free (gsl_interp * interp)

  This function frees the interpolation object interp.