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

PCG solver using the Schur complement. More...

#include <pcg_schur.hpp>

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

Public Member Functions

 PCGSchurSolver (size_t max_iter, T tol, T rejection_ratio, SchurPreconditioner< T, S > *preconditioner)
 
virtual void update_structure (Graph< T, S > *graph, StreamPool &streams) override
 
virtual void update_values (Graph< T, S > *graph, StreamPool &streams) override
 
virtual void set_damping_factor (Graph< T, S > *graph, T damping_factor, const bool use_identity, StreamPool &streams) override
 
virtual bool solve (Graph< T, S > *graph, T *x, StreamPool &streams) override
 

Private Attributes

Hessian< T, S > H
 
SchurComplement< T, S > schur
 
SchurPreconditioner< T, S > * preconditioner
 
thrust::device_vector< T > r
 
thrust::device_vector< T > p
 
thrust::device_vector< T > z
 
thrust::device_vector< T > Ap
 
thrust::device_vector< T > x_backup
 
size_t pose_dim
 
size_t max_iter
 
tol
 
rejection_ratio
 

Detailed Description

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

PCG solver using the Schur complement.

Member Function Documentation

◆ set_damping_factor()

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

◆ solve()

template<typename T , typename S >
virtual bool graphite::PCGSchurSolver< T, S >::solve ( Graph< T, S > *  graph,
T *  x,
StreamPool streams 
)
inlineoverridevirtual

◆ update_structure()

template<typename T , typename S >
virtual void graphite::PCGSchurSolver< T, S >::update_structure ( Graph< T, S > *  graph,
StreamPool streams 
)
inlineoverridevirtual

◆ update_values()

template<typename T , typename S >
virtual void graphite::PCGSchurSolver< T, S >::update_values ( Graph< T, S > *  graph,
StreamPool streams 
)
inlineoverridevirtual

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