HLIBpro
2.8.1
|
Handles updates for a single matrix block by accumulating direct updates and recursive (pending) updates.
#include <TUpdateAccumulator.hh>
Public Member Functions | |
~TUpdateAccumulator () | |
dtor | |
void | init (const TMatrix *M) |
initialise matrix for accumulated updates | |
void | apply_direct (const TTruncAcc &acc, TMatrix *dest=nullptr, const bool update_dest=false) |
bool | has_updates () const |
return true if accumulator holds any updates | |
auto | accumulated_updates () -> TMatrix * |
access accumulated updates | |
auto | pending_direct () -> direct_updates_t & |
access set of direct pending updates | |
auto | pending_recursive () -> recursive_updates_t & |
access set of recursive pending updates | |
void | add_update (const TMatrix *M, const TTruncAcc &acc, const TMatrix *dest=nullptr) |
add update matrix | |
void | add_parent_update (const TMatrix *M, const TTruncAcc &acc) |
add update from parent matrix | |
void | add_pending_direct (TDirectMatrixUpdate *U) |
add update U to set of recursive pending updates | |
void | add_pending_recursive (TRecursiveMatrixUpdate *U) |
add update U to set of recursive pending updates | |
void | clear_accumulated () |
remove matrix with accumulated updates | |
void | clear_pending () |
remove list of pending updates | |
void | clear_updates () |
clear all updates | |
Public Member Functions inherited from TLockable | |
TMutex & | mutex () |
give access to internal mutex | |
void | lock () |
lock local mutex | |
void | unlock () |
unlock local mutex | |
size_t | byte_size () const |
return size in bytes used by this object | |