ARTS  2.0.49
interpolation_poly.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 Stefan Buehler <sbuehler(at)ltu.se>
2 
3  This program is free software; you can redistribute it and/or modify it
4  under the terms of the GNU General Public License as published by the
5  Free Software Foundation; either version 2, or (at your option) any
6  later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16  USA. */
17 
26 #ifndef interpolation_poly_h
27 #define interpolation_poly_h
28 
29 #include "matpackI.h"
30 #include "interpolation.h"
31 
33 
64 struct GridPosPoly {
71 };
72 
74 
79 
80 ostream& operator<<(ostream& os, const GridPosPoly& gp);
81 
83  ConstVectorView old_grid,
84  ConstVectorView new_grid,
85  const Index order,
86  const Numeric& extpolfac = 0.5);
87 
88 void gridpos_poly(GridPosPoly& gp,
89  ConstVectorView old_grid,
90  const Numeric& new_grid,
91  const Index order,
92  const Numeric& extpolfac = 0.5);
93 
94 
95 
96 
97 
99 // Red Interpolation
101 
102 void interpweights( VectorView itw,
103  const GridPosPoly& tc );
104 
105 void interpweights( VectorView itw,
106  const GridPosPoly& tr,
107  const GridPosPoly& tc );
108 
109 void interpweights( VectorView itw,
110  const GridPosPoly& tp,
111  const GridPosPoly& tr,
112  const GridPosPoly& tc );
113 
114 void interpweights( VectorView itw,
115  const GridPosPoly& tb,
116  const GridPosPoly& tp,
117  const GridPosPoly& tr,
118  const GridPosPoly& tc );
119 
120 void interpweights( VectorView itw,
121  const GridPosPoly& ts,
122  const GridPosPoly& tb,
123  const GridPosPoly& tp,
124  const GridPosPoly& tr,
125  const GridPosPoly& tc );
126 
127 void interpweights( VectorView itw,
128  const GridPosPoly& tv,
129  const GridPosPoly& ts,
130  const GridPosPoly& tb,
131  const GridPosPoly& tp,
132  const GridPosPoly& tr,
133  const GridPosPoly& tc );
134 
136  ConstVectorView a,
137  const GridPosPoly& tc );
138 
140  ConstMatrixView a,
141  const GridPosPoly& tr,
142  const GridPosPoly& tc );
143 
145  ConstTensor3View a,
146  const GridPosPoly& tp,
147  const GridPosPoly& tr,
148  const GridPosPoly& tc );
149 
151  ConstTensor4View a,
152  const GridPosPoly& tb,
153  const GridPosPoly& tp,
154  const GridPosPoly& tr,
155  const GridPosPoly& tc );
156 
158  ConstTensor5View a,
159  const GridPosPoly& ts,
160  const GridPosPoly& tb,
161  const GridPosPoly& tp,
162  const GridPosPoly& tr,
163  const GridPosPoly& tc );
164 
166  ConstTensor6View a,
167  const GridPosPoly& tv,
168  const GridPosPoly& ts,
169  const GridPosPoly& tb,
170  const GridPosPoly& tp,
171  const GridPosPoly& tr,
172  const GridPosPoly& tc );
173 
174 
175 
176 
177 
179 // Blue interpolation
181 
182 void interpweights( MatrixView itw,
183  const ArrayOfGridPosPoly& cgp );
184 
185 void interpweights( MatrixView itw,
186  const ArrayOfGridPosPoly& rgp,
187  const ArrayOfGridPosPoly& cgp );
188 
189 void interpweights( MatrixView itw,
190  const ArrayOfGridPosPoly& pgp,
191  const ArrayOfGridPosPoly& rgp,
192  const ArrayOfGridPosPoly& cgp );
193 
194 void interpweights( MatrixView itw,
195  const ArrayOfGridPosPoly& bgp,
196  const ArrayOfGridPosPoly& pgp,
197  const ArrayOfGridPosPoly& rgp,
198  const ArrayOfGridPosPoly& cgp );
199 
200 void interpweights( MatrixView itw,
201  const ArrayOfGridPosPoly& sgp,
202  const ArrayOfGridPosPoly& bgp,
203  const ArrayOfGridPosPoly& pgp,
204  const ArrayOfGridPosPoly& rgp,
205  const ArrayOfGridPosPoly& cgp );
206 
207 void interpweights( MatrixView itw,
208  const ArrayOfGridPosPoly& vgp,
209  const ArrayOfGridPosPoly& sgp,
210  const ArrayOfGridPosPoly& bgp,
211  const ArrayOfGridPosPoly& pgp,
212  const ArrayOfGridPosPoly& rgp,
213  const ArrayOfGridPosPoly& cgp );
214 
215 void interp( VectorView ia,
216  ConstMatrixView itw,
217  ConstVectorView a,
218  const ArrayOfGridPosPoly& cgp);
219 
220 void interp( VectorView ia,
221  ConstMatrixView itw,
222  ConstMatrixView a,
223  const ArrayOfGridPosPoly& rgp,
224  const ArrayOfGridPosPoly& cgp);
225 
226 void interp( VectorView ia,
227  ConstMatrixView itw,
228  ConstTensor3View a,
229  const ArrayOfGridPosPoly& pgp,
230  const ArrayOfGridPosPoly& rgp,
231  const ArrayOfGridPosPoly& cgp);
232 
233 void interp( VectorView ia,
234  ConstMatrixView itw,
235  ConstTensor4View a,
236  const ArrayOfGridPosPoly& bgp,
237  const ArrayOfGridPosPoly& pgp,
238  const ArrayOfGridPosPoly& rgp,
239  const ArrayOfGridPosPoly& cgp);
240 
241 void interp( VectorView ia,
242  ConstMatrixView itw,
243  ConstTensor5View a,
244  const ArrayOfGridPosPoly& sgp,
245  const ArrayOfGridPosPoly& bgp,
246  const ArrayOfGridPosPoly& pgp,
247  const ArrayOfGridPosPoly& rgp,
248  const ArrayOfGridPosPoly& cgp);
249 
250 void interp( VectorView ia,
251  ConstMatrixView itw,
252  ConstTensor6View a,
253  const ArrayOfGridPosPoly& vgp,
254  const ArrayOfGridPosPoly& sgp,
255  const ArrayOfGridPosPoly& bgp,
256  const ArrayOfGridPosPoly& pgp,
257  const ArrayOfGridPosPoly& rgp,
258  const ArrayOfGridPosPoly& cgp);
259 
260 
261 
262 
263 
265 // Green interpolation
267 
268 void interpweights( Tensor3View itw,
269  const ArrayOfGridPosPoly& rgp,
270  const ArrayOfGridPosPoly& cgp );
271 
272 void interpweights( Tensor4View itw,
273  const ArrayOfGridPosPoly& pgp,
274  const ArrayOfGridPosPoly& rgp,
275  const ArrayOfGridPosPoly& cgp );
276 
277 void interpweights( Tensor5View itw,
278  const ArrayOfGridPosPoly& bgp,
279  const ArrayOfGridPosPoly& pgp,
280  const ArrayOfGridPosPoly& rgp,
281  const ArrayOfGridPosPoly& cgp );
282 
283 void interpweights( Tensor6View itw,
284  const ArrayOfGridPosPoly& sgp,
285  const ArrayOfGridPosPoly& bgp,
286  const ArrayOfGridPosPoly& pgp,
287  const ArrayOfGridPosPoly& rgp,
288  const ArrayOfGridPosPoly& cgp );
289 
290 void interpweights( Tensor7View itw,
291  const ArrayOfGridPosPoly& vgp,
292  const ArrayOfGridPosPoly& sgp,
293  const ArrayOfGridPosPoly& bgp,
294  const ArrayOfGridPosPoly& pgp,
295  const ArrayOfGridPosPoly& rgp,
296  const ArrayOfGridPosPoly& cgp );
297 
298 void interp( MatrixView ia,
299  ConstTensor3View itw,
300  ConstMatrixView a,
301  const ArrayOfGridPosPoly& rgp,
302  const ArrayOfGridPosPoly& cgp);
303 
304 void interp( Tensor3View ia,
305  ConstTensor4View itw,
306  ConstTensor3View a,
307  const ArrayOfGridPosPoly& pgp,
308  const ArrayOfGridPosPoly& rgp,
309  const ArrayOfGridPosPoly& cgp);
310 
311 void interp( Tensor4View ia,
312  ConstTensor5View itw,
313  ConstTensor4View a,
314  const ArrayOfGridPosPoly& bgp,
315  const ArrayOfGridPosPoly& pgp,
316  const ArrayOfGridPosPoly& rgp,
317  const ArrayOfGridPosPoly& cgp);
318 
319 void interp( Tensor5View ia,
320  ConstTensor6View itw,
321  ConstTensor5View a,
322  const ArrayOfGridPosPoly& sgp,
323  const ArrayOfGridPosPoly& bgp,
324  const ArrayOfGridPosPoly& pgp,
325  const ArrayOfGridPosPoly& rgp,
326  const ArrayOfGridPosPoly& cgp);
327 
328 void interp( Tensor6View ia,
329  ConstTensor7View itw,
330  ConstTensor6View a,
331  const ArrayOfGridPosPoly& vgp,
332  const ArrayOfGridPosPoly& sgp,
333  const ArrayOfGridPosPoly& bgp,
334  const ArrayOfGridPosPoly& pgp,
335  const ArrayOfGridPosPoly& rgp,
336  const ArrayOfGridPosPoly& cgp);
337 
338 
339 #endif // interpolation_poly_h
Tensor7View
The Tensor7View class.
Definition: matpackVII.h:779
MatrixView
The MatrixView class.
Definition: matpackI.h:668
interpweights
void interpweights(VectorView itw, const GridPosPoly &tc)
Red 1D interpolation weights.
Definition: interpolation_poly.cc:315
ConstTensor7View
A constant view of a Tensor7.
Definition: matpackVII.h:169
ArrayOfGridPosPoly
Array< GridPosPoly > ArrayOfGridPosPoly
An Array of grid positions.
Definition: interpolation_poly.h:78
interpolation.h
Header file for interpolation.cc.
operator<<
ostream & operator<<(ostream &os, const GridPosPoly &gp)
Output operator for GridPosPoly.
Definition: interpolation_poly.cc:279
ConstTensor4View
A constant view of a Tensor4.
Definition: matpackIV.h:149
matpackI.h
Tensor3View
The Tensor3View class.
Definition: matpackIII.h:234
Array< Index >
gridpos_poly
void gridpos_poly(ArrayOfGridPosPoly &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Index order, const Numeric &extpolfac=0.5)
Set up grid positions for higher order interpolation.
Definition: interpolation_poly.cc:124
interp
Numeric interp(ConstVectorView itw, ConstVectorView a, const GridPosPoly &tc)
Red 1D Interpolate.
Definition: interpolation_poly.cc:554
GridPosPoly
Structure to store a grid position for higher order interpolation.
Definition: interpolation_poly.h:64
VectorView
The VectorView class.
Definition: matpackI.h:373
GridPosPoly::idx
ArrayOfIndex idx
Definition: interpolation_poly.h:67
ConstTensor6View
A constant view of a Tensor6.
Definition: matpackVI.h:167
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
Tensor5View
The Tensor5View class.
Definition: matpackV.h:278
ConstMatrixView
A constant view of a Matrix.
Definition: matpackI.h:591
ConstTensor3View
A constant view of a Tensor3.
Definition: matpackIII.h:147
Tensor4View
The Tensor4View class.
Definition: matpackIV.h:245
GridPosPoly::w
Vector w
Definition: interpolation_poly.h:70
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
Vector
The Vector class.
Definition: matpackI.h:555
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:300
ConstTensor5View
A constant view of a Tensor5.
Definition: matpackV.h:160
Tensor6View
The Tensor6View class.
Definition: matpackVI.h:450