15 { cv.size() } -> std::convertible_to<idx>;
16 { cv[i] } -> std::convertible_to<real>;
17 { v[i] } -> std::convertible_to<real>;
26 { f.vec() } -> std::same_as<Vector&>;
32 { v[i] = a } -> std::same_as<real&>;
38 { cv.data() } -> std::convertible_to<const real*>;
39 { v.data() } -> std::convertible_to<real*>;
45 { ca.rows() } -> std::convertible_to<idx>;
46 { ca.cols() } -> std::convertible_to<idx>;
47 { ca(i, j) } -> std::convertible_to<real>;
48 { a(i, j) } -> std::convertible_to<real>;
55 { a(i, j) = x } -> std::same_as<real&>;
61 { ca.data() } -> std::convertible_to<const real*>;
62 { a.data() } -> std::convertible_to<real*>;
66template<
class Op,
class X = Vector,
class Y = Vector>
69 { A.rows() } -> std::convertible_to<idx>;
70 { A.cols() } -> std::convertible_to<idx>;
75template<
class Op,
class X = Vector,
class Y = Vector>
77 typename std::remove_cvref_t<Op>::symmetric_operator_tag;
81template<
class Op,
class X = Vector,
class Y = Vector>
83 typename std::remove_cvref_t<Op>::spd_operator_tag;
Contiguous dense row-major real matrix storage.
Contiguous real-valued vector storage.
Dense row-major real matrix interface.
Compile-time contract for the matrix-free product y = A*x.
Mutable dense row-major real matrix interface.
Mutable indexed real-valued vector interface.
Operator declared to satisfy for all nonzero .
Operator declared to satisfy .
Any object exposing its contiguous real storage as a Vector via .vec(). Satisfied by Vector itself,...
Indexed real-valued vector interface.
Dense vector storage and operations.