9#include <kernel/cubature/scalar/driver_factory.hpp>
10#include <kernel/cubature/scalar/gauss_legendre_driver.hpp>
11#include <kernel/cubature/scalar/gauss_lobatto_driver.hpp>
12#include <kernel/cubature/scalar/maclaurin_driver.hpp>
13#include <kernel/cubature/scalar/midpoint_driver.hpp>
14#include <kernel/cubature/scalar/newton_cotes_closed_driver.hpp>
15#include <kernel/cubature/scalar/newton_cotes_open_driver.hpp>
16#include <kernel/cubature/scalar/trapezoidal_driver.hpp>
32 template<
typename Functor_>
33 static void _driver_list(Functor_& functor)
38 functor.template driver<GaussLegendreDriver>();
39 functor.template driver<GaussLobattoDriver>();
40 functor.template driver<MaclaurinDriver>();
41 functor.template driver<MidpointDriver>();
42 functor.template driver<NewtonCotesClosedDriver>();
43 functor.template driver<NewtonCotesOpenDriver>();
44 functor.template driver<TrapezoidalDriver>();
49 template<
typename Functor_>
50 static void _factory_list(Functor_& )
60 template<
typename Functor_>
61 static void driver(Functor_& functor)
64 _driver_list(functor);
67 template<
typename Functor_>
68 static void factory(Functor_& functor)
71 _factory_list(functor);
74 DriverFactoryFunctor<Functor_> driver_functor(functor);
75 driver(driver_functor);
80 template<
typename Functor_>
81 class DriverFactoryFunctor
87 explicit DriverFactoryFunctor(Functor_& functor) :
92 template<
typename Driver_>
95 _functor.template factory< DriverFactory<Driver_> >();
Scalar Cubature Factory Wrapper class template.