|
|
Go to the documentation of this file. 1 #ifndef NPSTAT_STORABLEINTERPOLATIONFUNCTOR_HH_
2 #define NPSTAT_STORABLEINTERPOLATIONFUNCTOR_HH_
24 template <
class Numeric,
class Axis = UniformAxis,
class Converter = Same<Numeric> >
26 template <
typename Num2,
typename Axis2,
typename Conv2>
44 template <
class Num2,
class Conv2>
55 const std::vector<std::pair<bool, bool> >& interpolationType,
56 const char* functionLabel =
nullptr)
68 const char* functionLabel =
nullptr)
80 const char* functionLabel =
nullptr)
96 const char* functionLabel =
nullptr)
99 xAxis, leftX, rightX,
yAxis, leftY, rightY,
zAxis, leftZ, rightZ, tAxis, leftT, rightT, functionLabel) {}
116 const char* functionLabel =
nullptr)
159 gs::ClassId
classId()
const override {
return gs::ClassId(*
this); }
160 bool write(std::ostream& of)
const override;
165 static inline unsigned version() {
return 1; }
184 #include "Alignment/Geners/interface/binaryIO.hh"
185 #include "Alignment/Geners/interface/CPP11_auto_ptr.hh"
186 #include "Alignment/Geners/interface/IOException.hh"
189 template <
typename Numeric,
class Axis,
class Converter>
191 static const std::string myClass(gs::template_class_name<Numeric, Axis>(
"npstat::StorableInterpolationFunctor"));
192 return myClass.c_str();
195 template <
typename Numeric,
class Axis,
class Converter>
201 template <
typename Numeric,
class Axis,
class Converter>
203 const gs::ClassId&
id, std::istream&
in) {
205 current.ensureSameId(
id);
208 gs::read_pod(
in, &descr);
209 gs::ClassId tabid(
in, 1);
211 throw gs::IOReadFailure(
212 "In npstat::StorableInterpolationFunctor::read: "
213 "input stream failure");
219 #endif // NPSTAT_STORABLEINTERPOLATIONFUNCTOR_HH_
LinInterpolatedTableND< Numeric, Axis > Table
StorableInterpolationFunctor(const Axis &xAxis, bool leftX, bool rightX, const Axis &yAxis, bool leftY, bool rightY, const char *functionLabel=nullptr)
static unsigned version()
StorableInterpolationFunctor(const LinInterpolatedTableND< Num2, Axis > &table, const std::string &descr)
ArrayND< Numeric > & table()
static HepMC::IO_HEPEVT conv
StorableInterpolationFunctor(const Axis &xAxis, bool leftX, bool rightX, const Axis &yAxis, bool leftY, bool rightY, const Axis &zAxis, bool leftZ, bool rightZ, const char *functionLabel=nullptr)
const std::string & description() const
const ArrayND< Numeric > & table() const
const ArrayND< Numeric > & table() const
StorableInterpolationFunctor()=delete
Multilinear interpolation/extrapolation on rectangular grids.
StorableInterpolationFunctor(const Axis &xAxis, bool leftX, bool rightX, const char *functionLabel=nullptr)
Interface definitions and concrete simple functors for a variety of functor-based calculations.
void setConverter(const Converter &conv)
gs::ClassId classId() const override
StorableInterpolationFunctor(const Axis &xAxis, bool leftX, bool rightX, const Axis &yAxis, bool leftY, bool rightY, const Axis &zAxis, bool leftZ, bool rightZ, const Axis &tAxis, bool leftT, bool rightT, const Axis &vAxis, bool leftV, bool rightV, const char *functionLabel=nullptr)
const Table & interpolator() const
StorableInterpolationFunctor(const std::vector< Axis > &axes, const std::vector< std::pair< bool, bool > > &interpolationType, const char *functionLabel=nullptr)
bool isEqual(const StorableMultivariateFunctor &other) const override
StorableInterpolationFunctor(const LinInterpolatedTableND< Num2, Axis > &table)
static StorableInterpolationFunctor * read(const gs::ClassId &id, std::istream &in)
StorableInterpolationFunctor(const Axis &xAxis, bool leftX, bool rightX, const Axis &yAxis, bool leftY, bool rightY, const Axis &zAxis, bool leftZ, bool rightZ, const Axis &tAxis, bool leftT, bool rightT, const char *functionLabel=nullptr)
bool write(std::ostream &of) const override
Interface definition for storable multivariate functors.
~StorableInterpolationFunctor() override
StorableInterpolationFunctor(const StorableInterpolationFunctor< Num2, Axis, Conv2 > &tab)
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
static const char * classname()
double operator()(const double *point, unsigned dim) const override
unsigned minDim() const override