numerics 0.1.0
Loading...
Searching...
No Matches
concepts.hpp
Go to the documentation of this file.
1/// @file operator/concepts.hpp
2/// @brief Concepts for operator-oriented numerical algorithms.
3#pragma once
4
5#include "core/concepts.hpp"
6#include "core/vector.hpp"
7#include <concepts>
8
9namespace num::operators {
10
11template<class V>
13
14template<class V>
16
17/// @brief Compile-time contract for y = A*x.
18template<class Op, class X = Vector, class Y = Vector>
20 VectorLike<X> && MutableVectorLike<Y> && requires(const Op& A, const X& x, Y& y) {
21 { A.rows() } -> std::convertible_to<idx>;
22 { A.cols() } -> std::convertible_to<idx>;
23 { A.apply(x, y) };
24 };
25
26} // namespace num::operators
Mutable indexed real-valued vector interface.
Definition concepts.hpp:20
Indexed real-valued vector interface.
Definition concepts.hpp:12
Compile-time contract for y = A*x.
Definition concepts.hpp:19
Storage concepts for numerical routines.
Dense vector storage and operations.