Graphite
Loading...
Searching...
No Matches
hessian.hpp File Reference
Include dependency graph for hessian.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename T , typename S , size_t N, size_t E>
__global__ void graphite::ops::compute_hessian_block_kernel (const size_t vi, const size_t vj, size_t dim_i, size_t dim_j, const size_t *active_factors, const size_t num_active_factors, const size_t *ids, const size_t *block_offsets, const uint8_t *vi_active, const uint8_t *vj_active, const size_t *hessian_offset_i, const size_t *hessian_offset_j, const S *jacobian_i, const S *jacobian_j, const S *precision, const S *chi2_derivative, S *hessian)
 
template<typename S , int D>
__global__ void graphite::ops::augment_hessian_diagonal_kernel (S *diagonal_blocks, S *scalar_diagonal, const S mu, const uint8_t *active_state, const size_t num_threads)
 
template<typename T , typename S , typename V >
void graphite::ops::augment_block_diagonal (V *v, InvP< T, S > *block_diagonal, InvP< T, S > *scalar_diagonal, T mu, cudaStream_t stream)
 
template<typename T , typename S , int D>
__global__ void graphite::ops::apply_block_jacobi_kernel (T *z, const T *r, S *block_diagonal, const size_t *hessian_ids, const uint8_t *active_state, const size_t num_threads)
 
template<typename T , typename S , typename V >
void graphite::ops::apply_block_jacobi (V *v, T *z, const T *r, InvP< T, S > *block_diagonal, cudaStream_t stream)
 
template<typename highp , typename InvP , typename T , size_t I, size_t N, size_t E, size_t D>
__global__ void graphite::ops::compute_hessian_diagonal_kernel (InvP *diagonal_blocks, const T *jacs, const size_t *active_ids, const size_t *ids, const uint8_t *active_state, const T *pmat, const T *chi2_derivative, const size_t num_threads)
 
template<typename highp , typename InvP , typename T , size_t I, size_t N, size_t E, size_t D, typename VT , typename F >
__global__ void graphite::ops::compute_hessian_diagonal_dynamic_kernel (InvP *diagonal_blocks, const size_t *active_ids, const size_t *ids, const size_t *hessian_ids, const VT args, const typename F::ObservationType *obs, const highp *jacobian_scales, const typename F::ConstraintDataType *constraint_data, const uint8_t *active_state, const T *pmat, const T *chi2_derivative, const size_t num_threads)
 
template<typename T , typename S , typename F , std::size_t... Is>
void graphite::ops::launch_kernel_block_diagonal (F *f, std::array< InvP< T, S > *, F::get_num_vertices()> &diagonal_blocks, std::array< const size_t *, F::get_num_vertices()> &hessian_ids, std::array< S *, F::get_num_vertices()> &jacs, const T *jacobian_scales, const size_t num_factors, cudaStream_t stream, std::index_sequence< Is... >)
 
template<typename T , typename S , typename F >
void graphite::ops::compute_block_diagonal (F *f, std::array< InvP< T, S > *, F::get_num_vertices()> &diagonal_blocks, const T *jacobian_scales, cudaStream_t stream)
 
template<typename highp , typename T , size_t I, size_t N, size_t E, size_t D>
__global__ void graphite::ops::compute_hessian_scalar_diagonal_kernel (highp *diagonal, const T *jacs, const size_t *active_ids, const size_t *ids, const size_t *hessian_ids, const uint8_t *active_state, const T *pmat, const T *chi2_derivative, const size_t num_threads)
 
template<typename highp , typename T , size_t I, size_t N, size_t E, size_t D, typename VT , typename F , bool use_scales>
__global__ void graphite::ops::compute_hessian_scalar_diagonal_dynamic_kernel (highp *diagonal, const T *jacs, const size_t *active_ids, const size_t *ids, const size_t *hessian_ids, const VT args, const typename F::ObservationType *obs, const highp *jacobian_scales, const typename F::ConstraintDataType *constraint_data, const uint8_t *active_state, const T *pmat, const T *chi2_derivative, const size_t num_threads)
 
template<typename T , typename S , typename F , std::size_t... Is>
void graphite::ops::launch_kernel_hessian_scalar_diagonal (F *f, T *diagonal, std::array< const size_t *, F::get_num_vertices()> &hessian_ids, std::array< S *, F::get_num_vertices()> &jacs, const T *jacobian_scales, const size_t num_factors, std::index_sequence< Is... >)
 
template<typename T , typename S , typename F >
void graphite::ops::compute_hessian_scalar_diagonal (F *f, T *diagonal, const T *jacobian_scales)