31#ifndef REMORA_KERNELS_TRMM_HPP
32#define REMORA_KERNELS_TRMM_HPP
34#ifdef REMORA_USE_CBLAS
39namespace remora{
namespace bindings{
40template<
class M1,
class M2>
41struct has_optimized_trmm
42:
public std::false_type{};
48namespace remora{
namespace kernels{
53template <
bool Upper,
bool Unit,
typename MatA,
typename MatB>
55 matrix_expression<MatA, cpu_tag>
const &A,
56 matrix_expression<MatB, cpu_tag>& B
58 REMORA_SIZE_CHECK(A().size1() == A().size2());
59 REMORA_SIZE_CHECK(A().size1() == B().size1());
61 bindings::trmm<Upper,Unit>(A,B,
typename bindings::has_optimized_trmm<MatA, MatB>::type());
66#ifdef REMORA_USE_CLBLAST
68#elif defined REMORA_USE_GPU