Graphite
Loading...
Searching...
No Matches
graphite::BaseFactorDescriptor< T, S > Class Template Referenceabstract

Base class for factor descriptors. More...

#include <factor.hpp>

Inheritance diagram for graphite::BaseFactorDescriptor< T, S >:

Public Types

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

Public Member Functions

virtual bool use_autodiff ()=0
 
virtual void compute_error ()=0
 
virtual void compute_error_autodiff (StreamPool &streams)=0
 
virtual void compute_b_async (T *b, const T *jacobian_scales)=0
 
virtual void compute_Jv (T *out, T *in, const T *jacobian_scales, StreamPool &streams)=0
 
virtual void compute_Jtv (T *out, T *in, const T *jacobian_scales, StreamPool &streams)=0
 
virtual void flag_active_vertices_async (const uint8_t level)=0
 
virtual void compute_jacobians (StreamPool &streams)=0
 
virtual void compute_hessian_block_diagonal_async (std::unordered_map< BaseVertexDescriptor< T, S > *, thrust::device_vector< InvP > > &block_diagonals, const T *jacobian_scales, cudaStream_t stream)=0
 
virtual void compute_hessian_scalar_diagonal_async (T *diagonal, const T *jacobian_scales)=0
 
virtual JacobianStorage< S > * get_jacobians ()=0
 
virtual void initialize_jacobian_storage ()=0
 
virtual size_t active_count () const =0
 
virtual size_t get_num_descriptors () const =0
 
virtual size_t get_residual_size () const =0
 
virtual void scale_jacobians_async (T *jacobian_scales)=0
 
virtual void initialize_device_ids (const uint8_t optimization_level)=0
 
virtual void to_device ()=0
 
virtual T chi2 ()=0
 
virtual void set_jacobian_storage (const bool store)=0
 
virtual bool store_jacobians ()=0
 
virtual bool supports_dynamic_jacobians ()=0
 
virtual void get_hessian_block_coordinates (thrust::device_vector< BlockCoordinates > &block_coords)=0
 
virtual size_t setup_hessian_computation (std::unordered_map< BlockCoordinates, size_t > &block_indices, thrust::device_vector< S > &d_hessian, size_t *h_block_offsets, StreamPool &streams)=0
 
virtual size_t execute_hessian_computation (std::unordered_map< BlockCoordinates, size_t > &block_indices, thrust::device_vector< S > &d_hessian, size_t *d_block_offsets, StreamPool &streams)=0
 

Detailed Description

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

Base class for factor descriptors.

Member Function Documentation

◆ active_count()

template<typename T , typename S >
virtual size_t graphite::BaseFactorDescriptor< T, S >::active_count ( ) const
pure virtual

◆ chi2()

template<typename T , typename S >
virtual T graphite::BaseFactorDescriptor< T, S >::chi2 ( )
pure virtual

◆ compute_b_async()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::compute_b_async ( T *  b,
const T *  jacobian_scales 
)
pure virtual

◆ compute_error()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::compute_error ( )
pure virtual

◆ compute_error_autodiff()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::compute_error_autodiff ( StreamPool streams)
pure virtual

◆ compute_hessian_block_diagonal_async()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::compute_hessian_block_diagonal_async ( std::unordered_map< BaseVertexDescriptor< T, S > *, thrust::device_vector< InvP > > &  block_diagonals,
const T *  jacobian_scales,
cudaStream_t  stream 
)
pure virtual

◆ compute_hessian_scalar_diagonal_async()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::compute_hessian_scalar_diagonal_async ( T *  diagonal,
const T *  jacobian_scales 
)
pure virtual

◆ compute_jacobians()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::compute_jacobians ( StreamPool streams)
pure virtual

◆ compute_Jtv()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::compute_Jtv ( T *  out,
T *  in,
const T *  jacobian_scales,
StreamPool streams 
)
pure virtual

◆ compute_Jv()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::compute_Jv ( T *  out,
T *  in,
const T *  jacobian_scales,
StreamPool streams 
)
pure virtual

◆ execute_hessian_computation()

template<typename T , typename S >
virtual size_t graphite::BaseFactorDescriptor< T, S >::execute_hessian_computation ( std::unordered_map< BlockCoordinates, size_t > &  block_indices,
thrust::device_vector< S > &  d_hessian,
size_t *  d_block_offsets,
StreamPool streams 
)
pure virtual

◆ get_hessian_block_coordinates()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::get_hessian_block_coordinates ( thrust::device_vector< BlockCoordinates > &  block_coords)
pure virtual

◆ get_jacobians()

template<typename T , typename S >
virtual JacobianStorage< S > * graphite::BaseFactorDescriptor< T, S >::get_jacobians ( )
pure virtual

◆ get_num_descriptors()

template<typename T , typename S >
virtual size_t graphite::BaseFactorDescriptor< T, S >::get_num_descriptors ( ) const
pure virtual

◆ get_residual_size()

template<typename T , typename S >
virtual size_t graphite::BaseFactorDescriptor< T, S >::get_residual_size ( ) const
pure virtual

◆ initialize_device_ids()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::initialize_device_ids ( const uint8_t  optimization_level)
pure virtual

◆ initialize_jacobian_storage()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::initialize_jacobian_storage ( )
pure virtual

◆ scale_jacobians_async()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::scale_jacobians_async ( T *  jacobian_scales)
pure virtual

◆ set_jacobian_storage()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::set_jacobian_storage ( const bool  store)
pure virtual

◆ setup_hessian_computation()

template<typename T , typename S >
virtual size_t graphite::BaseFactorDescriptor< T, S >::setup_hessian_computation ( std::unordered_map< BlockCoordinates, size_t > &  block_indices,
thrust::device_vector< S > &  d_hessian,
size_t *  h_block_offsets,
StreamPool streams 
)
pure virtual

◆ store_jacobians()

template<typename T , typename S >
virtual bool graphite::BaseFactorDescriptor< T, S >::store_jacobians ( )
pure virtual

◆ supports_dynamic_jacobians()

template<typename T , typename S >
virtual bool graphite::BaseFactorDescriptor< T, S >::supports_dynamic_jacobians ( )
pure virtual

◆ to_device()

template<typename T , typename S >
virtual void graphite::BaseFactorDescriptor< T, S >::to_device ( )
pure virtual

◆ use_autodiff()

template<typename T , typename S >
virtual bool graphite::BaseFactorDescriptor< T, S >::use_autodiff ( )
pure virtual

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