/* This file is automatically generated. DO NOT EDIT! */

#ifndef _sf_eno_h
#define _sf_eno_h


typedef struct Eno *sf_eno;
/* abstract data type */


typedef enum {FUNC, DER, BOTH} der;
/* flag values */


sf_eno sf_eno_init (int order, /* interpolation order */
                    int n      /* data size */);
/*< Initialize interpolation object. >*/


void sf_eno_close (sf_eno ent);
/*< Free internal storage >*/


void sf_eno_set (sf_eno ent, double* c /* data [n] */);
/*< Set the interpolation table. c can be changed or freed afterwords >*/


void sf_eno_apply (sf_eno ent,
                   int i,      /* grid location */
                   double x,   /* offset from grid */
                   double *f,  /* output data value */
                   double *f1, /* output derivative */
                   der what    /* flag of what to compute */);
/*< Apply interpolation >*/

#endif
