6#ifndef __FIBER_ARRAY_INTERPOLATE_HPP
7#define __FIBER_ARRAY_INTERPOLATE_HPP "Created 3.07.2004 21:42:21 by bzfbenge"
12#include "MultiArray.hpp"
13#include "IpolDelimiter.hpp"
30template <
class T,
class Interpol1D,
bool Derive=false>
34 template <
class Storage1D,
class Limiter>
38 return Interpol1D::interpolate(
Data,t,
size,
L);
46template <
class T,
class Interpol1D>
50 template <
class Storage1D,
class Limiter>
53 return Interpol1D::derivative(
Data,t,
size,
L);
61template <
int N,
class Type,
class Interpol,
class CoordinateType =
double,
73template <
class Type,
class Interpol,
class CoordinateType,
class Delimiter,
int DerivativeDimension>
78 typedef Type value_type;
105 interpolate(M, Point[0], M.Size()[0] , myDelimiter );
106 cout <<
"Interpolate<1D> at " << Point <<
" yields " << T <<
endl;
110 interpolate(M, Point[0], M.Size()[0] , myDelimiter );
116 return M.Size().maxidx();
125 interpolate(M, Point[0], M.Size()[0] , myDelimiter );
133template <
class Type,
class Interpol,
class CoordinateType,
class Delimiter,
int DerivativeDimension>
138 typedef Type value_type;
141 typedef typename MultiArray_t::SliceStorage_t SliceStorage_t;
170 cout <<
"Interpolate2D<" <<
typeid(
Interpol).name() <<
"> at " << Point <<
" yields " << T <<
endl;
190 interpolate(*
this, Point[1], M.Size()[1], myDelimiter );
275template <
int N,
class Type,
class Interpol,
class CoordinateType,
281 typedef Type value_type;
283 typedef typename MultiArray_t::Hyperslab_t SliceStorage_t;
316 : M(m), Point(
point.vec() )
325 Interpolate(
const MultiArray_t&m,
327 const Delimiter&myDeli)
328 : M(m), Point(
point.vec() ), myDelimiter(myDeli)
355 return M.Size()[N-1];
361 return IpolDerivative<Type, Interpol, N-1==DerivativeDimension>::
362 interpolate(*
this, Point[N-1], M.Size()[N-1], myDelimiter );
365 Type operator()()
const
valarray< size_t > size() const
basic_ostream< _CharT, _Traits > & endl(basic_ostream< _CharT, _Traits > &__os)
Vectorized vector.
Definition VVector.hpp:288
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Internal intermediate template which computes a one-dimensionally interpolated value,...
Definition Interpolate.hpp:32
Information per time slice, mainly a set of Grid objects that are accessed via GridID objects.
Definition Slice.hpp:36
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
IndexTypeConfig< sizeof(void *)>::index_t index_t
Define the index type as according to the size of a pointer, i.e.
Definition Index.hpp:22
The interpolator template.
Definition Interpolate.hpp:278
Type operator[](index_t i) const
Perform an interpolation along the dimension, i.e.
Definition Interpolate.hpp:337
Interpolate(const MultiArray_t &m, const Point_t &point)
Basic constructor.
Definition Interpolate.hpp:304
Interpolate(const MultiArray_t &m, const Eagle::VVector< N, CoordinateType > &point)
Convenience constructor which takes a vvectorized coordinate point.
Definition Interpolate.hpp:314