NumericAL
A header-only C++20 lexer built on REAL
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
numerical::detail::interleaved_components Struct Reference

A complex matrix's eigenvector during its back-substitution, kept as (re, −im) and (im, re) pairs: a complex row, read as its parts in order ([complex.numbers]), against each is the real or the imaginary part of their product, one dot_product each. More...

#include <eigen.hpp>

Public Types

using scalar = std::complex< double >
 Its components.
 

Public Member Functions

std::complex< double > dot (const std::complex< double > *row, std::size_t from, std::size_t to) const
 Σ_{l = from…to} row[l] x[l].
 
void set (std::size_t j, const std::complex< double > &value)
 Sets component j to value.
 
std::complex< double > get (std::size_t j) const
 Component j.
 
void scale (std::size_t from, std::size_t to, double factor)
 Scales the components from … to by factor.
 

Public Attributes

buffer< double > real_side
 (re, −im) per component: a row against it gives the product's real part.
 
buffer< double > imaginary_side
 (im, re) per component: its imaginary part.
 

Detailed Description

A complex matrix's eigenvector during its back-substitution, kept as (re, −im) and (im, re) pairs: a complex row, read as its parts in order ([complex.numbers]), against each is the real or the imaginary part of their product, one dot_product each.

Definition at line 2778 of file eigen.hpp.

Member Typedef Documentation

◆ scalar

Its components.

Definition at line 2780 of file eigen.hpp.

Member Function Documentation

◆ dot()

std::complex< double > numerical::detail::interleaved_components::dot ( const std::complex< double > *  row,
std::size_t  from,
std::size_t  to 
) const
inline

Σ_{l = from…to} row[l] x[l].

Definition at line 2786 of file eigen.hpp.

◆ get()

std::complex< double > numerical::detail::interleaved_components::get ( std::size_t  j) const
inline

Component j.

Definition at line 2807 of file eigen.hpp.

◆ scale()

void numerical::detail::interleaved_components::scale ( std::size_t  from,
std::size_t  to,
double  factor 
)
inline

Scales the components from … to by factor.

Definition at line 2813 of file eigen.hpp.

◆ set()

void numerical::detail::interleaved_components::set ( std::size_t  j,
const std::complex< double > &  value 
)
inline

Sets component j to value.

Definition at line 2797 of file eigen.hpp.

Member Data Documentation

◆ imaginary_side

buffer<double> numerical::detail::interleaved_components::imaginary_side

(im, re) per component: its imaginary part.

Definition at line 2783 of file eigen.hpp.

◆ real_side

buffer<double> numerical::detail::interleaved_components::real_side

(re, −im) per component: a row against it gives the product's real part.

Definition at line 2782 of file eigen.hpp.


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