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

Block k of a recomputed solve (solve_inplace_recomputed, solve_inplace_recomputed_or_tangent): a StreamedBlock, the same view and accessors, and whether the solver asks for the block again, in its recovery. A provider taking a StreamedBlock& serves too; one taking a RecomputedBlock&, or auto&, reads the flag. The streamed entry points keep the StreamedBlock alone, so that their code is that of a solver without the recomputed ones. More...

#include <solver_dynamic.hpp>

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

Public Attributes

bool recovery = false
 
- Public Attributes inherited from tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock
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
 

Additional Inherited Members

- Public Member Functions inherited from tdls::ArrowheadLUppSolverDynamic< T, Config >::StreamedBlock
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
 

Detailed Description

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

Block k of a recomputed solve (solve_inplace_recomputed, solve_inplace_recomputed_or_tangent): a StreamedBlock, the same view and accessors, and whether the solver asks for the block again, in its recovery. A provider taking a StreamedBlock& serves too; one taking a RecomputedBlock&, or auto&, reads the flag. The streamed entry points keep the StreamedBlock alone, so that their code is that of a solver without the recomputed ones.

Member Data Documentation

◆ recovery

template<typename T , ArrowheadLUppConfig< T > Config>
bool tdls::ArrowheadLUppSolverDynamic< T, Config >::RecomputedBlock::recovery = false

Set when the solver asks for the block again, in its recovery: the provider may then skip what it accumulates once per pass, a residual for instance. False while it condenses the block.


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