akreon-linalg
Fixed-size linear algebra and numerical methods in C++26.
Loading...
Searching...
No Matches
affine_traits.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 "
akreon/linalg/space/space_concepts.hpp
"
9
10
namespace
affine
{
11
13
template
<linalg::MatrixContainer Mat>
14
class
AffineMap;
15
17
template
<
class
Mat>
18
struct
affine_traits
;
19
21
template
<linalg::MatrixContainer Mat>
22
struct
affine_traits
<
AffineMap
<Mat>> {
23
using
AffineMat
= Mat;
24
};
25
27
template
<
class
AffineMap>
28
using
affine_mat_t
=
29
typename
affine_traits<linalg::remove_cvref_t<AffineMap>
>::AffineMat;
30
32
template
<
class
Map>
33
concept
AffineMapLike
=
requires
(
const
Map& map) {
34
{ map.linear_part() };
35
{ map.translation() };
36
};
37
38
}
// namespace affine
affine::AffineMap
AffineMap class definition.
Definition
affine_map.hpp:63
affine::AffineMapLike
concept for affine map
Definition
affine_traits.hpp:33
affine
Definition
affine_map.hpp:12
affine::affine_mat_t
typename affine_traits< linalg::remove_cvref_t< AffineMap > >::AffineMat affine_mat_t
alias to extract matrix type for affine map
Definition
affine_traits.hpp:29
space_concepts.hpp
affine::affine_traits< AffineMap< Mat > >::AffineMat
Mat AffineMat
Definition
affine_traits.hpp:23
affine::affine_traits
meta type traits for affine map
Definition
affine_traits.hpp:18
include
akreon
linalg
affine
affine_traits.hpp
Generated by
1.9.8