31 #ifndef REMORA_KERNELS_TRSV_HPP 32 #define REMORA_KERNELS_TRSV_HPP 34 #include <type_traits> 35 #ifdef REMORA_USE_CBLAS 40 namespace remora {
namespace bindings{
41 template<
class M1,
class M2>
42 struct has_optimized_trsv
43 :
public std::false_type{};
49 namespace remora{
namespace kernels{
55 template <
class Triangular,
class S
ide,
typename MatA,
typename V>
57 matrix_expression<MatA, cpu_tag>
const &A,
58 vector_expression<V, cpu_tag> &b
60 REMORA_SIZE_CHECK(A().size1() == A().size2());
61 REMORA_SIZE_CHECK(A().size1() == b().size());
63 bindings::trsv<Triangular, Side>(A,b,
typename bindings::has_optimized_trsv<MatA, V>::type());
68 #ifdef REMORA_USE_CLBLAST