|
smooth
A C++ library for Lie theory
|
Sparse versions of certain Lie group methods. More...
#include <Eigen/Sparse>#include "detail/utils.hpp"#include "lie_groups.hpp"#include "detail/lie_group_sparse_impl.hpp"
Go to the source code of this file.
Classes | |
| struct | traits::lie_sparse< G > |
| Traits that defines sparsity patterns for various groups. More... | |
Functions | |
| template<LieGroup G> | |
| void | ad_sparse (Eigen::SparseMatrix< Scalar< G > > &sp, const Tangent< G > &a) |
| Sparse ad. | |
| template<LieGroup G, bool Inv = false> | |
| void | dr_exp_sparse (Eigen::SparseMatrix< Scalar< G > > &sp, const Tangent< G > &a, Eigen::Index i0=0) |
| Sparse dr_exp. | |
| template<LieGroup G> | |
| void | dr_expinv_sparse (Eigen::SparseMatrix< Scalar< G > > &sp, const Tangent< G > &a, Eigen::Index i0=0) |
| Sparse dr_expinv. | |
| template<LieGroup G, bool Inv = false> | |
| void | d2r_exp_sparse (Eigen::SparseMatrix< Scalar< G > > &sp, const Tangent< G > &a, Eigen::Index i0=0) |
| Sparse d2r_exp. | |
| template<LieGroup G> | |
| void | d2r_expinv_sparse (Eigen::SparseMatrix< Scalar< G > > &sp, const Tangent< G > &a, Eigen::Index i0=0) |
| Sparse d2r_expinv. | |
Variables | |
| template<LieGroup G> | |
| std::array< Eigen::SparseMatrix< Scalar< G > >, Dof< G > > | generators_sparse |
| Generators of lie algebra (inline variable). | |
| template<LieGroup G> | |
| Eigen::SparseMatrix< Scalar< G > > | ad_sparse_pattern |
| Sparsity pattern of ad_sparse (inline variable). | |
| template<LieGroup G> | |
| Eigen::SparseMatrix< Scalar< G > > | d_exp_sparse_pattern |
| Sparsity pattern of dr_exp_sparse, dr_expinv_sparse (inline variable). | |
| template<LieGroup G> | |
| Eigen::SparseMatrix< Scalar< G > > | d2_exp_sparse_pattern |
| Sparsity pattern of d2r_exp_sparse(), d2r_expinv_sparse() (inline variable). | |
Sparse versions of certain Lie group methods.
Implemented methods contain two parts: a pattern and the function itself. The pattern is in the form of an inline sparse matrix variable that is pre-allocated with the appropriate nonzeros.
The intended usage is to copy a pattern and use the resulting variable in calls to these methods. That way no additional allocation is needed.
Example:
Definition in file lie_sparse.hpp.
| void ad_sparse | ( | Eigen::SparseMatrix< Scalar< G > > & | sp, |
| const Tangent< G > & | a | ||
| ) |
Sparse ad.
| [in,out] | sp | allocated and compressed sparse matrix |
| [in] | a | Lie algebra element |
| void d2r_exp_sparse | ( | Eigen::SparseMatrix< Scalar< G > > & | sp, |
| const Tangent< G > & | a, | ||
| Eigen::Index | i0 = 0 |
||
| ) |
Sparse d2r_exp.
| G | Lie group |
| Inv | compute d2r_expinv |
| [in,out] | sp | allocated and compressed sparse matrix |
| [in] | a | Lie algebra element |
| [in] | i0 | block index (row and column) in sp where result is inserted |
|
inline |
Sparse d2r_expinv.
| G | Lie group |
| [in,out] | sp | allocated and compressed sparse matrix |
| [in] | a | Lie algebra element |
| [in] | i0 | block index (row and column) in sp where result is inserted |
| void dr_exp_sparse | ( | Eigen::SparseMatrix< Scalar< G > > & | sp, |
| const Tangent< G > & | a, | ||
| Eigen::Index | i0 = 0 |
||
| ) |
Sparse dr_exp.
| G | Lie group |
| Inv | compute dr_expinv |
| [in,out] | sp | allocated and compressed sparse matrix |
| [in] | a | Lie algebra element |
| [in] | i0 | block index (row and column) in sp where result is inserted |
| void dr_expinv_sparse | ( | Eigen::SparseMatrix< Scalar< G > > & | sp, |
| const Tangent< G > & | a, | ||
| Eigen::Index | i0 = 0 |
||
| ) |
Sparse dr_expinv.
| G | Lie group |
| [in,out] | sp | allocated and compressed sparse matrix |
| [in] | a | Lie algebra element |
| [in] | i0 | block index (row and column) in sp where result is inserted |
Sparsity pattern of ad_sparse (inline variable).
Definition at line 62 of file lie_sparse.hpp.
Sparsity pattern of d2r_exp_sparse(), d2r_expinv_sparse() (inline variable).
Definition at line 144 of file lie_sparse.hpp.
Sparsity pattern of dr_exp_sparse, dr_expinv_sparse (inline variable).
Definition at line 89 of file lie_sparse.hpp.
Generators of lie algebra (inline variable).
Definition at line 48 of file lie_sparse.hpp.