42 #if defined(HAVE_CXX0X) || defined(HAVE_CXX11)
93 template <
class Module>
94 struct linalg_traits : Module
98 #ifndef DOXYGEN_SHOULD_SKIP_THIS
103 #ifndef SET_MODULE_BACKEND
104 #define SET_MODULE_BACKEND(MODULE, BACKEND) \
107 const static Backend backend = Backend::BACKEND; \
109 #endif // SET_MODULE_BACKEND
119 #ifndef SET_GLOBAL_BACKEND
120 #define SET_GLOBAL_BACKEND(BACKEND) \
121 SET_MODULE_BACKEND(Core, BACKEND) \
122 SET_MODULE_BACKEND(Redux, BACKEND) \
123 SET_MODULE_BACKEND(Linsolver, BACKEND) \
124 SET_MODULE_BACKEND(Eigsolver, BACKEND)
125 #endif // SET_GLOBAL_BACKEND
129 SET_GLOBAL_BACKEND(EIGEN3)
131 SET_GLOBAL_BACKEND(VIENNACL)
137 #ifdef USE_EIGEN3_CORE
138 SET_MODULE_BACKEND(Core, EIGEN3)
139 #elif USE_VIENNACL_CORE
140 SET_MODULE_BACKEND(Core, VIENNACL)
141 #else // the default case
142 SET_MODULE_BACKEND(Core, DEFAULT)
146 #ifdef USE_EIGEN3_REDUX
147 SET_MODULE_BACKEND(Redux, EIGEN3)
148 #elif USE_VIENNACL_REDUX
149 SET_MODULE_BACKEND(Redux, VIENNACL)
150 #else // the default case
151 SET_MODULE_BACKEND(Redux, DEFAULT)
155 #ifdef USE_EIGEN3_LINSLV
156 SET_MODULE_BACKEND(Linsolver, EIGEN3)
157 #elif USE_VIENNACL_LINSLV
158 SET_MODULE_BACKEND(Linsolver, VIENNACL)
159 #else // the default case
160 SET_MODULE_BACKEND(Linsolver, DEFAULT)
164 #ifdef USE_EIGEN3_EIGSLV
165 SET_MODULE_BACKEND(Eigsolver, EIGEN3)
166 #elif USE_VIENNACL_EIGSLV
167 SET_MODULE_BACKEND(Eigsolver, VIENNACL)
168 #else // the default case
169 SET_MODULE_BACKEND(Eigsolver, DEFAULT)
172 #endif // end of global settings
174 #undef SET_GLOBAL_BACKEND
175 #undef SET_MODULE_BACKEND
177 #endif // DOXYGEN_SHOULD_SKIP_THIS
193 #endif // defined(HAVE_CXX0X) || defined(HAVE_CXX11)
all of classes and functions are contained in the shogun namespace