VAPoR  0.1
ba_interp3.h
Go to the documentation of this file.
1 #ifndef BA_INTERP3_H_INCLUDED
2 #define BA_INTERP3_H_INCLUDED
3 
4 
5 namespace BaInterp3d {
6 
7 void interp3d(double * pO, double const * F, double const * X, \
8  double const * Y, double const * Z, \
9  int const nx0, int const ny0, int const nz0,
10  int const nx, int const ny, int const nz, int const nvar, int const method);
11 
12 };
13 
14 #ifdef DEAD
15 inline
16 int access(int M, int N, int O, int x, int y, int z);
17 
18 inline
19 int access_unchecked(int M, int N, int O, int x, int y, int z);
20 
21 inline
22 void indices_linear(
23  int &f000_i,
24  int &f100_i,
25  int &f010_i,
26  int &f110_i,
27  int &f001_i,
28  int &f101_i,
29  int &f011_i,
30  int &f111_i,
31  const int x, const int y, const int z,
32  const int M, const int N, const int O);
33 
34 inline
35 void indices_cubic(
36  int f_i[64],
37  const int x, const int y, const int z,
38  const int M, const int N, const int O);
39 
40 
41 void interpolate_nearest(double * pO, double const * pF,
42  double const * pX, double const * pY, double const * pZ,
43  const int ND, const int M, const int N, const int O, const int P,
44  const double s_x, const double o_x,
45  const double s_y, const double o_y,
46  const double s_z, const double o_z);
47 
48 template <int P>
49 void interpolate_nearest_unrolled(double * pO, double const * pF,
50  double const * pX, double const * pY, double const * pZ,
51  const int ND, const int M, const int N, const int O,
52  const double s_x, const double o_x,
53  const double s_y, const double o_y,
54  const double s_z, const double o_z);
55 
56 
57 void interpolate_linear(double * pO, double const * pF,
58  double const * pX, double const * pY, double const * pZ,
59  const int ND, const int M, const int N, const int O, const int P,
60  const double s_x, const double o_x,
61  const double s_y, const double o_y,
62  const double s_z, const double o_z);
63 
64 
65 template <int P>
66 void interpolate_linear_unrolled(double * pO, double const * pF,
67  double const * pX, double const * pY, double const * pZ,
68  const int ND, const int M, const int N, const int O,
69  const double s_x, const double o_x,
70  const double s_y, const double o_y,
71  const double s_z, const double o_z);
72 
73 
74 void interpolate_bicubic(double * pO, double const * pF,
75  double const * pX, double const * pY, double const * pZ,
76  const int ND, const int M, const int N, const int O, const int P,
77  const double s_x, const double o_x,
78  const double s_y, const double o_y,
79  const double s_z, const double o_z);
80 
81 template <std::size_t P>
82 void interpolate_bicubic_unrolled(double * pO, double const * pF,
83  double const * pX, double const * pY, double const * pZ,
84  const int ND, const int M, const int N, const int O,
85  const double s_x, const double o_x,
86  const double s_y, const double o_y,
87  const double s_z, const double o_z);
88 #endif
89 
90 #endif // BA_INTERP3_H_INCLUDED
void interp3d(double *pO, double const *F, double const *X, double const *Y, double const *Z, int const nx0, int const ny0, int const nz0, int const nx, int const ny, int const nz, int const nvar, int const method)