42 #if defined(HAVE_CXX0X) || defined(HAVE_CXX11)
90 template <
class Module>
91 struct linalg_traits : 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
116 #ifndef SET_GLOBAL_BACKEND
117 #define SET_GLOBAL_BACKEND(BACKEND) \
118 SET_MODULE_BACKEND(Core, BACKEND) \
119 SET_MODULE_BACKEND(Redux, BACKEND) \
120 SET_MODULE_BACKEND(Linsolver, BACKEND) \
121 SET_MODULE_BACKEND(Eigsolver, BACKEND)
122 #endif // SET_GLOBAL_BACKEND
126 SET_GLOBAL_BACKEND(EIGEN3)
128 SET_GLOBAL_BACKEND(VIENNACL)
134 #ifdef USE_EIGEN3_CORE
135 SET_MODULE_BACKEND(Core, EIGEN3)
136 #elif USE_VIENNACL_CORE
137 SET_MODULE_BACKEND(Core, VIENNACL)
138 #else // the default case
139 SET_MODULE_BACKEND(Core, DEFAULT)
143 #ifdef USE_EIGEN3_REDUX
144 SET_MODULE_BACKEND(Redux, EIGEN3)
145 #elif USE_VIENNACL_REDUX
146 SET_MODULE_BACKEND(Redux, VIENNACL)
147 #else // the default case
148 SET_MODULE_BACKEND(Redux, DEFAULT)
152 #ifdef USE_EIGEN3_LINSLV
153 SET_MODULE_BACKEND(Linsolver, EIGEN3)
154 #elif USE_VIENNACL_LINSLV
155 SET_MODULE_BACKEND(Linsolver, VIENNACL)
156 #else // the default case
157 SET_MODULE_BACKEND(Linsolver, DEFAULT)
161 #ifdef USE_EIGEN3_EIGSLV
162 SET_MODULE_BACKEND(Eigsolver, EIGEN3)
163 #elif USE_VIENNACL_EIGSLV
164 SET_MODULE_BACKEND(Eigsolver, VIENNACL)
165 #else // the default case
166 SET_MODULE_BACKEND(Eigsolver, DEFAULT)
169 #endif // end of global settings
171 #undef SET_GLOBAL_BACKEND
172 #undef SET_MODULE_BACKEND
174 #endif // DOXYGEN_SHOULD_SKIP_THIS
190 #endif // defined(HAVE_CXX0X) || defined(HAVE_CXX11)
all of classes and functions are contained in the shogun namespace