9#include <kernel/cubature/driver_base.hpp> 
   10#include <kernel/util/meta_math.hpp> 
   19      template<
typename Shape_>
 
   20      class TrapezoidalDriverBase :
 
   21        public DriverBase<Shape_>
 
   25        static constexpr bool variadic = 
false;
 
   47    template<
typename Shape_>
 
   53      public Intern::TrapezoidalDriverBase<Shape::Simplex<dim_> >
 
   56      static constexpr int num_points = dim_ + 1;
 
   70        for(
int i(0); i <= (dim_); ++i)
 
   76          for(
int j(0); j < (dim_); ++j)
 
   78            rule.get_coord(i,j) = (j+1) == i ? Coord_(1) : Coord_(0);
 
   87      public Intern::TrapezoidalDriverBase<Shape::Hypercube<dim_> >
 
   90      static constexpr int num_points = (1 << dim_); 
 
  104        for(
int i(0); i < (1 << dim_); ++i)
 
  107          rule.get_weight(i) = Weight_(1);
 
  110          for(
int j(0); j < (dim_); ++j)
 
  112            rule.get_coord(i,j) = Coord_(((i >> j) & 1) << 1) - Coord_(1);
 
Cubature Rule class template.
static void fill(Rule< Shape::Hypercube< dim_ >, Weight_, Coord_, Point_ > &rule)
Fills the cubature rule structure.
static void fill(Rule< Shape::Simplex< dim_ >, Weight_, Coord_, Point_ > &rule)
Fills the cubature rule structure.
Trapezoidal driver class template.
Hypercube shape tag struct template.
Simplex shape tag struct template.