28 #ifndef SHARK_LINALG_BLAS_OPERATION_HPP 29 #define SHARK_LINALG_BLAS_OPERATION_HPP 43 template<
class ResultV,
class M,
class V>
45 matrix_expression<M>
const& matrix,
46 vector_expression<V>
const& vector,
47 vector_expression<ResultV>& result,
49 typename ResultV::value_type alpha,
59 template<
class ResultV,
class M,
class V>
61 matrix_expression<M>
const& matrix,
62 vector_expression<V>
const& vector,
63 vector_expression<ResultV>& result,
65 typename ResultV::value_type alpha,
73 typename vector_temporary<V>::type temp(result);
85 template<
class ResultV,
class M,
class V>
91 typename ResultV::value_type alpha = 1.0
97 detail::axpy_prod_impl(matrix, vector, result,init, alpha,
typename M::orientation());
103 template<
class ResultV,
class M,
class V>
109 typename ResultV::value_type alpha = 1.0
113 axpy_prod(matrix,vector,static_cast<ResultV&>(result),init,alpha);
117 template<
class ResultV,
class V,
class M>
123 typename ResultV::value_type alpha = 1.0
133 template<
class ResultV,
class M,
class V>
139 typename ResultV::value_type alpha = 1.0
143 axpy_prod(
trans(matrix), vector, static_cast<ResultV&>(result),init,alpha);
147 template<
class M,
class E1,
class E2>
153 typename M::value_type alpha = 1.0
165 template<
class M,
class E1,
class E2>
171 typename M::value_type alpha = 1.0
173 axpy_prod(e1,e2,static_cast<M&>(m),init,alpha);
177 template<
class M,
class E>
182 typename M::value_type alpha = 1.0
191 template<
class M,
class E>
196 typename M::value_type alpha = 1.0
198 symm_prod(A, static_cast<M&>(m),init, alpha);
207 template<
class TriangularType,
class MatrixA,
class V>
212 kernels::trmv<TriangularType::is_upper, TriangularType::is_unit>(A, x);
221 template<
class TriangularType,
class MatrixA,
class MatB>
226 kernels::trmm<TriangularType::is_upper, TriangularType::is_unit>(A, B);
232 template<
class TriangularType,
class MatrixA,
class E>
237 triangular_prod<TriangularType>(A,
static_cast<E&
>(e));