File optimization_stats.h#

namespace sym

Typedefs

template<typename Scalar>
using SparseOptimizationStats = OptimizationStats<Eigen::SparseMatrix<Scalar>>#
template<typename Scalar>
using DenseOptimizationStats = OptimizationStats<MatrixX<Scalar>>#
using OptimizationStatsd = SparseOptimizationStats<double>#
using OptimizationStatsf = SparseOptimizationStats<float>#
template<typename MatrixType>
struct OptimizationStats#
#include <optimization_stats.h>

Debug stats for a full optimization run

Public Functions

inline optimization_stats_t GetLcmType() const#
inline auto JacobianView(const optimization_iteration_t &iteration) const#

Get a view of the Jacobian at a particular iteration

The lifetime of the result is tied to the lifetime of the OptimizationStats object

inline void Reset(const size_t num_iterations)#

Reset the optimization stats

Does not cause reallocation, except for things in debug stats

Public Members

std::vector<optimization_iteration_t> iterations#
int32_t best_index = {0}#

Index into iterations of the best iteration (containing the optimal Values)

optimization_status_t status = {}#

What was the result of the optimization?

int32_t failure_reason = {}#

If status == FAILED, why? This should be cast to the Optimizer::FailureReason enum for the nonlinear solver you used.

optional<Linearization<MatrixType>> best_linearization = {}#

The linearization at best_index (at optimized_values), filled out if populate_best_linearization = true

sparse_matrix_structure_t jacobian_sparsity = {}#

The sparsity pattern of the problem jacobian

Only filled if Optimizer created with debug_stats = true and include_jacobians = true, otherwise default constructed.

If using a dense linearization, only the shape field will be filled.

Eigen::VectorXi linear_solver_ordering = {}#

The permutation used by the linear solver

Only filled if using an Optimizer created with debug_stats = true and a linear solver that exposes Permutation() (such as the default SparseCholeskySolver). Otherwise, will be default constructed.

sparse_matrix_structure_t cholesky_factor_sparsity = {}#

The sparsity pattern of the cholesky factor L

Only filled if using an Optimizer created with debug_stats = true and a linear solver that exposes L() (such as the default SparseCholeskySolver). Otherwise, will be default constructed.