20template <
class OutputMdspan,
class Scalar,
class MatrixMdspan,
class InputMdspan>
24 std::same_as<std::remove_cv_t<typename std::remove_cvref_t<OutputMdspan>::element_type>,
Scalar> &&
25 std::same_as<std::remove_cv_t<typename std::remove_cvref_t<MatrixMdspan>::element_type>,
Scalar> &&
26 std::same_as<std::remove_cv_t<typename std::remove_cvref_t<InputMdspan>::element_type>,
Scalar> &&
27 requires(OutputMdspan& output, MatrixMdspan& matrix, InputMdspan& input,
28 typename std::remove_cvref_t<OutputMdspan>::index_type index,
Scalar value) {
29 static_cast<Scalar>(output.operator[](index));
30 static_cast<Scalar>(matrix.operator[](index, index));
31 static_cast<Scalar>(input.operator[](index));
32 output.operator[](index) =
value;
38template <
class OutputMdspan, uni20::Scalar Scalar,
class MatrixMdspan,
class InputMdspan>
42 using output_type = std::remove_cvref_t<OutputMdspan>;
43 using index_type =
typename output_type::index_type;
A mutable mdspan-like type with a specified static rank.
Definition mdspan/concepts.hpp:494
An mdspan-like type with a specified static rank.
Definition mdspan/concepts.hpp:447
Concept for numeric scalar types (integer, real, or complex).
Definition scalar_concepts.hpp:81
Report whether resolved mdspans support reference CPU GEMV expressions.
Definition cpu/gemv.hpp:21
locale_t value
Definition data_table.cpp:49
Mdspan concept and accessor extensions for Uni20.
T product(std::vector< T > const &values)
Definition mpreal_exact_example.cpp:13
Definition strided_transform.hpp:20
void gemv(OutputMdspan &&output, Scalar alpha, MatrixMdspan &&matrix, InputMdspan &&input, Scalar beta)
Execute reference CPU GEMV on resolved mdspans.
Definition cpu/gemv.hpp:40
std::ptrdiff_t index_type
Definition types.hpp:19
mpreal beta(mpreal const &a, mpreal const &x)
Real Beta function; positive rational/integer pairs retain exact values.
Definition mpreal_special.hpp:164
#define CHECK_EQUAL(a, b,...)
Definition trace.hpp:309