TDLS 0.4.0
Tiny Device-callable Linear Solvers
Loading...
Searching...
No Matches
tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock Struct Reference

Block k of a streamed solve: a view of the areas of the workspace where the solver factors and solves the block, which the caller fills through the accessors when the solver asks for it; the factorization and the solve then run in place; only a save, after the areas of the stored path, is copied to store a refused block as given. The accessors are those of ArrowheadLUppSolverStatic::StreamedBlock, so that one provider serves both solvers. Entries in logical order whatever the layout and the storage. The areas hold the previous block: the caller writes every entry, zeros included, by assignment. More...

#include <solver_dynamic.hpp>

Inheritance diagram for tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock:
[legend]

Public Member Functions

TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & d (const int i, const int j) const noexcept
 
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & akb (const int i, const int c) const noexcept
 
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & y (const int i) const noexcept
 
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & coupling (const int i) const noexcept
 
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & abk (const int r, const int i) const noexcept
 

Public Attributes

T * Dl
 D_k in the layout of the factorization.
 
T * W
 [A_kb | y_k], column c at c * S
 
T * Abk
 A_bk: coupled rows (diagonal) or B x S (dense)
 
int S
 block size
 
int B
 border size
 
int stride
 

Detailed Description

template<typename T, ArrowheadLUppConfig< T > Config>
struct tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock

Block k of a streamed solve: a view of the areas of the workspace where the solver factors and solves the block, which the caller fills through the accessors when the solver asks for it; the factorization and the solve then run in place; only a save, after the areas of the stored path, is copied to store a refused block as given. The accessors are those of ArrowheadLUppSolverStatic::StreamedBlock, so that one provider serves both solvers. Entries in logical order whatever the layout and the storage. The areas hold the previous block: the caller writes every entry, zeros included, by assignment.

Member Function Documentation

◆ abk()

template<typename T , ArrowheadLUppConfig< T > Config>
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock::abk ( const int r,
const int i ) const
inlineconstexprnoexcept
Parameters
[in]rborder row
[in]icolumn of the block
Returns
entry (r, i) of A_bk (dense coupling)

◆ akb()

template<typename T , ArrowheadLUppConfig< T > Config>
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock::akb ( const int i,
const int c ) const
inlineconstexprnoexcept
Parameters
[in]irow of the block
[in]cborder column
Returns
entry (i, c) of A_kb

◆ coupling()

template<typename T , ArrowheadLUppConfig< T > Config>
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock::coupling ( const int i) const
inlineconstexprnoexcept
Parameters
[in]irow and column of the block
Returns
the coupling A_bk(coupling_row + i, i) (diagonal coupling)

◆ d()

template<typename T , ArrowheadLUppConfig< T > Config>
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock::d ( const int i,
const int j ) const
inlineconstexprnoexcept
Parameters
[in]irow of the block
[in]jcolumn of the block
Returns
entry (i, j) of D_k

◆ y()

template<typename T , ArrowheadLUppConfig< T > Config>
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock::y ( const int i) const
inlineconstexprnoexcept
Parameters
[in]irow of the block
Returns
entry i of y_k, the right-hand side on the rows of the block

Member Data Documentation

◆ stride

template<typename T , ArrowheadLUppConfig< T > Config>
int tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock::stride

element stride of the workspace


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