00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00026 #ifndef interpolation_poly_h
00027 #define interpolation_poly_h
00028
00029 #include "matpackI.h"
00030 #include "interpolation.h"
00031
00033
00064 struct GridPosPoly {
00067 ArrayOfIndex idx;
00070 Vector w;
00071 };
00072
00074
00078 typedef Array<GridPosPoly> ArrayOfGridPosPoly;
00079
00080 ostream& operator<<(ostream& os, const GridPosPoly& gp);
00081
00082 void gridpos_poly(ArrayOfGridPosPoly& gp,
00083 ConstVectorView old_grid,
00084 ConstVectorView new_grid,
00085 const Index order,
00086 const Numeric& extpolfac = 0.5);
00087
00088 void gridpos_poly(GridPosPoly& gp,
00089 ConstVectorView old_grid,
00090 const Numeric& new_grid,
00091 const Index order,
00092 const Numeric& extpolfac = 0.5);
00093
00094
00095
00096
00097
00099
00101
00102 void interpweights( VectorView itw,
00103 const GridPosPoly& tc );
00104
00105 void interpweights( VectorView itw,
00106 const GridPosPoly& tr,
00107 const GridPosPoly& tc );
00108
00109 void interpweights( VectorView itw,
00110 const GridPosPoly& tp,
00111 const GridPosPoly& tr,
00112 const GridPosPoly& tc );
00113
00114 void interpweights( VectorView itw,
00115 const GridPosPoly& tb,
00116 const GridPosPoly& tp,
00117 const GridPosPoly& tr,
00118 const GridPosPoly& tc );
00119
00120 void interpweights( VectorView itw,
00121 const GridPosPoly& ts,
00122 const GridPosPoly& tb,
00123 const GridPosPoly& tp,
00124 const GridPosPoly& tr,
00125 const GridPosPoly& tc );
00126
00127 void interpweights( VectorView itw,
00128 const GridPosPoly& tv,
00129 const GridPosPoly& ts,
00130 const GridPosPoly& tb,
00131 const GridPosPoly& tp,
00132 const GridPosPoly& tr,
00133 const GridPosPoly& tc );
00134
00135 Numeric interp( ConstVectorView itw,
00136 ConstVectorView a,
00137 const GridPosPoly& tc );
00138
00139 Numeric interp( ConstVectorView itw,
00140 ConstMatrixView a,
00141 const GridPosPoly& tr,
00142 const GridPosPoly& tc );
00143
00144 Numeric interp( ConstVectorView itw,
00145 ConstTensor3View a,
00146 const GridPosPoly& tp,
00147 const GridPosPoly& tr,
00148 const GridPosPoly& tc );
00149
00150 Numeric interp( ConstVectorView itw,
00151 ConstTensor4View a,
00152 const GridPosPoly& tb,
00153 const GridPosPoly& tp,
00154 const GridPosPoly& tr,
00155 const GridPosPoly& tc );
00156
00157 Numeric interp( ConstVectorView itw,
00158 ConstTensor5View a,
00159 const GridPosPoly& ts,
00160 const GridPosPoly& tb,
00161 const GridPosPoly& tp,
00162 const GridPosPoly& tr,
00163 const GridPosPoly& tc );
00164
00165 Numeric interp( ConstVectorView itw,
00166 ConstTensor6View a,
00167 const GridPosPoly& tv,
00168 const GridPosPoly& ts,
00169 const GridPosPoly& tb,
00170 const GridPosPoly& tp,
00171 const GridPosPoly& tr,
00172 const GridPosPoly& tc );
00173
00174
00175
00176
00177
00179
00181
00182 void interpweights( MatrixView itw,
00183 const ArrayOfGridPosPoly& cgp );
00184
00185 void interpweights( MatrixView itw,
00186 const ArrayOfGridPosPoly& rgp,
00187 const ArrayOfGridPosPoly& cgp );
00188
00189 void interpweights( MatrixView itw,
00190 const ArrayOfGridPosPoly& pgp,
00191 const ArrayOfGridPosPoly& rgp,
00192 const ArrayOfGridPosPoly& cgp );
00193
00194 void interpweights( MatrixView itw,
00195 const ArrayOfGridPosPoly& bgp,
00196 const ArrayOfGridPosPoly& pgp,
00197 const ArrayOfGridPosPoly& rgp,
00198 const ArrayOfGridPosPoly& cgp );
00199
00200 void interpweights( MatrixView itw,
00201 const ArrayOfGridPosPoly& sgp,
00202 const ArrayOfGridPosPoly& bgp,
00203 const ArrayOfGridPosPoly& pgp,
00204 const ArrayOfGridPosPoly& rgp,
00205 const ArrayOfGridPosPoly& cgp );
00206
00207 void interpweights( MatrixView itw,
00208 const ArrayOfGridPosPoly& vgp,
00209 const ArrayOfGridPosPoly& sgp,
00210 const ArrayOfGridPosPoly& bgp,
00211 const ArrayOfGridPosPoly& pgp,
00212 const ArrayOfGridPosPoly& rgp,
00213 const ArrayOfGridPosPoly& cgp );
00214
00215 void interp( VectorView ia,
00216 ConstMatrixView itw,
00217 ConstVectorView a,
00218 const ArrayOfGridPosPoly& cgp);
00219
00220 void interp( VectorView ia,
00221 ConstMatrixView itw,
00222 ConstMatrixView a,
00223 const ArrayOfGridPosPoly& rgp,
00224 const ArrayOfGridPosPoly& cgp);
00225
00226 void interp( VectorView ia,
00227 ConstMatrixView itw,
00228 ConstTensor3View a,
00229 const ArrayOfGridPosPoly& pgp,
00230 const ArrayOfGridPosPoly& rgp,
00231 const ArrayOfGridPosPoly& cgp);
00232
00233 void interp( VectorView ia,
00234 ConstMatrixView itw,
00235 ConstTensor4View a,
00236 const ArrayOfGridPosPoly& bgp,
00237 const ArrayOfGridPosPoly& pgp,
00238 const ArrayOfGridPosPoly& rgp,
00239 const ArrayOfGridPosPoly& cgp);
00240
00241 void interp( VectorView ia,
00242 ConstMatrixView itw,
00243 ConstTensor5View a,
00244 const ArrayOfGridPosPoly& sgp,
00245 const ArrayOfGridPosPoly& bgp,
00246 const ArrayOfGridPosPoly& pgp,
00247 const ArrayOfGridPosPoly& rgp,
00248 const ArrayOfGridPosPoly& cgp);
00249
00250 void interp( VectorView ia,
00251 ConstMatrixView itw,
00252 ConstTensor6View a,
00253 const ArrayOfGridPosPoly& vgp,
00254 const ArrayOfGridPosPoly& sgp,
00255 const ArrayOfGridPosPoly& bgp,
00256 const ArrayOfGridPosPoly& pgp,
00257 const ArrayOfGridPosPoly& rgp,
00258 const ArrayOfGridPosPoly& cgp);
00259
00260
00261
00262
00263
00265
00267
00268 void interpweights( Tensor3View itw,
00269 const ArrayOfGridPosPoly& rgp,
00270 const ArrayOfGridPosPoly& cgp );
00271
00272 void interpweights( Tensor4View itw,
00273 const ArrayOfGridPosPoly& pgp,
00274 const ArrayOfGridPosPoly& rgp,
00275 const ArrayOfGridPosPoly& cgp );
00276
00277 void interpweights( Tensor5View itw,
00278 const ArrayOfGridPosPoly& bgp,
00279 const ArrayOfGridPosPoly& pgp,
00280 const ArrayOfGridPosPoly& rgp,
00281 const ArrayOfGridPosPoly& cgp );
00282
00283 void interpweights( Tensor6View itw,
00284 const ArrayOfGridPosPoly& sgp,
00285 const ArrayOfGridPosPoly& bgp,
00286 const ArrayOfGridPosPoly& pgp,
00287 const ArrayOfGridPosPoly& rgp,
00288 const ArrayOfGridPosPoly& cgp );
00289
00290 void interpweights( Tensor7View itw,
00291 const ArrayOfGridPosPoly& vgp,
00292 const ArrayOfGridPosPoly& sgp,
00293 const ArrayOfGridPosPoly& bgp,
00294 const ArrayOfGridPosPoly& pgp,
00295 const ArrayOfGridPosPoly& rgp,
00296 const ArrayOfGridPosPoly& cgp );
00297
00298 void interp( MatrixView ia,
00299 ConstTensor3View itw,
00300 ConstMatrixView a,
00301 const ArrayOfGridPosPoly& rgp,
00302 const ArrayOfGridPosPoly& cgp);
00303
00304 void interp( Tensor3View ia,
00305 ConstTensor4View itw,
00306 ConstTensor3View a,
00307 const ArrayOfGridPosPoly& pgp,
00308 const ArrayOfGridPosPoly& rgp,
00309 const ArrayOfGridPosPoly& cgp);
00310
00311 void interp( Tensor4View ia,
00312 ConstTensor5View itw,
00313 ConstTensor4View a,
00314 const ArrayOfGridPosPoly& bgp,
00315 const ArrayOfGridPosPoly& pgp,
00316 const ArrayOfGridPosPoly& rgp,
00317 const ArrayOfGridPosPoly& cgp);
00318
00319 void interp( Tensor5View ia,
00320 ConstTensor6View itw,
00321 ConstTensor5View a,
00322 const ArrayOfGridPosPoly& sgp,
00323 const ArrayOfGridPosPoly& bgp,
00324 const ArrayOfGridPosPoly& pgp,
00325 const ArrayOfGridPosPoly& rgp,
00326 const ArrayOfGridPosPoly& cgp);
00327
00328 void interp( Tensor6View ia,
00329 ConstTensor7View itw,
00330 ConstTensor6View a,
00331 const ArrayOfGridPosPoly& vgp,
00332 const ArrayOfGridPosPoly& sgp,
00333 const ArrayOfGridPosPoly& bgp,
00334 const ArrayOfGridPosPoly& pgp,
00335 const ArrayOfGridPosPoly& rgp,
00336 const ArrayOfGridPosPoly& cgp);
00337
00338
00339 #endif // interpolation_poly_h