SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::solver::normalization::DiagonalNormalization Class Referencefinal

Own the frozen, independent state and residual transformations used by one solve. More...

#include <diagonal.hpp>

Collaboration diagram for serif::solver::normalization::DiagonalNormalization:
[legend]

Public Member Functions

std::span< const double > state_factors () const noexcept
 Read the factors taking physical state coefficients to normalized coordinates.
 
std::span< const double > residual_factors () const noexcept
 Read the factors taking physical residual coefficients to normalized coordinates.
 
std::size_t state_size () const noexcept
 Number of state coordinates.
 
std::size_t residual_size () const noexcept
 Number of residual coordinates, which need not equal the state size.
 
void normalize_state (std::span< const double > physical, std::span< double > normalized) const
 Convert physical state coefficients to normalized coordinates.
 
void denormalize_state (std::span< const double > normalized, std::span< double > physical) const
 Recover physical state coefficients from normalized coordinates.
 
void normalize_residual (std::span< const double > physical, std::span< double > normalized) const
 Convert physical residual coefficients to normalized coordinates.
 
void denormalize_residual (std::span< const double > normalized, std::span< double > physical) const
 Recover physical residual coefficients from normalized coordinates.
 
double state_norm_squared (std::span< const double > physical) const
 Squared primal norm of a physical state vector.
 
double residual_norm_squared (std::span< const double > physical) const
 Squared dual norm of a physical residual vector.
 

Private Member Functions

 DiagonalNormalization (std::vector< double > state, std::vector< double > residual)
 Accept factors only after the factory has validated them.
 

Private Attributes

std::vector< double > m_state_factors
 
std::vector< double > m_residual_factors
 

Friends

std::expected< DiagonalNormalization, std::string > make_diagonal_normalization (std::vector< double > state, std::vector< double > residual)
 Validate and freeze independent coordinate factors, including empty or rectangular systems.
 

Detailed Description

Own the frozen, independent state and residual transformations used by one solve.

Constructor & Destructor Documentation

◆ DiagonalNormalization()

serif::solver::normalization::DiagonalNormalization::DiagonalNormalization ( std::vector< double > state,
std::vector< double > residual )
private

Accept factors only after the factory has validated them.

Member Function Documentation

◆ denormalize_residual()

void serif::solver::normalization::DiagonalNormalization::denormalize_residual ( std::span< const double > normalized,
std::span< double > physical ) const

Recover physical residual coefficients from normalized coordinates.

◆ denormalize_state()

void serif::solver::normalization::DiagonalNormalization::denormalize_state ( std::span< const double > normalized,
std::span< double > physical ) const

Recover physical state coefficients from normalized coordinates.

◆ normalize_residual()

void serif::solver::normalization::DiagonalNormalization::normalize_residual ( std::span< const double > physical,
std::span< double > normalized ) const

Convert physical residual coefficients to normalized coordinates.

◆ normalize_state()

void serif::solver::normalization::DiagonalNormalization::normalize_state ( std::span< const double > physical,
std::span< double > normalized ) const

Convert physical state coefficients to normalized coordinates.

◆ residual_factors()

std::span< const double > serif::solver::normalization::DiagonalNormalization::residual_factors ( ) const
inlinenodiscardnoexcept

Read the factors taking physical residual coefficients to normalized coordinates.

◆ residual_norm_squared()

double serif::solver::normalization::DiagonalNormalization::residual_norm_squared ( std::span< const double > physical) const
nodiscard

Squared dual norm of a physical residual vector.

◆ residual_size()

std::size_t serif::solver::normalization::DiagonalNormalization::residual_size ( ) const
inlinenodiscardnoexcept

Number of residual coordinates, which need not equal the state size.

◆ state_factors()

std::span< const double > serif::solver::normalization::DiagonalNormalization::state_factors ( ) const
inlinenodiscardnoexcept

Read the factors taking physical state coefficients to normalized coordinates.

◆ state_norm_squared()

double serif::solver::normalization::DiagonalNormalization::state_norm_squared ( std::span< const double > physical) const
nodiscard

Squared primal norm of a physical state vector.

◆ state_size()

std::size_t serif::solver::normalization::DiagonalNormalization::state_size ( ) const
inlinenodiscardnoexcept

Number of state coordinates.

Friends And Related Symbol Documentation

◆ make_diagonal_normalization

std::expected< DiagonalNormalization, std::string > make_diagonal_normalization ( std::vector< double > state,
std::vector< double > residual )
friend

Validate and freeze independent coordinate factors, including empty or rectangular systems.

Member Data Documentation

◆ m_residual_factors

std::vector<double> serif::solver::normalization::DiagonalNormalization::m_residual_factors
private

◆ m_state_factors

std::vector<double> serif::solver::normalization::DiagonalNormalization::m_state_factors
private

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