Sure, that would be a reasonable option, but I'd like to do a bit of
research (i.e. ask a few more people for opinions) to see what solution
will be the least confusing. After all, if there is a change to be made,
this is the time to do it, not later after the code is incorporated into
GSL. I think backward compatibility will not be too much of a problem
because people will have to make other changes anyway to transition from
the interp2d_* functions to the corresponding gsl_* functions.


I think 2 additional functions could be added to help solve this issue and hide the indexing
from the user:

interp2d_grid_set(double zarr[], size_t i, size_t j, double z)
{
  /* set point (i,j) of grid 'zarr' to value 'z' */
}

and

interp2d_grid_fill(double zarr[], int (*grid_func)(double x, double y, void *params))
{
/* fill entire grid 'zarr' using callback function 'grid_func'; this would be useful * in cases where the user has a continuous/analytic function which is expensive to call, but
   * they'd like to make a grid and then interpolate from it
   */
}

Reply via email to