namespace mola::cov_diag

Overview

namespace cov_diag {

// global functions

std::ostream* stream();
double anisotropy(const mrpt::math::CMatrixFloat33& covInv);
bool isIsotropicFallback(const mrpt::math::CMatrixFloat33& c);

template <typename LocalCovFn, typename GlobalCovFn>
void dump(
    std::ostream& os,
    const char* mapClass,
    const mp2p_icp::MatchedPointWithCovList& pairings,
    std::size_t firstNew,
    LocalCovFn&& localCov,
    GlobalCovFn&& globalCov
    );

} // namespace cov_diag

Global Functions

std::ostream* stream()

Shared output stream, or nullptr when the feature is off.

double anisotropy(const mrpt::math::CMatrixFloat33& covInv)

Ratio of largest to smallest eigenvalue of a symmetric 3x3 weight matrix. Around 1000 for a well-conditioned plane pairing whose two sides agree on the normal, and around 2 once either side has degenerated.

bool isIsotropicFallback(const mrpt::math::CMatrixFloat33& c)

True for a covariance that fell back to the isotropic identity. A rotation leaves the identity unchanged, so this is recognizable in either frame.

template <typename LocalCovFn, typename GlobalCovFn>
void dump(
    std::ostream& os,
    const char* mapClass,
    const mp2p_icp::MatchedPointWithCovList& pairings,
    std::size_t firstNew,
    LocalCovFn&& localCov,
    GlobalCovFn&& globalCov
    )

Writes one summary row for the pairings appended by one matching call. localCov and globalCov are callables mapping a pairing index to the covariance that side contributed, so both map classes can share this.