31#ifndef REMORA_KERNELS_CBLAS_CBLAS_INC_HPP
32#define REMORA_KERNELS_CBLAS_CBLAS_INC_HPP
36#ifdef __ASSERTMACROS__
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"
82namespace remora {
namespace bindings {
84template <
typename Ord>
struct storage_order {};
85template<>
struct storage_order<row_major> {
86 enum ename { value = CblasRowMajor };
88template<>
struct storage_order<column_major> {
89 enum ename { value = CblasColMajor };
93struct allowed_cblas_type{
94 typedef std::false_type type;
98struct allowed_cblas_type<float>{
99 typedef std::true_type type;
102struct allowed_cblas_type<double>{
103 typedef std::true_type type;
106struct allowed_cblas_type<std::complex<float> >{
107 typedef std::true_type type;
110struct allowed_cblas_type<std::complex<double> >{
111 typedef std::true_type type;
116#ifndef OPENBLAS_CONST
117typedef void cblas_float_complex_type;
118typedef void cblas_double_complex_type;
120typedef float cblas_float_complex_type;
121typedef double cblas_double_complex_type;