Rate This Document
Findability
Accuracy
Completeness
Readability

kml_?_spline2d_eval_deriv_xx

Return the partial derivative of the interpolation function at a given point (x, y). The interpolation object spline, data arrays xarr, yarr, and zarr, and accelerators xacc and yacc are used in the calculation. If x is outside the range of xarr or y is outside the range of yarr, an error message is returned.

Interface Definition

float kml_float_spline2d_eval_deriv_xx(const kml_float_spline2d *spline, const float x, const float y, kml_interp_accel *xa, kml_interp_accel *ya)

int kml_float_spline2d_eval_deriv_xx_e(const kml_float_spline2d *spline, const float x, const float y, kml_interp_accel *xa, kml_interp_accel *ya, float *z)

double kml_double_spline2d_eval_deriv_xx(const kml_double_spline2d *spline, const double x, const double y,

kml_interp_accel *xa, kml_interp_accel *ya);

int kml_double_spline2d_eval_deriv_xx_e(const kml_double_spline2d *spline, const double x, const double y,

kml_interp_accel *xa, kml_interp_accel *ya, double *z);

Parameters

Parameter

Type

Description

Input/Output

spline

kml_float_spline2d*, kml_double_spline2d*

Pointer to an interpolation object.

Input

x

float, double

Value of the solution point x.

Input

y

float, double

Value of the solution point y.

Input

xa

kml_interp_accel *

Pointer to an accelerator object.

Input

ya

kml_interp_accel *

Pointer to an accelerator object.

Input

z

float *, double *

Calculation result of the second-order partial derivative at the interpolation point.

Output

Dependencies

#include "kipl.h"

Examples

const size_t xMin = 4;
const size_t xMax = 2048;
const size_t xSize = 4;
const size_t yMin = 4;
const size_t yMax = 2048;
const size_t ySize = 4;
const float xValLo = 1;
const float xValHi = 2;
const float yValLo = 1;
const float yValHi = 2;
float xArr[4] = {1,1.33,1.67,2};
float yArr[4] = {1,1.33,1.67,2};
float* zArr = (float*)malloc(xSize * ySize * sizeof(float));
float x = 1;
float y = 1;
float z = 0;
kml_float_spline2d *spline = kml_float_spline2d_alloc(kml_float_interp2d_bicubic, xSize, ySize);
kml_interp_accel *xacc = kml_interp_accel_alloc();
kml_interp_accel *yacc = kml_interp_accel_alloc();
kml_float_spline2d_init(spline, xArr, yArr, zArr, xSize, ySize);
z = kml_float_spline2d_eval_deriv_xx(spline, x, y, xacc, yacc);