31 #ifndef REMORA_KERNELS_SYRK_HPP 32 #define REMORA_KERNELS_SYRK_HPP 36 #ifdef REMORA_USE_CBLAS 40 namespace remora{
namespace bindings{
41 template<
class M1,
class M2>
42 struct has_optimized_syrk
43 :
public std::false_type{};
47 namespace remora{
namespace kernels{
55 template<
bool Upper,
class M,
class E>
57 matrix_expression<E, cpu_tag>
const& e,
58 matrix_expression<M, cpu_tag>& m,
59 typename M::value_type alpha
61 REMORA_SIZE_CHECK(m().size1() == m().size2());
62 REMORA_SIZE_CHECK(m().size1() == e().size1());
64 bindings::syrk<Upper>(e, m, alpha,
65 typename bindings::has_optimized_syrk<M,E>::type()
71 #ifdef REMORA_USE_CLBLAST