akreon-linalg
Fixed-size linear algebra and numerical methods in C++26.
Loading...
Searching...
No Matches
vector_concepts.hpp
Go to the documentation of this file.
1/*
2 * Copyright © 2025-2026 Akreon LLC
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#pragma once
7
8#include <concepts>
9
11#include "vector_traits.hpp"
12
13namespace linalg {
14
22template <class Vec>
23concept VectorContainer = requires {
24 typename vector_traits_t<Vec>::element_type;
25 { vector_dim_v<Vec> } -> std::convertible_to<std::size_t>;
26};
27
29template <class Vec>
31
33template <class Vec>
35
37template <class Vec>
39
46template <class VecA, class VecB>
49 std::same_as<vector_element_t<VecA>, vector_element_t<VecB>> &&
51
52} // namespace linalg
Pair of vectors with exactly matching element types and dimensions.
Field vector over a scalar classified as complex.
Field classified by scalar_traits as complex.
Registered vector whose element type satisfies Field.
Registered scalar supporting the Akreon Linalg's field arithmetic interface.
Field vector over a scalar classified as real.
Field classified by scalar_traits as real.
Trait-registered fixed-size vector container.
constexpr std::size_t mat_rows_v
Registered compile-time row count after cv/ref normalization.