Bidimensional Bicubic Spline

Bidimensional Bicubic Spline — Implements a bidimensional bicubic spline.

Synopsis

#define             NCM_SPLINE2D_BICUBIC_00
#define             NCM_SPLINE2D_BICUBIC_01
#define             NCM_SPLINE2D_BICUBIC_10
#define             NCM_SPLINE2D_BICUBIC_11
#define             NCM_SPLINE2D_BICUBIC_COEFF          (s2d,
                                                         i,
                                                         j)
#define             NCM_SPLINE2D_BICUBIC_COEFF_INDEX    (s2d,
                                                         i,
                                                         j)
#define             NCM_SPLINE2D_BICUBIC_F
#define             NCM_SPLINE2D_BICUBIC_FX
#define             NCM_SPLINE2D_BICUBIC_FXY
#define             NCM_SPLINE2D_BICUBIC_FY
#define             NCM_SPLINE2D_BICUBIC_STRUCT         (s2d,
                                                         i,
                                                         j)
struct              NcmSpline2dBicubic;
struct              NcmSpline2dBicubicClass;
struct              NcmSpline2dBicubicCoeffs;
struct              _NcmSpline2dBicubicOptimizeInt;
gdouble             ncm_spline2d_bicubic_bi             (NcmSplineCubic *sc,
                                                         NcmVector *xv,
                                                         NcmVector *yv,
                                                         gsize i);
void                ncm_spline2d_bicubic_bi_bip1        (NcmSplineCubic *sc,
                                                         NcmVector *xv,
                                                         NcmVector *yv,
                                                         gsize i,
                                                         gdouble *b_i,
                                                         gdouble *b_ip1);
gdouble             ncm_spline2d_bicubic_eval_poly      (const NcmSpline2dBicubicCoeffs *sa,
                                                         const gdouble x,
                                                         const gdouble y);
void                ncm_spline2d_bicubic_fij_to_aij     (NcmSpline2dBicubicCoeffs *sf,
                                                         const gdouble dx,
                                                         const gdouble dy,
                                                         NcmSpline2dBicubicCoeffs *sa);
void                ncm_spline2d_bicubic_integ_dx_coeffs
                                                        (NcmSpline2dBicubicCoeffs *aij,
                                                         gdouble dy,
                                                         gdouble *coeffs);
void                ncm_spline2d_bicubic_integ_dy_coeffs
                                                        (NcmSpline2dBicubicCoeffs *aij,
                                                         gdouble dx,
                                                         gdouble *coeffs);
gdouble             ncm_spline2d_bicubic_integ_eval2d   (NcmSpline2dBicubicCoeffs *aij,
                                                         const gdouble x0,
                                                         const gdouble xl,
                                                         const gdouble xu,
                                                         const gdouble y0,
                                                         const gdouble yl,
                                                         const gdouble yu);
NcmSpline2d *       ncm_spline2d_bicubic_new            (NcmSpline *s);
NcmSpline2d *       ncm_spline2d_bicubic_notaknot_new   ();

Object Hierarchy

  GObject
   +----NcmSpline2d
         +----NcmSpline2dBicubic

Description

This class implements the functions which use a bicubic interpolation method.

Details

NCM_SPLINE2D_BICUBIC_00

#define NCM_SPLINE2D_BICUBIC_00 (0)

NCM_SPLINE2D_BICUBIC_01

#define NCM_SPLINE2D_BICUBIC_01 (2)

NCM_SPLINE2D_BICUBIC_10

#define NCM_SPLINE2D_BICUBIC_10 (1)

NCM_SPLINE2D_BICUBIC_11

#define NCM_SPLINE2D_BICUBIC_11 (3)

NCM_SPLINE2D_BICUBIC_COEFF()

#define NCM_SPLINE2D_BICUBIC_COEFF(s2d,i,j) ((s2d)->bicoeff[NCM_SPLINE2D_BICUBIC_COEFF_INDEX(s2d,i,j)].ij)

NCM_SPLINE2D_BICUBIC_COEFF_INDEX()

#define NCM_SPLINE2D_BICUBIC_COEFF_INDEX(s2d,i,j) ((s2d)->z_x->len * (i) + (j))

NCM_SPLINE2D_BICUBIC_F

#define NCM_SPLINE2D_BICUBIC_F   (0)

NCM_SPLINE2D_BICUBIC_FX

#define NCM_SPLINE2D_BICUBIC_FX  (1)

NCM_SPLINE2D_BICUBIC_FXY

#define NCM_SPLINE2D_BICUBIC_FXY (3)

NCM_SPLINE2D_BICUBIC_FY

#define NCM_SPLINE2D_BICUBIC_FY  (2)

NCM_SPLINE2D_BICUBIC_STRUCT()

#define NCM_SPLINE2D_BICUBIC_STRUCT(s2d,i,j) ((s2d)->bicoeff[NCM_SPLINE2D_BICUBIC_COEFF_INDEX(s2d,i,j)])

struct NcmSpline2dBicubic

struct NcmSpline2dBicubic;

struct NcmSpline2dBicubicClass

struct NcmSpline2dBicubicClass {
};

struct NcmSpline2dBicubicCoeffs

struct NcmSpline2dBicubicCoeffs {
};

FIXME


struct _NcmSpline2dBicubicOptimizeInt

struct _NcmSpline2dBicubicOptimizeInt {
};

ncm_spline2d_bicubic_bi ()

gdouble             ncm_spline2d_bicubic_bi             (NcmSplineCubic *sc,
                                                         NcmVector *xv,
                                                         NcmVector *yv,
                                                         gsize i);

ncm_spline2d_bicubic_bi_bip1 ()

void                ncm_spline2d_bicubic_bi_bip1        (NcmSplineCubic *sc,
                                                         NcmVector *xv,
                                                         NcmVector *yv,
                                                         gsize i,
                                                         gdouble *b_i,
                                                         gdouble *b_ip1);

ncm_spline2d_bicubic_eval_poly ()

gdouble             ncm_spline2d_bicubic_eval_poly      (const NcmSpline2dBicubicCoeffs *sa,
                                                         const gdouble x,
                                                         const gdouble y);

ncm_spline2d_bicubic_fij_to_aij ()

void                ncm_spline2d_bicubic_fij_to_aij     (NcmSpline2dBicubicCoeffs *sf,
                                                         const gdouble dx,
                                                         const gdouble dy,
                                                         NcmSpline2dBicubicCoeffs *sa);

ncm_spline2d_bicubic_integ_dx_coeffs ()

void                ncm_spline2d_bicubic_integ_dx_coeffs
                                                        (NcmSpline2dBicubicCoeffs *aij,
                                                         gdouble dy,
                                                         gdouble *coeffs);

ncm_spline2d_bicubic_integ_dy_coeffs ()

void                ncm_spline2d_bicubic_integ_dy_coeffs
                                                        (NcmSpline2dBicubicCoeffs *aij,
                                                         gdouble dx,
                                                         gdouble *coeffs);

ncm_spline2d_bicubic_integ_eval2d ()

gdouble             ncm_spline2d_bicubic_integ_eval2d   (NcmSpline2dBicubicCoeffs *aij,
                                                         const gdouble x0,
                                                         const gdouble xl,
                                                         const gdouble xu,
                                                         const gdouble y0,
                                                         const gdouble yl,
                                                         const gdouble yu);

ncm_spline2d_bicubic_new ()

NcmSpline2d *       ncm_spline2d_bicubic_new            (NcmSpline *s);

This function initializes a NcmSpline2d of bicubic type given s.

s :

a NcmSplineCubic derived NcmSpline.

Returns :

A new NcmSpline2d.

ncm_spline2d_bicubic_notaknot_new ()

NcmSpline2d *       ncm_spline2d_bicubic_notaknot_new   ();

This function initializes a NcmSpline2d of bicubic notaknot type.

Returns :

A new NcmSpline2d.