24#include <grass/lidar.h>
71 return (
pow(2 -
csi, 3.) / 6.);
112 int i, k, h,
m, n,
n0;
122 for (k = 0; k <
parNum; k++) {
123 for (h = 0; h <
BW; h++)
130 for (i = 0; i <
obsNum; i++) {
160 for (k = -1; k <= 2; k++) {
161 for (h = -1; h <= 2; h++) {
165 for (
m = k;
m <= 2;
m++) {
172 for (n =
n0; n <= 2; n++) {
178 alpha[k + 1][h + 1] * (1 / Q[i]) *
249 for (k = -2; k <= 2; k++) {
250 for (h = -2; h <= 2; h++) {
255 for (
m = k;
m <= 2;
m++) {
262 for (n =
n0; n <= 2; n++) {
263 if (((
i_x +
m) >= 0) &&
268 if ((
alpha[k + 2][h + 2] != 0) &&
269 (
alpha[
m + 2][n + 2] != 0)) {
273 alpha[k + 2][h + 2] *
296 int i, k, h,
m, n,
n0;
306 for (k = 0; k <
parNum; k++) {
307 for (h = 0; h <
BW; h++)
314 for (i = 0; i <
obsNum; i++) {
329 for (k = 0; k <= 1; k++) {
330 for (h = 0; h <= 1; h++) {
332 if (((
i_x + k) >= 0) && ((
i_x + k) <= (
xNum - 1)) &&
333 ((
i_y + h) >= 0) && ((
i_y + h) <= (
yNum - 1))) {
335 for (
m = k;
m <= 1;
m++) {
341 for (n =
n0; n <= 1; n++) {
386 for (i = 0; i <
parNum; i++) {
418 for (i = 0; i <
parNum; i++) {
448 for (i = 0; i <
obsN; i++) {
480 for (k = -1; k <= 2; k++) {
481 for (h = -1; h <= 2; h++) {
482 if (((
i_x + k) >= 0) && ((
i_x + k) <
xNm) &&
540 for (k = -1; k <= 2; k++) {
541 for (h = -1; h <= 2; h++) {
570 for (i = 0; i <
obsN; i++) {
587 for (k = 0; k <= 1; k++) {
588 for (h = 0; h <= 1; h++) {
589 if (((
i_x + k) >= 0) && ((
i_x + k) <
xNm) &&
633 for (k = 0; k <= 1; k++) {
634 for (h = 0; h <= 1; h++) {
double phi_44(double csi_x, double csi_y)
double dataInterpolateBicubic(double x, double y, double deltaX, double deltaY, int xNum, int yNum, double xMin, double yMin, double *parVect)
int order(int i_x, int i_y, int yNum)
double phi_43(double csi_x, double csi_y)
double phi_33(double csi_x, double csi_y)
void normalDefBicubic(double **N, double *TN, double *Q, double **obsVect, double deltaX, double deltaY, int xNum, int yNum, double xMin, double yMin, int obsNum, int parNum, int BW)
void normalDefBilin(double **N, double *TN, double *Q, double **obsVect, double deltaX, double deltaY, int xNum, int yNum, double xMin, double yMin, int obsNum, int parNum, int BW)
void node_y(double y, int *i_y, double *csi_y, double yMin, double deltaY)
void obsEstimateBilin(double **obsV, double *obsE, double *parV, double deltX, double deltY, int xNm, int yNm, double xMi, double yMi, int obsN)
double phi_34(double csi_x, double csi_y)
double dataInterpolateBilin(double x, double y, double deltaX, double deltaY, int xNum, int yNum, double xMin, double yMin, double *parVect)
void nCorrectGrad(double **N, double lambda, int xNum, int yNum, double deltaX, double deltaY)
void node_x(double x, int *i_x, double *csi_x, double xMin, double deltaX)
double phi(double csi_x, double csi_y)
void obsEstimateBicubic(double **obsV, double *obsE, double *parV, double deltX, double deltY, int xNm, int yNm, double xMi, double yMi, int obsN)
void nCorrectLapl(double **N, double lambda, int xNum, int yNum, double deltaX, double deltaY)