akreon-linalg
Fixed-size linear algebra and numerical methods in C++26.
Loading...
Searching...
No Matches
linalg::Endomorphism< Mat, Derived > Struct Template Reference

Endomorphism operator CRTP base. More...

#include <endomorphism.hpp>

Inheritance diagram for linalg::Endomorphism< Mat, Derived >:
[legend]

Public Types

using T = matrix_scalar_t< Mat >
 alias helpers for types
 
using ScalarT = real_type_t< T >
 
using ComplexT = std::complex< ScalarT >
 

Public Member Functions

constexpr const T & operator() (std::size_t i, std::size_t j) const
 get element at (i,j) index
 
constexpr T & operator() (std::size_t i, std::size_t j)
 get element at (i,j) index
 
constexpr Derived & self ()
 self
 
constexpr const Derived & self () const
 self
 

Static Public Attributes

static constexpr std::size_t N = mat_rows_v<Mat>
 helper to extract N
 

Detailed Description

template<SquareMatrix Mat, typename Derived>
struct linalg::Endomorphism< Mat, Derived >

Endomorphism operator CRTP base.

forward declaration for linear operator

Definition at line 16 of file endomorphism.hpp.

Member Typedef Documentation

◆ ComplexT

template<SquareMatrix Mat, typename Derived >
using linalg::Endomorphism< Mat, Derived >::ComplexT = std::complex<ScalarT>

Definition at line 20 of file endomorphism.hpp.

◆ ScalarT

template<SquareMatrix Mat, typename Derived >
using linalg::Endomorphism< Mat, Derived >::ScalarT = real_type_t<T>

Definition at line 19 of file endomorphism.hpp.

◆ T

template<SquareMatrix Mat, typename Derived >
using linalg::Endomorphism< Mat, Derived >::T = matrix_scalar_t<Mat>

alias helpers for types

Definition at line 18 of file endomorphism.hpp.

Member Function Documentation

◆ operator()() [1/2]

template<SquareMatrix Mat, typename Derived >
constexpr T & linalg::Endomorphism< Mat, Derived >::operator() ( std::size_t  i,
std::size_t  j 
)
inlineconstexpr

get element at (i,j) index

Parameters
rowindex
colindex
Returns
element (mutable)

Definition at line 45 of file endomorphism.hpp.

References linalg::mat_rows_v, and linalg::Endomorphism< Mat, Derived >::self().

◆ operator()() [2/2]

template<SquareMatrix Mat, typename Derived >
constexpr const T & linalg::Endomorphism< Mat, Derived >::operator() ( std::size_t  i,
std::size_t  j 
) const
inlineconstexpr

get element at (i,j) index

Parameters
rowindex
colindex
Returns
element

Definition at line 33 of file endomorphism.hpp.

References linalg::mat_rows_v, and linalg::Endomorphism< Mat, Derived >::self().

◆ self() [1/2]

template<SquareMatrix Mat, typename Derived >
constexpr Derived & linalg::Endomorphism< Mat, Derived >::self ( )
inlineconstexpr

◆ self() [2/2]

template<SquareMatrix Mat, typename Derived >
constexpr const Derived & linalg::Endomorphism< Mat, Derived >::self ( ) const
inlineconstexpr

self

Returns
const object

Definition at line 59 of file endomorphism.hpp.

References linalg::mat_rows_v.

Member Data Documentation

◆ N

template<SquareMatrix Mat, typename Derived >
constexpr std::size_t linalg::Endomorphism< Mat, Derived >::N = mat_rows_v<Mat>
staticconstexpr

helper to extract N

Definition at line 23 of file endomorphism.hpp.

Referenced by linalg::LDL< Mat >::apply().


The documentation for this struct was generated from the following file: