Skip to content

num::math::vector_space

Defined in header <core/math/concepts.hpp>

template <class V>
concept vector_space = field<scalar_t<V>> && std::copy_constructible<V> &&
                       requires(V &v, const V &x, scalar_t<V> a) {
                         { dimension(x) } -> std::integral;
                         { zero_like(x) } -> std::same_as<V>;
                         scale(a, v);
                         axpy(a, x, v);
                       };

Vector space over a field: sized, copyable, zeroable, and closed under scale and axpy.