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

forward declaration for symmetric operator More...

#include <symmetric_operator.hpp>

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

Public Types

using OperatorBase = Endomorphism< Mat, SymmetricOperator< Mat, Derived > >
 alias to extract base types
 
- Public Types inherited from linalg::Endomorphism< Mat, SymmetricOperator< Mat, Derived > >
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 SymmetricOperator (const Mat &A)
 CTOR.
 
constexpr auto operator() (std::size_t i, std::size_t j) const
 get element at (i,j) index
 
constexpr std::size_t index (std::size_t i, std::size_t j) const
 index from (row, col)
 
constexpr bool is_pd () const
 is pd check
 
constexpr bool is_nd () const
 is nd check
 
constexpr bool is_psd () const
 is psd check
 
constexpr bool is_nsd () const
 is nsd check
 
constexpr bool is_ind () const
 is indefinite
 
constexpr bool is_valid () const
 is valid
 
template<typename DiagT >
constexpr void compute_definiteness (const Vector< DiagT, N > &diag, const ScalarT &tol)
 compute definiteness
 
constexpr const Derived & self () const
 self
 
- Public Member Functions inherited from linalg::Endomorphism< Mat, SymmetricOperator< Mat, Derived > >
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 SymmetricOperator< Mat, Derived > & self ()
 self
 
constexpr const SymmetricOperator< Mat, Derived > & self () const
 self
 

Public Attributes

SymmetricOperatorType type
 member variables
 
Vector< T, DIM > svec
 

Static Public Attributes

static constexpr std::size_t DIM = (N * (N + 1)) / 2
 helpers to get DIM from mat
 
- Static Public Attributes inherited from linalg::Endomorphism< Mat, SymmetricOperator< Mat, Derived > >
static constexpr std::size_t N
 helper to extract N
 

Detailed Description

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

forward declaration for symmetric operator

Symmetric linear operator CRTP base.

Definition at line 18 of file symmetric_operator.hpp.

Member Typedef Documentation

◆ OperatorBase

template<SquareMatrix Mat, typename Derived >
using linalg::SymmetricOperator< Mat, Derived >::OperatorBase = Endomorphism<Mat, SymmetricOperator<Mat, Derived> >

alias to extract base types

Definition at line 20 of file symmetric_operator.hpp.

Constructor & Destructor Documentation

◆ SymmetricOperator()

template<SquareMatrix Mat, typename Derived >
constexpr linalg::SymmetricOperator< Mat, Derived >::SymmetricOperator ( const Mat &  A)
inlineexplicitconstexpr

CTOR.

Parameters
MatA

Definition at line 36 of file symmetric_operator.hpp.

Member Function Documentation

◆ compute_definiteness()

template<SquareMatrix Mat, typename Derived >
template<typename DiagT >
constexpr void linalg::SymmetricOperator< Mat, Derived >::compute_definiteness ( const Vector< DiagT, N > &  diag,
const ScalarT &  tol 
)
inlineconstexpr

compute definiteness

Parameters
vec(diagonal of elements)
Returns
void

Definition at line 123 of file symmetric_operator.hpp.

References linalg::IND, linalg::mat_rows_v, linalg::ND, linalg::NSD, linalg::PD, linalg::PSD, and linalg::SymmetricOperator< Mat, Derived >::type.

◆ index()

template<SquareMatrix Mat, typename Derived >
constexpr std::size_t linalg::SymmetricOperator< Mat, Derived >::index ( std::size_t  i,
std::size_t  j 
) const
inlineconstexpr

index from (row, col)

Parameters
std::size_ti = row index
std::size_tj = col index
Returns
index

Definition at line 60 of file symmetric_operator.hpp.

References AK_ASSERT, linalg::mat_rows_v, and linalg::Endomorphism< Mat, SymmetricOperator< Mat, Derived > >::N.

Referenced by linalg::SymmetricOperator< Mat, Derived >::operator()().

◆ is_ind()

template<SquareMatrix Mat, typename Derived >
constexpr bool linalg::SymmetricOperator< Mat, Derived >::is_ind ( ) const
inlineconstexpr

is indefinite

Returns
T/F

Definition at line 106 of file symmetric_operator.hpp.

References linalg::IND, and linalg::SymmetricOperator< Mat, Derived >::type.

◆ is_nd()

template<SquareMatrix Mat, typename Derived >
constexpr bool linalg::SymmetricOperator< Mat, Derived >::is_nd ( ) const
inlineconstexpr

is nd check

Returns
T/F

Definition at line 79 of file symmetric_operator.hpp.

References linalg::ND, and linalg::SymmetricOperator< Mat, Derived >::type.

◆ is_nsd()

template<SquareMatrix Mat, typename Derived >
constexpr bool linalg::SymmetricOperator< Mat, Derived >::is_nsd ( ) const
inlineconstexpr

is nsd check

Returns
T/F

Definition at line 96 of file symmetric_operator.hpp.

References linalg::ND, linalg::NSD, and linalg::SymmetricOperator< Mat, Derived >::type.

◆ is_pd()

template<SquareMatrix Mat, typename Derived >
constexpr bool linalg::SymmetricOperator< Mat, Derived >::is_pd ( ) const
inlineconstexpr

is pd check

Returns
T/F

Definition at line 72 of file symmetric_operator.hpp.

References linalg::PD, and linalg::SymmetricOperator< Mat, Derived >::type.

◆ is_psd()

template<SquareMatrix Mat, typename Derived >
constexpr bool linalg::SymmetricOperator< Mat, Derived >::is_psd ( ) const
inlineconstexpr

is psd check

Returns
T/F

Definition at line 86 of file symmetric_operator.hpp.

References linalg::PD, linalg::PSD, and linalg::SymmetricOperator< Mat, Derived >::type.

◆ is_valid()

template<SquareMatrix Mat, typename Derived >
constexpr bool linalg::SymmetricOperator< Mat, Derived >::is_valid ( ) const
inlineconstexpr

is valid

Returns
T/F

Definition at line 113 of file symmetric_operator.hpp.

References linalg::INV, and linalg::SymmetricOperator< Mat, Derived >::type.

◆ operator()()

template<SquareMatrix Mat, typename Derived >
constexpr auto linalg::SymmetricOperator< 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 46 of file symmetric_operator.hpp.

References linalg::SymmetricOperator< Mat, Derived >::index(), linalg::mat_rows_v, and linalg::SymmetricOperator< Mat, Derived >::svec.

◆ self()

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

self

Returns
self

Definition at line 151 of file symmetric_operator.hpp.

References linalg::mat_rows_v.

Member Data Documentation

◆ DIM

template<SquareMatrix Mat, typename Derived >
constexpr std::size_t linalg::SymmetricOperator< Mat, Derived >::DIM = (N * (N + 1)) / 2
staticconstexpr

helpers to get DIM from mat

Definition at line 29 of file symmetric_operator.hpp.

◆ svec

template<SquareMatrix Mat, typename Derived >
Vector<T, DIM> linalg::SymmetricOperator< Mat, Derived >::svec

◆ type


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