31#ifndef REMORA_KERNELS_TRSV_HPP
32#define REMORA_KERNELS_TRSV_HPP
35#ifdef REMORA_USE_CBLAS
40namespace remora {
namespace bindings{
41template<
class M1,
class M2>
42struct has_optimized_trsv
43:
public std::false_type{};
49namespace remora{
namespace kernels{
55template <
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
70#elif defined REMORA_USE_GPU