Next: Evaluation of Interpolating Functions, Previous: Interpolation Types, Up: Interpolation [Index]

The state of searches can be stored in a `gsl_interp_accel`

object,
which is a kind of iterator for interpolation lookups. It caches the
previous value of an index lookup. When the subsequent interpolation
point falls in the same interval its index value can be returned
immediately.

- Function:
*size_t***gsl_interp_bsearch***(const double*`x_array`[], double`x`, size_t`index_lo`, size_t`index_hi`) This function returns the index

*i*of the array`x_array`such that`x_array[i] <= x < x_array[i+1]`

. The index is searched for in the range [`index_lo`,`index_hi`]. An inline version of this function is used when`HAVE_INLINE`

is defined.

- Function:
*gsl_interp_accel ****gsl_interp_accel_alloc***(void)* -
This function returns a pointer to an accelerator object, which is a kind of iterator for interpolation lookups. It tracks the state of lookups, thus allowing for application of various acceleration strategies.

- Function:
*size_t***gsl_interp_accel_find***(gsl_interp_accel **`a`, const double`x_array`[], size_t`size`, double`x`) This function performs a lookup action on the data array

`x_array`of size`size`, using the given accelerator`a`. This is how lookups are performed during evaluation of an interpolation. The function returns an index*i*such that`x_array[i] <= x < x_array[i+1]`

. An inline version of this function is used when`HAVE_INLINE`

is defined.

- Function:
*int***gsl_interp_accel_reset***(gsl_interp_accel **`acc`); This function reinitializes the accelerator object

`acc`. It should be used when the cached information is no longer applicable—for example, when switching to a new dataset.

- Function:
*void***gsl_interp_accel_free***(gsl_interp_accel**`acc`) This function frees the accelerator object

`acc`.