35 #include <shogun/lib/config.h> 39 #include <viennacl/matrix.hpp> 40 #include <viennacl/linalg/vector_operations.hpp> 90 template <
class Module>
95 #ifndef DOXYGEN_SHOULD_SKIP_THIS 100 #ifndef SET_MODULE_BACKEND 101 #define SET_MODULE_BACKEND(MODULE, BACKEND) \ 104 const static Backend backend = Backend::BACKEND; \ 106 #endif // SET_MODULE_BACKEND 115 #ifndef SET_GLOBAL_BACKEND 116 #define SET_GLOBAL_BACKEND(BACKEND) \ 117 SET_MODULE_BACKEND(Linsolver, BACKEND) \ 118 SET_MODULE_BACKEND(Eigsolver, BACKEND) 119 #endif // SET_GLOBAL_BACKEND 122 #ifdef USE_EIGEN3_GLOBAL 123 SET_GLOBAL_BACKEND(
EIGEN3)
124 #elif USE_VIENNACL_GLOBAL 125 SET_GLOBAL_BACKEND(VIENNACL)
131 #ifdef USE_EIGEN3_LINSLV 132 SET_MODULE_BACKEND(Linsolver,
EIGEN3)
133 #elif USE_VIENNACL_LINSLV 134 SET_MODULE_BACKEND(Linsolver, VIENNACL)
135 #else // the default case 136 SET_MODULE_BACKEND(Linsolver,
DEFAULT)
140 #ifdef USE_EIGEN3_EIGSLV 141 SET_MODULE_BACKEND(Eigsolver,
EIGEN3)
142 #elif USE_VIENNACL_EIGSLV 143 SET_MODULE_BACKEND(Eigsolver, VIENNACL)
144 #else // the default case 145 SET_MODULE_BACKEND(Eigsolver,
DEFAULT)
148 #endif // end of global settings 150 #undef SET_GLOBAL_BACKEND 151 #undef SET_MODULE_BACKEND 153 #endif // DOXYGEN_SHOULD_SKIP_THIS
Backend
All currently supported linear algebra backend libraries, with a default backend, which will be used ...
General purpose linalg_traits for compile time information about backends set per module (see below)...
all of classes and functions are contained in the shogun namespace