akreon-linalg
Fixed-size linear algebra and numerical methods in C++26.
Loading...
Searching...
No Matches
coordinate_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
10
#include "
coordinate_map.hpp
"
11
12
namespace
linalg
{
13
22
template
<
class
Cand
id
ate>
23
concept
Space
=
requires
{
24
typename
space_scalar_t<Candidate>
;
25
typename
space_element_t<Candidate>
;
26
{
space_dim_v<Candidate>
} -> std::convertible_to<std::size_t>;
27
};
28
37
template
<
class
Cand
id
ate>
38
concept
CoordinatizedSpace
=
39
Space<Candidate>
&&
40
requires
(
const
space_element_t<Candidate>
&
element
,
41
const
space_coordinate_t<Candidate>
&
coordinate
) {
42
{
43
coordinates<Candidate>
(
element
)
44
} -> std::same_as<space_coordinate_t<Candidate>>;
45
{
46
from_coordinates<Candidate>
(
coordinate
)
47
} -> std::same_as<space_element_t<Candidate>>;
48
};
49
50
}
// namespace linalg
linalg::CoordinatizedSpace
Finite-dimensional space with explicit element-coordinate conversion.
Definition
coordinate_concepts.hpp:38
linalg::Space
Trait-registered finite-dimensional mathematical space.
Definition
coordinate_concepts.hpp:23
coordinate_map.hpp
linalg
Definition
constants.hpp:10
linalg::mat_rows_v
constexpr std::size_t mat_rows_v
Registered compile-time row count after cv/ref normalization.
Definition
matrix_traits.hpp:91
include
akreon
linalg
space
coordinate_concepts.hpp
Generated by
1.9.8