matrix_expression.hpp File Reference
#include "detail/expression_optimizers.hpp"
#include "kernels/matrix_fold.hpp"
#include "matrix_proxy.hpp"
#include "vector_proxy.hpp"
#include "vector_expression.hpp"

Go to the source code of this file.

Macros

#define REMORA_UNARY_MATRIX_TRANSFORMATION(name, F)
 
#define REMORA_BINARY_MATRIX_EXPRESSION(name, F)
 
#define REMORA_MATRIX_SCALAR_TRANSFORMATION(name, F)
 
#define REMORA_MATRIX_SCALAR_TRANSFORMATION_2(name, F)
 

Macro Definition Documentation

◆ REMORA_BINARY_MATRIX_EXPRESSION

#define REMORA_BINARY_MATRIX_EXPRESSION (   name,
 
)
Value:
template<class MatA, class MatB, class Device>\
matrix_binary<MatA, MatB, typename device_traits<Device>:: template F<typename common_value_type<MatA,MatB>::type> >\
name(matrix_expression<MatA, Device> const& m1, matrix_expression<MatB, Device> const& m2){\
REMORA_SIZE_CHECK(m1().size1() == m2().size1());\
REMORA_SIZE_CHECK(m1().size2() == m2().size2());\
typedef typename common_value_type<MatA,MatB>::type type;\
typedef typename device_traits<Device>:: template F<type> functor_type;\
return matrix_binary<MatA, MatB, functor_type >(m1(),m2(), functor_type());\
}

Definition at line 211 of file matrix_expression.hpp.

◆ REMORA_MATRIX_SCALAR_TRANSFORMATION

#define REMORA_MATRIX_SCALAR_TRANSFORMATION (   name,
 
)
Value:
template<class T, class MatA, class Device> \
typename std::enable_if< \
std::is_convertible<T, typename MatA::value_type >::value,\
matrix_binary<MatA, scalar_matrix<typename MatA::value_type,Device>,typename device_traits<Device>:: template F<typename MatA::value_type> > \
>::type \
name (matrix_expression<MatA, Device> const& m, T t){ \
typedef typename MatA::value_type type;\
typedef typename device_traits<Device>:: template F<type> functor_type;\
return matrix_binary<MatA, scalar_matrix<type,Device>, functor_type >(m(), scalar_matrix<type,Device>(m().size1(), m().size2(), t) ,functor_type()); \
}

Definition at line 230 of file matrix_expression.hpp.

◆ REMORA_MATRIX_SCALAR_TRANSFORMATION_2

#define REMORA_MATRIX_SCALAR_TRANSFORMATION_2 (   name,
 
)
Value:
template<class T, class MatA, class Device> \
typename std::enable_if< \
std::is_convertible<T, typename MatA::value_type >::value,\
matrix_binary<scalar_matrix< typename MatA::value_type,Device>, MatA, typename device_traits<Device>:: template F< typename MatA::value_type> > \
>::type \
name (T t, matrix_expression<MatA, Device> const& m){ \
typedef typename MatA::value_type type;\
typedef typename device_traits<Device>:: template F<type> functor_type;\
return matrix_binary<scalar_matrix<type,Device>, MatA, functor_type >(scalar_matrix<type,Device>(m().size1(), m().size2(), t), m(), functor_type()); \
}

Definition at line 254 of file matrix_expression.hpp.

◆ REMORA_UNARY_MATRIX_TRANSFORMATION

#define REMORA_UNARY_MATRIX_TRANSFORMATION (   name,
 
)
Value:
template<class MatA, class Device>\
matrix_unary<MatA,typename device_traits<Device>:: template F<typename MatA::value_type> >\
name(matrix_expression<MatA, Device> const& v){\
typedef typename device_traits<Device>:: template F<typename MatA::value_type> functor_type;\
return matrix_unary<MatA, functor_type >(v(), functor_type());\
}

Definition at line 114 of file matrix_expression.hpp.