31 #ifndef REMORA_KERNELS_CBLAS_CBLAS_INC_HPP 32 #define REMORA_KERNELS_CBLAS_CBLAS_INC_HPP 36 #ifdef __ASSERTMACROS__ //is AssertMacros already included? 39 #if __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 40 #warning "AssertMacros.h already included by some file. Disabling macros as otherwise compilation will fail" 56 #define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 60 #include <boost/intrusive/list.hpp> 64 #include <Accelerate/Accelerate.h> 80 #include "../../detail/traits.hpp" 82 namespace remora {
namespace bindings {
84 template <
typename Ord>
struct storage_order {};
85 template<>
struct storage_order<row_major> {
86 enum ename { value = CblasRowMajor };
88 template<>
struct storage_order<column_major> {
89 enum ename { value = CblasColMajor };
93 struct allowed_cblas_type{
94 typedef std::false_type type;
98 struct allowed_cblas_type<float>{
99 typedef std::true_type type;
102 struct allowed_cblas_type<double>{
103 typedef std::true_type type;
106 struct allowed_cblas_type<
std::complex<float> >{
107 typedef std::true_type type;
110 struct allowed_cblas_type<
std::complex<double> >{
111 typedef std::true_type type;
116 #ifndef OPENBLAS_CONST 117 typedef void cblas_float_complex_type;
118 typedef void cblas_double_complex_type;
120 typedef float cblas_float_complex_type;
121 typedef double cblas_double_complex_type;