ARTS  2.2.66
interpolation_poly.h
Go to the documentation of this file.
1 /* Copyright (C) 2012 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 void gridpos_poly_longitudinal(const String& error_msg,
96  ConstVectorView old_grid,
97  ConstVectorView new_grid,
98  const Index order,
99  const Numeric& extpolfac = 0.5);
100 
102  ConstVectorView old_grid,
103  ConstVectorView new_grid,
104  const Index order,
105  const Numeric& extpolfac = 0.5);
106 
107 
108 
109 
110 
112 // Red Interpolation
114 
115 void interpweights( VectorView itw,
116  const GridPosPoly& tc );
117 
118 void interpweights( VectorView itw,
119  const GridPosPoly& tr,
120  const GridPosPoly& tc );
121 
122 void interpweights( VectorView itw,
123  const GridPosPoly& tp,
124  const GridPosPoly& tr,
125  const GridPosPoly& tc );
126 
127 void interpweights( VectorView itw,
128  const GridPosPoly& tb,
129  const GridPosPoly& tp,
130  const GridPosPoly& tr,
131  const GridPosPoly& tc );
132 
133 void interpweights( VectorView itw,
134  const GridPosPoly& ts,
135  const GridPosPoly& tb,
136  const GridPosPoly& tp,
137  const GridPosPoly& tr,
138  const GridPosPoly& tc );
139 
140 void interpweights( VectorView itw,
141  const GridPosPoly& tv,
142  const GridPosPoly& ts,
143  const GridPosPoly& tb,
144  const GridPosPoly& tp,
145  const GridPosPoly& tr,
146  const GridPosPoly& tc );
147 
149  ConstVectorView a,
150  const GridPosPoly& tc );
151 
153  ConstMatrixView a,
154  const GridPosPoly& tr,
155  const GridPosPoly& tc );
156 
158  ConstTensor3View a,
159  const GridPosPoly& tp,
160  const GridPosPoly& tr,
161  const GridPosPoly& tc );
162 
164  ConstTensor4View a,
165  const GridPosPoly& tb,
166  const GridPosPoly& tp,
167  const GridPosPoly& tr,
168  const GridPosPoly& tc );
169 
171  ConstTensor5View a,
172  const GridPosPoly& ts,
173  const GridPosPoly& tb,
174  const GridPosPoly& tp,
175  const GridPosPoly& tr,
176  const GridPosPoly& tc );
177 
179  ConstTensor6View a,
180  const GridPosPoly& tv,
181  const GridPosPoly& ts,
182  const GridPosPoly& tb,
183  const GridPosPoly& tp,
184  const GridPosPoly& tr,
185  const GridPosPoly& tc );
186 
187 
188 
189 
190 
192 // Blue interpolation
194 
195 void interpweights( MatrixView itw,
196  const ArrayOfGridPosPoly& cgp );
197 
198 void interpweights( MatrixView itw,
199  const ArrayOfGridPosPoly& rgp,
200  const ArrayOfGridPosPoly& cgp );
201 
202 void interpweights( MatrixView itw,
203  const ArrayOfGridPosPoly& pgp,
204  const ArrayOfGridPosPoly& rgp,
205  const ArrayOfGridPosPoly& cgp );
206 
207 void interpweights( MatrixView itw,
208  const ArrayOfGridPosPoly& bgp,
209  const ArrayOfGridPosPoly& pgp,
210  const ArrayOfGridPosPoly& rgp,
211  const ArrayOfGridPosPoly& cgp );
212 
213 void interpweights( MatrixView itw,
214  const ArrayOfGridPosPoly& sgp,
215  const ArrayOfGridPosPoly& bgp,
216  const ArrayOfGridPosPoly& pgp,
217  const ArrayOfGridPosPoly& rgp,
218  const ArrayOfGridPosPoly& cgp );
219 
220 void interpweights( MatrixView itw,
221  const ArrayOfGridPosPoly& vgp,
222  const ArrayOfGridPosPoly& sgp,
223  const ArrayOfGridPosPoly& bgp,
224  const ArrayOfGridPosPoly& pgp,
225  const ArrayOfGridPosPoly& rgp,
226  const ArrayOfGridPosPoly& cgp );
227 
228 void interp( VectorView ia,
229  ConstMatrixView itw,
230  ConstVectorView a,
231  const ArrayOfGridPosPoly& cgp);
232 
233 void interp( VectorView ia,
234  ConstMatrixView itw,
235  ConstMatrixView a,
236  const ArrayOfGridPosPoly& rgp,
237  const ArrayOfGridPosPoly& cgp);
238 
239 void interp( VectorView ia,
240  ConstMatrixView itw,
241  ConstTensor3View a,
242  const ArrayOfGridPosPoly& pgp,
243  const ArrayOfGridPosPoly& rgp,
244  const ArrayOfGridPosPoly& cgp);
245 
246 void interp( VectorView ia,
247  ConstMatrixView itw,
248  ConstTensor4View a,
249  const ArrayOfGridPosPoly& bgp,
250  const ArrayOfGridPosPoly& pgp,
251  const ArrayOfGridPosPoly& rgp,
252  const ArrayOfGridPosPoly& cgp);
253 
254 void interp( VectorView ia,
255  ConstMatrixView itw,
256  ConstTensor5View a,
257  const ArrayOfGridPosPoly& sgp,
258  const ArrayOfGridPosPoly& bgp,
259  const ArrayOfGridPosPoly& pgp,
260  const ArrayOfGridPosPoly& rgp,
261  const ArrayOfGridPosPoly& cgp);
262 
263 void interp( VectorView ia,
264  ConstMatrixView itw,
265  ConstTensor6View a,
266  const ArrayOfGridPosPoly& vgp,
267  const ArrayOfGridPosPoly& sgp,
268  const ArrayOfGridPosPoly& bgp,
269  const ArrayOfGridPosPoly& pgp,
270  const ArrayOfGridPosPoly& rgp,
271  const ArrayOfGridPosPoly& cgp);
272 
273 
274 
275 
276 
278 // Green interpolation
280 
281 void interpweights( Tensor3View itw,
282  const ArrayOfGridPosPoly& rgp,
283  const ArrayOfGridPosPoly& cgp );
284 
285 void interpweights( Tensor4View itw,
286  const ArrayOfGridPosPoly& pgp,
287  const ArrayOfGridPosPoly& rgp,
288  const ArrayOfGridPosPoly& cgp );
289 
290 void interpweights( Tensor5View itw,
291  const ArrayOfGridPosPoly& bgp,
292  const ArrayOfGridPosPoly& pgp,
293  const ArrayOfGridPosPoly& rgp,
294  const ArrayOfGridPosPoly& cgp );
295 
296 void interpweights( Tensor6View itw,
297  const ArrayOfGridPosPoly& sgp,
298  const ArrayOfGridPosPoly& bgp,
299  const ArrayOfGridPosPoly& pgp,
300  const ArrayOfGridPosPoly& rgp,
301  const ArrayOfGridPosPoly& cgp );
302 
303 void interpweights( Tensor7View itw,
304  const ArrayOfGridPosPoly& vgp,
305  const ArrayOfGridPosPoly& sgp,
306  const ArrayOfGridPosPoly& bgp,
307  const ArrayOfGridPosPoly& pgp,
308  const ArrayOfGridPosPoly& rgp,
309  const ArrayOfGridPosPoly& cgp );
310 
311 void interp( MatrixView ia,
312  ConstTensor3View itw,
313  ConstMatrixView a,
314  const ArrayOfGridPosPoly& rgp,
315  const ArrayOfGridPosPoly& cgp);
316 
317 void interp( Tensor3View ia,
318  ConstTensor4View itw,
319  ConstTensor3View a,
320  const ArrayOfGridPosPoly& pgp,
321  const ArrayOfGridPosPoly& rgp,
322  const ArrayOfGridPosPoly& cgp);
323 
324 void interp( Tensor4View ia,
325  ConstTensor5View itw,
326  ConstTensor4View a,
327  const ArrayOfGridPosPoly& bgp,
328  const ArrayOfGridPosPoly& pgp,
329  const ArrayOfGridPosPoly& rgp,
330  const ArrayOfGridPosPoly& cgp);
331 
332 void interp( Tensor5View ia,
333  ConstTensor6View itw,
334  ConstTensor5View a,
335  const ArrayOfGridPosPoly& sgp,
336  const ArrayOfGridPosPoly& bgp,
337  const ArrayOfGridPosPoly& pgp,
338  const ArrayOfGridPosPoly& rgp,
339  const ArrayOfGridPosPoly& cgp);
340 
341 void interp( Tensor6View ia,
342  ConstTensor7View itw,
343  ConstTensor6View a,
344  const ArrayOfGridPosPoly& vgp,
345  const ArrayOfGridPosPoly& sgp,
346  const ArrayOfGridPosPoly& bgp,
347  const ArrayOfGridPosPoly& pgp,
348  const ArrayOfGridPosPoly& rgp,
349  const ArrayOfGridPosPoly& cgp);
350 
351 
352 #endif // interpolation_poly_h
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:35
The VectorView class.
Definition: matpackI.h:372
The Tensor4View class.
Definition: matpackIV.h:243
A constant view of a Tensor7.
Definition: matpackVII.h:162
The Tensor7View class.
Definition: matpackVII.h:780
void gridpos_poly_longitudinal(const String &error_msg, ArrayOfGridPosPoly &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Index order, const Numeric &extpolfac=0.5)
Set up grid positions for higher order interpolation on longitudes.
The Vector class.
Definition: matpackI.h:556
The MatrixView class.
Definition: matpackI.h:679
A constant view of a Tensor6.
Definition: matpackVI.h:159
The Tensor6View class.
Definition: matpackVI.h:449
Numeric interp(ConstVectorView itw, ConstVectorView a, const GridPosPoly &tc)
Red 1D Interpolate.
Header file for interpolation.cc.
ostream & operator<<(ostream &os, const GridPosPoly &gp)
Output operator for GridPosPoly.
A constant view of a Tensor4.
Definition: matpackIV.h:141
The implementation for String, the ARTS string class.
Definition: mystring.h:63
The Tensor3View class.
Definition: matpackIII.h:232
ArrayOfIndex idx
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.
A constant view of a Tensor5.
Definition: matpackV.h:152
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:29
The Tensor5View class.
Definition: matpackV.h:276
A constant view of a Tensor3.
Definition: matpackIII.h:139
A constant view of a Vector.
Definition: matpackI.h:292
A constant view of a Matrix.
Definition: matpackI.h:596
Structure to store a grid position for higher order interpolation.
void gridpos_poly_cyclic_longitudinal(ArrayOfGridPosPoly &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Index order, const Numeric &extpolfac=0.5)
Set up grid positions for higher order interpolation.
void interpweights(VectorView itw, const GridPosPoly &tc)
Red 1D interpolation weights.
Array< GridPosPoly > ArrayOfGridPosPoly
An Array of grid positions.