akreon-linalg
Fixed-size linear algebra and numerical methods in C++26.
Loading...
Searching...
No Matches
matrix_traits.hpp File Reference
#include <complex>
#include <cstddef>
#include <utility>
#include "matrix.hpp"
Include dependency graph for matrix_traits.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  linalg::mat_traits< Matrix< T, Rows, Cols > >
 Traits for the Akreon Linalg's owning Matrix container. More...
 

Namespaces

namespace  linalg
 

Typedefs

template<typename T , std::size_t Dim>
using linalg::ColVector = Matrix< T, Dim, 1 >
 Matrix-shaped representation of a Dim-element column vector.
 
template<typename T , std::size_t Dim>
using linalg::RowVector = Matrix< T, 1, Dim >
 Matrix-shaped representation of a Dim-element row vector.
 
template<class Mat >
using linalg::matrix_scalar_t = typename mat_traits< remove_cvref_t< Mat > >::value_type
 Registered matrix scalar type after cv/ref normalization.
 
Common scalar and matrix aliases

These aliases shorten frequently used real and complex fixed-size types.

ColVector* and RowVector* remain matrices; Vector* names the dedicated vector container.

template<std::size_t Dim>
using linalg::Vectord = Vector< double, Dim >
 
template<std::size_t Dim>
using linalg::Vectorf = Vector< float, Dim >
 
template<std::size_t Dim>
using linalg::Vectorcd = Vector< std::complex< double >, Dim >
 
template<std::size_t Dim>
using linalg::Vectorcf = Vector< std::complex< float >, Dim >
 
template<std::size_t Rows, std::size_t Cols>
using linalg::Matrixd = Matrix< double, Rows, Cols >
 
template<std::size_t Dim>
using linalg::ColVectord = ColVector< double, Dim >
 
template<std::size_t Dim>
using linalg::RowVectord = RowVector< double, Dim >
 
template<std::size_t Rows, std::size_t Cols>
using linalg::Matrixf = Matrix< float, Rows, Cols >
 
template<std::size_t Dim>
using linalg::ColVectorf = ColVector< float, Dim >
 
template<std::size_t Dim>
using linalg::RowVectorf = RowVector< float, Dim >
 
template<std::size_t Rows, std::size_t Cols>
using linalg::Matrixcd = Matrix< std::complex< double >, Rows, Cols >
 
template<std::size_t Dim>
using linalg::ColVectorcd = ColVector< std::complex< double >, Dim >
 
template<std::size_t Dim>
using linalg::RowVectorcd = RowVector< std::complex< double >, Dim >
 
template<std::size_t Rows, std::size_t Cols>
using linalg::Matrixcf = Matrix< std::complex< float >, Rows, Cols >
 
template<std::size_t Dim>
using linalg::ColVectorcf = ColVector< std::complex< float >, Dim >
 
template<std::size_t Dim>
using linalg::RowVectorcf = RowVector< std::complex< float >, Dim >
 

Variables

template<class Mat >
constexpr std::size_t linalg::mat_rows_v = mat_traits<remove_cvref_t<Mat>>::ROWS
 Registered compile-time row count after cv/ref normalization.
 
template<class Mat >
constexpr std::size_t linalg::mat_cols_v = mat_traits<remove_cvref_t<Mat>>::COLS
 Registered compile-time column count after cv/ref normalization.