4#ifndef TETL_LINALG_BLAS2_MATRIX_VECTOR_PRODUCT_HPP
5#define TETL_LINALG_BLAS2_MATRIX_VECTOR_PRODUCT_HPP
7#include <etl/_contracts/check.hpp>
8#include <etl/_linalg/concepts.hpp>
9#include <etl/_utility/cmp_less.hpp>
14template <in_matrix InMat, in_vector InVec, out_vector OutVec>
17 TETL_PRECONDITION(a.extent(1) == x.extent(0));
18 TETL_PRECONDITION(a.extent(0) == y.extent(0));
20 using size_type = detail::common_size_type_t<InMat, InVec, OutVec>;
22 for (size_type i(0);
etl::cmp_less(i, a.extent(0)); ++i) {
23 y(i) =
typename OutVec::element_type{};
24 for (size_type j(0);
etl::cmp_less(j, a.extent(1)); ++j) {
25 y(i) += a(i, j) * x(j);
constexpr auto matrix_vector_product(InMat a, InVec x, OutVec y) noexcept -> void
Definition blas2_matrix_vector_product.hpp:15
Definition accessor_conjugate.hpp:13
Definition adjacent_find.hpp:9