31 #ifndef SHARK_LINALG_BLAS_KERNELS_TRAITS_HPP 32 #define SHARK_LINALG_BLAS_KERNELS_TRAITS_HPP 34 #include "../detail/traits.hpp" 36 namespace shark {
namespace blas {
namespace bindings{
namespace traits {
41 typename V::difference_type stride(vector_expression<V>
const&v) {
46 typename pointer<V>::type storage(vector_expression<V>& v) {
50 typename pointer<V const>::type storage(vector_expression<V>
const& v) {
56 typename M::difference_type stride1(matrix_expression<M>
const& m) {
60 typename M::difference_type stride2(matrix_expression<M>
const& m) {
65 typename pointer<M>::type storage(matrix_expression<M>& m) {
69 typename pointer<M const>::type storage(matrix_expression<M>
const& m) {
74 typename M::difference_type leading_dimension(matrix_expression<M>
const& m) {
75 return M::orientation::index_M(stride1(m),stride2(m));
78 template<
class M1,
class M2>
79 bool same_orientation(matrix_expression<M1>
const& m1, matrix_expression<M2>
const& m2){
80 return boost::is_same<typename M1::orientation,typename M2::orientation>::value;