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

forward declaration of P(x) / P(x^{-1}) More...

#include <quadratic_rep.hpp>

Public Types

using T = matrix_scalar_t< JxJ >
 extract type & sizes
 
using J = Vector< T, N >
 

Public Member Functions

constexpr QuadraticRep (const J &x_in)
 CTOR.
 
constexpr auto apply (const J &y) const
 apply
 
template<MatrixContainer MatX>
requires (N == mat_rows_v<MatX>)
constexpr auto apply (const MatX &Y) const
 apply column-wise to a matrix
 

Public Attributes

J x
 member var
 

Static Public Attributes

static constexpr std::size_t N = mat_rows_v<JxJ>
 

Detailed Description

template<SquareMatrix JxJ, typename Circ>
struct linalg::QuadraticRep< JxJ, Circ >

forward declaration of P(x) / P(x^{-1})

P(x) : J -> J.

Quadratic rep of Jordan Algebra as a hessian

P(x)^{-1} = P(x^{-1})... valid automorphism

P(x) -> 2L(x)^2 - L(x)^2 P(x) : J -> J... (linear op / automorphism of the cone) L(x) : J -> J... (linear op) x circ y -> J x J -> J... (bilinear map)

Definition at line 27 of file quadratic_rep.hpp.

Member Typedef Documentation

◆ J

template<SquareMatrix JxJ, typename Circ >
using linalg::QuadraticRep< JxJ, Circ >::J = Vector<T, N>

Definition at line 31 of file quadratic_rep.hpp.

◆ T

template<SquareMatrix JxJ, typename Circ >
using linalg::QuadraticRep< JxJ, Circ >::T = matrix_scalar_t<JxJ>

extract type & sizes

Definition at line 29 of file quadratic_rep.hpp.

Constructor & Destructor Documentation

◆ QuadraticRep()

template<SquareMatrix JxJ, typename Circ >
constexpr linalg::QuadraticRep< JxJ, Circ >::QuadraticRep ( const J &  x_in)
inlineexplicitconstexpr

CTOR.

Parameters
xin J

Definition at line 38 of file quadratic_rep.hpp.

Member Function Documentation

◆ apply() [1/2]

template<SquareMatrix JxJ, typename Circ >
constexpr auto linalg::QuadraticRep< JxJ, Circ >::apply ( const J &  y) const
inlineconstexpr

apply

P(x)y = 2L(x)^2y - L(x^2)y = 2 L(x) L(x) y - L(x^2) y = 2 x circ (x circ y) - (x circ x) circ y

Parameters
yin J
Returns
P(x)y

Definition at line 51 of file quadratic_rep.hpp.

References linalg::mat_rows_v, and linalg::QuadraticRep< JxJ, Circ >::x.

Referenced by linalg::QuadraticRep< JxJ, Circ >::apply().

◆ apply() [2/2]

template<SquareMatrix JxJ, typename Circ >
template<MatrixContainer MatX>
requires (N == mat_rows_v<MatX>)
constexpr auto linalg::QuadraticRep< JxJ, Circ >::apply ( const MatX &  Y) const
inlineconstexpr

apply column-wise to a matrix

P(x)Y = [P(x)y_1 ... P(x)y_m]

Parameters
Ymatrix with columns in J
Returns
P(x)Y

Definition at line 67 of file quadratic_rep.hpp.

References linalg::QuadraticRep< JxJ, Circ >::apply(), linalg::get_col(), linalg::mat_rows_v, and linalg::QuadraticRep< JxJ, Circ >::N.

Member Data Documentation

◆ N

template<SquareMatrix JxJ, typename Circ >
constexpr std::size_t linalg::QuadraticRep< JxJ, Circ >::N = mat_rows_v<JxJ>
staticconstexpr

Definition at line 30 of file quadratic_rep.hpp.

Referenced by linalg::QuadraticRep< JxJ, Circ >::apply().

◆ x

template<SquareMatrix JxJ, typename Circ >
J linalg::QuadraticRep< JxJ, Circ >::x

member var

x in domain of P (i.e., P(x))

Definition at line 79 of file quadratic_rep.hpp.

Referenced by linalg::QuadraticRep< JxJ, Circ >::apply().


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