Graphite  0.5.0
GPU-accelerated graph optimization framework
Loading...
Searching...
No Matches
graphite::BlockJacobiSchurPreconditioner< T, S > Class Template Reference

Block Jacobi preconditioner for PCG with the Schur complement. More...

#include <block_jacobi_schur.hpp>

Inheritance diagram for graphite::BlockJacobiSchurPreconditioner< T, S >:
Collaboration diagram for graphite::BlockJacobiSchurPreconditioner< T, S >:

Classes

struct  DimGroup
 

Public Member Functions

void update_structure (Graph< T, S > *graph, SchurComplement< T, S > *schur, StreamPool &streams) override
 
void update_values (Graph< T, S > *graph, SchurComplement< T, S > *schur, StreamPool &streams) override
 
void set_damping_factor (Graph< T, S > *graph, SchurComplement< T, S > *schur, T damping_factor, const bool use_identity, StreamPool &streams) override
 
void apply (Graph< T, S > *graph, SchurComplement< T, S > *schur, T *z, const T *r, StreamPool &streams) override
 

Private Types

using P = std::conditional_t< is_low_precision< S >::value, T, S >
 

Private Attributes

std::unordered_map< size_t, DimGroupdim_groups
 
size_t pose_dim
 
cublasHandle_t handle
 

Detailed Description

template<typename T, typename S>
class graphite::BlockJacobiSchurPreconditioner< T, S >

Block Jacobi preconditioner for PCG with the Schur complement.

Member Function Documentation

◆ apply()

template<typename T , typename S >
void graphite::BlockJacobiSchurPreconditioner< T, S >::apply ( Graph< T, S > *  graph,
SchurComplement< T, S > *  schur,
T *  z,
const T *  r,
StreamPool streams 
)
inlineoverridevirtual

◆ set_damping_factor()

template<typename T , typename S >
void graphite::BlockJacobiSchurPreconditioner< T, S >::set_damping_factor ( Graph< T, S > *  graph,
SchurComplement< T, S > *  schur,
damping_factor,
const bool  use_identity,
StreamPool streams 
)
inlineoverridevirtual

◆ update_structure()

template<typename T , typename S >
void graphite::BlockJacobiSchurPreconditioner< T, S >::update_structure ( Graph< T, S > *  graph,
SchurComplement< T, S > *  schur,
StreamPool streams 
)
inlineoverridevirtual

◆ update_values()

template<typename T , typename S >
void graphite::BlockJacobiSchurPreconditioner< T, S >::update_values ( Graph< T, S > *  graph,
SchurComplement< T, S > *  schur,
StreamPool streams 
)
inlineoverridevirtual

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