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

One block of divide_and_conquer's tree: its rows [0, n) of the diagonal d its parent reads, the diagonal and subdiagonal it is solved on (its own copies scaled by a power of two, or d and the parent's), and its diagonal block of the eigenvector matrix, q, rows ldq apart. More...

#include <decomposition.hpp>

Public Attributes

double * d {}
 The diagonal its parent reads, the eigenvalues once solved.
 
double * work_d {}
 The diagonal it is solved on.
 
const double * work_e {}
 The subdiagonal it is solved on.
 
std::size_t n {}
 Its order.
 
double * q {}
 Its diagonal block of the eigenvectors.
 
std::size_t ldq {}
 The distance between the rows of q.
 
int exponent {0}
 The power of two it is scaled down by.
 
buffer< double > scaled_d {}
 The scaled diagonal, when exponent is not 0.
 
buffer< double > scaled_e {}
 The scaled subdiagonal, when exponent is not 0.
 
std::size_t n1 {0}
 The order of its first half; 0 for a leaf.
 
double beta {}
 The coupling of its halves.
 
std::size_t depth {}
 Its distance from the root.
 
std::size_t first {}
 Its first half.
 
std::size_t second {}
 Its second half.
 

Detailed Description

One block of divide_and_conquer's tree: its rows [0, n) of the diagonal d its parent reads, the diagonal and subdiagonal it is solved on (its own copies scaled by a power of two, or d and the parent's), and its diagonal block of the eigenvector matrix, q, rows ldq apart.

Definition at line 3986 of file decomposition.hpp.

Member Data Documentation

◆ beta

double numerical::detail::divide_node::beta {}

The coupling of its halves.

Definition at line 3998 of file decomposition.hpp.

◆ d

double* numerical::detail::divide_node::d {}

The diagonal its parent reads, the eigenvalues once solved.

Definition at line 3988 of file decomposition.hpp.

◆ depth

std::size_t numerical::detail::divide_node::depth {}

Its distance from the root.

Definition at line 3999 of file decomposition.hpp.

◆ exponent

int numerical::detail::divide_node::exponent {0}

The power of two it is scaled down by.

Definition at line 3994 of file decomposition.hpp.

◆ first

std::size_t numerical::detail::divide_node::first {}

Its first half.

Definition at line 4000 of file decomposition.hpp.

◆ ldq

std::size_t numerical::detail::divide_node::ldq {}

The distance between the rows of q.

Definition at line 3993 of file decomposition.hpp.

◆ n

std::size_t numerical::detail::divide_node::n {}

Its order.

Definition at line 3991 of file decomposition.hpp.

◆ n1

std::size_t numerical::detail::divide_node::n1 {0}

The order of its first half; 0 for a leaf.

Definition at line 3997 of file decomposition.hpp.

◆ q

double* numerical::detail::divide_node::q {}

Its diagonal block of the eigenvectors.

Definition at line 3992 of file decomposition.hpp.

◆ scaled_d

buffer<double> numerical::detail::divide_node::scaled_d {}

The scaled diagonal, when exponent is not 0.

Definition at line 3995 of file decomposition.hpp.

◆ scaled_e

buffer<double> numerical::detail::divide_node::scaled_e {}

The scaled subdiagonal, when exponent is not 0.

Definition at line 3996 of file decomposition.hpp.

◆ second

std::size_t numerical::detail::divide_node::second {}

Its second half.

Definition at line 4001 of file decomposition.hpp.

◆ work_d

double* numerical::detail::divide_node::work_d {}

The diagonal it is solved on.

Definition at line 3989 of file decomposition.hpp.

◆ work_e

const double* numerical::detail::divide_node::work_e {}

The subdiagonal it is solved on.

Definition at line 3990 of file decomposition.hpp.


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