LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::mam::LibQbdProcess< T > Class Template Reference

A QBD's level blocks, as libQBD's QBD class holds them. More...

#include <line/api/mam/libqbd_taylor.h>

Public Member Functions

void add_zero_level (const Matrix< T > &Aplus)
 Level zero from its upward block alone; the local block is the row-sum negative.
void add_zero_level (const Matrix< T > &A0, const Matrix< T > &Aplus)
void add_level (const Matrix< T > &Aminus, const Matrix< T > &Aplus)
 A level from its down and up blocks; the local block closes the rows.
void add_level (const Matrix< T > &Aminus, const Matrix< T > &A0, const Matrix< T > &Aplus)
void add_final_level (const Matrix< T > &Aminus)
 The repeating level: its up block is the previous one, reused for ever.
void add_final_level (const Matrix< T > &Aminus, const Matrix< T > &A0)
bool empty () const
const Matrix< T > & A0 (std::size_t level) const
 Blocks at a level, with every level above the last one REPEATING it.
const Matrix< T > & Aplus (std::size_t level) const
const Matrix< T > & Aminus (std::size_t level) const
min_element () const
 The most negative diagonal entry over every local block.
std::vector< std::vector< T > > mul_row (const std::vector< std::vector< T > > &vec, const T &cons) const
 vec Q scaled by cons, where vec is one row vector per level.

Detailed Description

template<class T>
class line::mam::LibQbdProcess< T >

A QBD's level blocks, as libQBD's QBD class holds them.

Definition at line 101 of file libqbd_taylor.h.

Member Function Documentation

◆ A0()

template<class T>
const Matrix< T > & line::mam::LibQbdProcess< T >::A0 ( std::size_t level) const
inline

Blocks at a level, with every level above the last one REPEATING it.

Definition at line 148 of file libqbd_taylor.h.

Referenced by add_final_level(), add_level(), add_zero_level(), and mul_row().

◆ add_final_level() [1/2]

template<class T>
void line::mam::LibQbdProcess< T >::add_final_level ( const Matrix< T > & Aminus)
inline

The repeating level: its up block is the previous one, reused for ever.

Definition at line 130 of file libqbd_taylor.h.

References Aminus().

Referenced by line::mam::solver_mam_ldqbd_transient().

◆ add_final_level() [2/2]

template<class T>
void line::mam::LibQbdProcess< T >::add_final_level ( const Matrix< T > & Aminus,
const Matrix< T > & A0 )
inline

Definition at line 137 of file libqbd_taylor.h.

References A0(), and Aminus().

◆ add_level() [1/2]

template<class T>
void line::mam::LibQbdProcess< T >::add_level ( const Matrix< T > & Aminus,
const Matrix< T > & A0,
const Matrix< T > & Aplus )
inline

Definition at line 123 of file libqbd_taylor.h.

References A0(), Aminus(), and Aplus().

◆ add_level() [2/2]

template<class T>
void line::mam::LibQbdProcess< T >::add_level ( const Matrix< T > & Aminus,
const Matrix< T > & Aplus )
inline

A level from its down and up blocks; the local block closes the rows.

Definition at line 117 of file libqbd_taylor.h.

References Aminus(), and Aplus().

Referenced by line::mam::solver_mam_ldqbd_transient().

◆ add_zero_level() [1/2]

template<class T>
void line::mam::LibQbdProcess< T >::add_zero_level ( const Matrix< T > & A0,
const Matrix< T > & Aplus )
inline

Definition at line 110 of file libqbd_taylor.h.

References A0(), Aplus(), and line::InputError::InputError().

◆ add_zero_level() [2/2]

template<class T>
void line::mam::LibQbdProcess< T >::add_zero_level ( const Matrix< T > & Aplus)
inline

Level zero from its upward block alone; the local block is the row-sum negative.

Definition at line 104 of file libqbd_taylor.h.

References Aplus(), and line::InputError::InputError().

Referenced by line::mam::solver_mam_ldqbd_transient().

◆ Aminus()

template<class T>
const Matrix< T > & line::mam::LibQbdProcess< T >::Aminus ( std::size_t level) const
inline

◆ Aplus()

template<class T>
const Matrix< T > & line::mam::LibQbdProcess< T >::Aplus ( std::size_t level) const
inline

Definition at line 151 of file libqbd_taylor.h.

Referenced by add_level(), add_level(), add_zero_level(), add_zero_level(), and mul_row().

◆ empty()

template<class T>
bool line::mam::LibQbdProcess< T >::empty ( ) const
inline

Definition at line 145 of file libqbd_taylor.h.

Referenced by line::mam::taylor_series_adaptive().

◆ min_element()

template<class T>
T line::mam::LibQbdProcess< T >::min_element ( ) const
inline

The most negative diagonal entry over every local block.

Definition at line 159 of file libqbd_taylor.h.

Referenced by line::mam::taylor_series_adaptive().

◆ mul_row()

template<class T>
std::vector< std::vector< T > > line::mam::LibQbdProcess< T >::mul_row ( const std::vector< std::vector< T > > & vec,
const T & cons ) const
inline

vec Q scaled by cons, where vec is one row vector per level.

The result may be ONE LEVEL LONGER than the input: mass pushed above the current top is kept whenever it is nonzero, which is what lets the representation grow with the elapsed time instead of being truncated.

Definition at line 174 of file libqbd_taylor.h.

References A0(), Aminus(), Aplus(), and line::InputError::InputError().

Referenced by line::mam::taylor_series_adaptive().


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