8#ifndef model_QUADRATUREDYNAMIC_H_
9#define model_QUADRATUREDYNAMIC_H_
22 short unsigned int dim,
23 template <
short unsigned int,
size_t>
class QuadratureRule,
30 short unsigned int dim,
31 template <
short unsigned int,
size_t>
class QuadratureRule,
39 static const double&
weight(
const short unsigned int &
N,
40 const short unsigned int &
k)
45 throw std::runtime_error(
"k must be less than N");
52 const short unsigned int &
k)
58 throw std::runtime_error(
"k must be less than N");
64 template<
typename IntegrandType>
66 IntegrandType (*fp)(
const double&),
67 IntegrandType &intgrl)
80 template <
typename AnyClass,
typename IntegrandType,
typename ...Args>
82 const AnyClass*
const C, IntegrandType &intgrl,
83 IntegrandType (AnyClass::*mfp)(
const VectorDim&,
const Args&...)
const,
97 template <
typename AnyClass,
typename IntegrandType,
typename ...Args>
99 const AnyClass*
const C, IntegrandType &intgrl,
100 IntegrandType (AnyClass::*mfp)(
const int&,
const Args&... )
const,
113 template <
typename AnyClass,
typename ...Args>
114 static void execute(
const short unsigned int &
N,AnyClass*
const C,
115 void (AnyClass::*mfp)(
const VectorDim&,
const Args&...),
128 template <
typename AnyClass,
typename ...Args>
129 static void execute(
const short unsigned int &
N,AnyClass*
const C,
130 void (AnyClass::*mfp)(
const int&,
const Args&...),
175 short unsigned int dim,
176 template <
short unsigned int,
size_t>
class QuadratureRule,
185 short unsigned int dim,
186 template <
short unsigned int,
size_t>
class QuadratureRule,
193 static const double&
weight(
const short unsigned int &
N,
194 const short unsigned int &
k)
200 throw std::runtime_error(
"k must be less than N");
204 throw std::runtime_error(
"quadrature order N not found in QuadratureDynamic");
211 const short unsigned int &
k)
217 throw std::runtime_error(
"k must be less than N");
221 throw std::runtime_error(
"quadrature order N not found in QuadratureDynamic");
226 template<
typename IntegrandType>
228 IntegrandType (*fp)(
const double&),
229 IntegrandType &intgrl)
234 throw std::runtime_error(
"quadrature order N not found in QuadratureDynamic");
239 template <
typename AnyClass,
typename IntegrandType,
typename ...Args>
241 const AnyClass*
const C, IntegrandType &intgrl,
242 IntegrandType (AnyClass::*mfp)(
const VectorDim&,
const Args&...)
const,
248 throw std::runtime_error(
"quadrature order N not found in QuadratureDynamic");
253 template <
typename AnyClass,
typename IntegrandType,
typename ...Args>
255 const AnyClass*
const C, IntegrandType &intgrl,
256 IntegrandType (AnyClass::*mfp)(
const int&,
const Args&... )
const,
262 throw std::runtime_error(
"quadrature order N not found in QuadratureDynamic");
267 template <
typename AnyClass,
typename ...Args>
268 static void execute(
const short unsigned int &
N,AnyClass*
const C,
269 void (AnyClass::*mfp)(
const VectorDim&,
const Args&...),
275 throw std::runtime_error(
"quadrature order N not found in QuadratureDynamic");
280 template <
typename AnyClass,
typename ...Args>
281 static void execute(
const short unsigned int &
N,AnyClass*
const C,
282 void (AnyClass::*mfp)(
const int&,
const Args&...),
288 throw std::runtime_error(
"quadrature order N not found in QuadratureDynamic");
311 short unsigned int dim,
312 template <
short unsigned int,
size_t>
class QuadratureRule,
const std::set< int > QuadratureDynamic< dim, QuadratureRule, order, otherOrders... >::orderSet
static void integrate(const short unsigned int &N, const AnyClass *const C, IntegrandType &intgrl, IntegrandType(AnyClass::*mfp)(const int &, const Args &...) const, const Args &...args)
static void execute(const short unsigned int &N, AnyClass *const C, void(AnyClass::*mfp)(const VectorDim &, const Args &...), const Args &...args)
static void integrate(const short unsigned int &N, const AnyClass *const C, IntegrandType &intgrl, IntegrandType(AnyClass::*mfp)(const VectorDim &, const Args &...) const, const Args &...args)
static void execute(const short unsigned int &N, AnyClass *const C, void(AnyClass::*mfp)(const int &, const Args &...), const Args &...args)
static std::set< int > fillSet(std::set< int > &temp)
static int lowerOrder(const int &k)
static const double & weight(const short unsigned int &N, const short unsigned int &k)
static std::set< int > fillSet()
static const std::set< int > orderSet
static int lowerOrder(const double &d)
static void integrate(const short unsigned int &N, IntegrandType(*fp)(const double &), IntegrandType &intgrl)
VectorDimTypeSelector< dim, order >::VectorDim VectorDim
static const VectorDim abscissa(const short unsigned int &N, const short unsigned int &k)
static void execute(const short unsigned int &N, AnyClass *const C, void(AnyClass::*mfp)(const int &, const Args &...), const Args &...args)
static void integrate(const short unsigned int &N, const AnyClass *const C, IntegrandType &intgrl, IntegrandType(AnyClass::*mfp)(const VectorDim &, const Args &...) const, const Args &...args)
static void execute(const short unsigned int &N, AnyClass *const C, void(AnyClass::*mfp)(const VectorDim &, const Args &...), const Args &...args)
static std::set< int > fillSet(std::set< int > &temp)
static const VectorDim abscissa(const short unsigned int &N, const short unsigned int &k)
static const std::set< int > orderSet
static void integrate(const short unsigned int &N, IntegrandType(*fp)(const double &), IntegrandType &intgrl)
static const double & weight(const short unsigned int &N, const short unsigned int &k)
VectorDimTypeSelector< dim, order >::VectorDim VectorDim
static void integrate(const short unsigned int &N, const AnyClass *const C, IntegrandType &intgrl, IntegrandType(AnyClass::*mfp)(const int &, const Args &...) const, const Args &...args)
static std::set< int > fillSet()
static const VectorDim abscissa(const short unsigned int &k)
static const double & weight(const short unsigned int &k)
static void integrate(IntegrandType(*fp)(const double &), IntegrandType &intgrl)
static void execute(AnyClass *const C, void(AnyClass::*mfp)(const VectorDim &, const Args &...), const Args &...args)
Eigen::Matrix< double, dim, 1 > VectorDim