TDLS 0.4.0
Tiny Device-callable Linear Solvers
Loading...
Searching...
No Matches
tdls::detail::ArrowheadRecomputedBlock< T, S, B, col, diag > Struct Template Reference

Block k of a recomputed solve (solve_inplace_recomputed, solve_inplace_recomputed_or_tangent): a StreamedBlock, the same 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_static.hpp>

Inheritance diagram for tdls::detail::ArrowheadRecomputedBlock< T, S, B, col, diag >:
[legend]
Collaboration diagram for tdls::detail::ArrowheadRecomputedBlock< T, S, B, col, diag >:
[legend]

Public Attributes

bool recovery = false
 
- Public Attributes inherited from tdls::detail::ArrowheadStreamedBlock< T, S, B, col, diag >
T Dl [S *S]
 D_k in the layout of the factorization.
 
T W [(B+1) *S]
 [A_kb | y_k], column c at c * S
 
T Abk [diag ? S :B *S]
 

Additional Inherited Members

- Public Member Functions inherited from tdls::detail::ArrowheadStreamedBlock< T, S, B, col, diag >
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & d (const int i, const int j) noexcept
 
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & akb (const int i, const int c) noexcept
 
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & y (const int i) noexcept
 
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & coupling (const int i) noexcept
 
TDLS_HOST_DEVICE TDLS_FORCE_INLINE_ALL constexpr T & abk (const int r, const int i) noexcept
 

Detailed Description

template<typename T, int S, int B, bool col, bool diag>
struct tdls::detail::ArrowheadRecomputedBlock< T, S, B, col, diag >

Block k of a recomputed solve (solve_inplace_recomputed, solve_inplace_recomputed_or_tangent): a StreamedBlock, the same 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.

Template Parameters
Tscalar type
Sunknowns of a block
Bborder unknowns
colcolumn-major layout
diagdiagonal coupling

Member Data Documentation

◆ recovery

template<typename T , int S, int B, bool col, bool diag>
bool tdls::detail::ArrowheadRecomputedBlock< T, S, B, col, diag >::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: