interp.h

Author

Zhu Dengda (zhudengda@mail.iggcas.ac.cn)

Date

2023-03

Functions

MYREAL trilinear_one_ravel(const double *x, MYINT nx, const double *y, MYINT ny, const double *z, MYINT nz, MYINT nyz, const MYREAL *values, double xi, double yi, double zi, double *pdiffx, double *pdiffy, double *pdiffz, MYINT IXYZ[6], double WGHT[2][2][2])

将三维数据展平进行三次线性插值

参数:
  • x – (in)x方向坐标数组

  • nx – (in)x长度

  • y – (in)y方向坐标

  • ny – (in)y长度

  • z – (in)z方向坐标

  • nz – (in)z长度

  • nyz – (in)ny*nz

  • values – (in)展平的三维数据数组

  • xi – (in)待插值的x坐标

  • yi – (in)待插值的y坐标

  • zi – (in)待插值的z坐标

  • pdiffx – (out)非NULL时,插值x方向梯度

  • pdiffy – (out)非NULL时,插值y方向梯度

  • pdiffz – (out)非NULL时,插值z方向梯度

  • IXYZ – (out)非NULL时,(xi,yi,zi)所在的索引坐标(i,i+1,j,j+1,k,k+1)

  • WGHT – (out)非NULL时,8个插值权重

返回:

插值结果

void trilinear_one_fac(const double *x, MYINT nx, const double *y, MYINT ny, const double *z, MYINT nz, double xi, double yi, double zi, MYINT IXYZ[6], double WGHT[2][2][2])

计算三次线性插值的索引和权重

参数:
  • x – (in)x方向坐标数组

  • nx – (in)x长度

  • y – (in)y方向坐标

  • ny – (in)y长度

  • z – (in)z方向坐标

  • nz – (in)z长度

  • xi – (in)待插值的x坐标

  • yi – (in)待插值的y坐标

  • zi – (in)待插值的z坐标

  • IXYZ – (out)非NULL时,(xi,yi,zi)所在的索引坐标(i,i+1,j,j+1,k,k+1)

  • WGHT – (out)非NULL时,8个插值权重

MYREAL trilinear_one_Idx_ravel(const MYINT IXYZ[6], const double WGHT[2][2][2], const MYREAL *values, MYINT nx, MYINT ny, MYINT nz, MYINT nyz, double *pdiffx, double *pdiffy, double *pdiffz)

在已知索引和权重的情况下做三次线性插值

参数:
  • IXYZ – (in)(xi,yi,zi)所在的索引坐标(i,i+1,j,j+1,k,k+1)

  • WGHT – (in)8个插值权重

  • values – (in)展平的三维数据数组

  • nx – (in)x长度

  • ny – (in)y长度

  • nz – (in)z长度

  • nyz – (in)ny*nz

  • pdiffx – (out)非NULL时,插值x方向梯度

  • pdiffy – (out)非NULL时,插值y方向梯度

  • pdiffz – (out)非NULL时,插值z方向梯度

返回:

插值结果