Graphite  0.5.0
GPU-accelerated graph optimization framework
Loading...
Searching...
No Matches
graphite::EigenSchurLDLTSolver< T, S, Index > Class Template Reference
Inheritance diagram for graphite::EigenSchurLDLTSolver< T, S, Index >:
Collaboration diagram for graphite::EigenSchurLDLTSolver< T, S, Index >:

Public Member Functions

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 Member Functions

void fill_matrix_structure ()
 
void fill_matrix_values ()
 

Private Attributes

EigenLDLTWrapper< S, Index > solver
 
Eigen::SparseMatrix< S, Eigen::ColMajor, Index > matrix
 
Hessian< T, S > H
 
SchurComplement< T, S > schur
 
CSCMatrix< S, Index > d_matrix
 
thrust::host_vector< S > h_x
 
thrust::host_vector< S > h_b
 

Member Function Documentation

◆ set_damping_factor()

template<typename T , typename S , typename Index = typename Eigen::SparseMatrix<S, Eigen::ColMajor>::StorageIndex>
virtual void graphite::EigenSchurLDLTSolver< T, S, Index >::set_damping_factor ( Graph< T, S > *  graph,
damping_factor,
const bool  use_identity,
StreamPool streams 
)
inlineoverridevirtual

◆ solve()

template<typename T , typename S , typename Index = typename Eigen::SparseMatrix<S, Eigen::ColMajor>::StorageIndex>
virtual bool graphite::EigenSchurLDLTSolver< T, S, Index >::solve ( Graph< T, S > *  graph,
T *  x,
StreamPool streams 
)
inlineoverridevirtual

◆ update_structure()

template<typename T , typename S , typename Index = typename Eigen::SparseMatrix<S, Eigen::ColMajor>::StorageIndex>
virtual void graphite::EigenSchurLDLTSolver< T, S, Index >::update_structure ( Graph< T, S > *  graph,
StreamPool streams 
)
inlineoverridevirtual

◆ update_values()

template<typename T , typename S , typename Index = typename Eigen::SparseMatrix<S, Eigen::ColMajor>::StorageIndex>
virtual void graphite::EigenSchurLDLTSolver< T, S, Index >::update_values ( Graph< T, S > *  graph,
StreamPool streams 
)
inlineoverridevirtual

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