31 #ifndef REMORA_KERNELS_TPMV_HPP 32 #define REMORA_KERNELS_TPMV_HPP 34 #ifdef REMORA_USE_CBLAS 39 namespace remora{
namespace bindings{
40 template<
class M1,
class M2>
41 struct has_optimized_tpmv
42 :
public std::false_type{};
48 namespace remora{
namespace kernels{
53 template <
typename MatA,
typename VecB>
55 matrix_expression<MatA, cpu_tag>
const &A,
56 vector_expression<VecB, cpu_tag>& b
58 REMORA_SIZE_CHECK(A().size1() == A().size2());
59 REMORA_SIZE_CHECK(A().size1() == b().size());
61 bindings::tpmv(A,b,
typename bindings::has_optimized_tpmv<MatA, VecB>::type());