Merged in fix/consistency-checks (pull request #316)
Fix/consistency checks Approved-by: Alexander <aes368@cornell.edu>release/4.3a0
commit
98f42bd1e6
|
@ -20,7 +20,7 @@ void Balance2Way(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts)
|
||||||
|
|
||||||
if (graph->ncon == 1) {
|
if (graph->ncon == 1) {
|
||||||
/* return right away if the balance is OK */
|
/* return right away if the balance is OK */
|
||||||
if (iabs(ntpwgts[0]*graph->tvwgt[0]-graph->pwgts[0]) < 3*graph->tvwgt[0]/graph->nvtxs)
|
if (fabs(ntpwgts[0]*graph->tvwgt[0]-graph->pwgts[0]) < 3*graph->tvwgt[0]/graph->nvtxs)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (graph->nbnd > 0)
|
if (graph->nbnd > 0)
|
||||||
|
|
|
@ -188,7 +188,7 @@ boost::tuple<FastVector<DenseIndex>, DenseIndex, DenseIndex> _countDims(
|
||||||
m += factor->rows();
|
m += factor->rows();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef GTSAM_EXTRA_CONSISTENCY_CHECKS
|
#if !defined(NDEBUG) && defined(GTSAM_EXTRA_CONSISTENCY_CHECKS)
|
||||||
for(DenseIndex d: varDims) {
|
for(DenseIndex d: varDims) {
|
||||||
assert(d != numeric_limits<DenseIndex>::max());
|
assert(d != numeric_limits<DenseIndex>::max());
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,6 +106,10 @@ public:
|
||||||
preintMeasCov_(preintMeasCov) {
|
preintMeasCov_(preintMeasCov) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Virtual destructor
|
||||||
|
virtual ~PreintegratedImuMeasurements() {
|
||||||
|
}
|
||||||
|
|
||||||
/// print
|
/// print
|
||||||
void print(const std::string& s = "Preintegrated Measurements:") const override;
|
void print(const std::string& s = "Preintegrated Measurements:") const override;
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ class TangentPreintegration : public PreintegrationBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// @name Constructors
|
/// @name Constructors/destructors
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,6 +53,10 @@ public:
|
||||||
TangentPreintegration(const boost::shared_ptr<Params>& p,
|
TangentPreintegration(const boost::shared_ptr<Params>& p,
|
||||||
const imuBias::ConstantBias& biasHat = imuBias::ConstantBias());
|
const imuBias::ConstantBias& biasHat = imuBias::ConstantBias());
|
||||||
|
|
||||||
|
/// Virtual destructor
|
||||||
|
virtual ~TangentPreintegration() {
|
||||||
|
}
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
/// @name Basic utilities
|
/// @name Basic utilities
|
||||||
|
|
|
@ -291,9 +291,10 @@ size_t ISAM2::Impl::UpdateGaussNewtonDelta(const FastVector<ISAM2::sharedClique>
|
||||||
lastBacksubVariableCount += optimizeWildfireNonRecursive(
|
lastBacksubVariableCount += optimizeWildfireNonRecursive(
|
||||||
root, wildfireThreshold, replacedKeys, delta); // modifies delta
|
root, wildfireThreshold, replacedKeys, delta); // modifies delta
|
||||||
|
|
||||||
#ifdef GTSAM_EXTRA_CONSISTENCY_CHECKS
|
#if !defined(NDEBUG) && defined(GTSAM_EXTRA_CONSISTENCY_CHECKS)
|
||||||
for(size_t j=0; j<delta.size(); ++j)
|
for (VectorValues::const_iterator key_delta = delta.begin(); key_delta != delta.end(); ++key_delta) {
|
||||||
assert(delta[j].unaryExpr(ptr_fun(isfinite<double>)).all());
|
assert(delta[key_delta->first].allFinite());
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ void optimizeWildfire(const boost::shared_ptr<CLIQUE>& clique, double threshold,
|
||||||
|
|
||||||
// Are any clique variables part of the tree that has been redone?
|
// Are any clique variables part of the tree that has been redone?
|
||||||
bool cliqueReplaced = replaced.exists((*clique)->frontals().front());
|
bool cliqueReplaced = replaced.exists((*clique)->frontals().front());
|
||||||
#ifdef GTSAM_EXTRA_CONSISTENCY_CHECKS
|
#if !defined(NDEBUG) && defined(GTSAM_EXTRA_CONSISTENCY_CHECKS)
|
||||||
for(Key frontal: clique->conditional()->frontals()) {
|
for(Key frontal: clique->conditional()->frontals()) {
|
||||||
assert(cliqueReplaced == replaced.exists(frontal));
|
assert(cliqueReplaced == replaced.exists(frontal));
|
||||||
}
|
}
|
||||||
|
@ -121,7 +121,7 @@ bool optimizeWildfireNode(const boost::shared_ptr<CLIQUE>& clique, double thresh
|
||||||
|
|
||||||
// Are any clique variables part of the tree that has been redone?
|
// Are any clique variables part of the tree that has been redone?
|
||||||
bool cliqueReplaced = replaced.exists(clique->conditional()->frontals().front());
|
bool cliqueReplaced = replaced.exists(clique->conditional()->frontals().front());
|
||||||
#ifdef GTSAM_EXTRA_CONSISTENCY_CHECKS
|
#if !defined(NDEBUG) && defined(GTSAM_EXTRA_CONSISTENCY_CHECKS)
|
||||||
for(Key frontal: clique->conditional()->frontals()) {
|
for(Key frontal: clique->conditional()->frontals()) {
|
||||||
assert(cliqueReplaced == replaced.exists(frontal));
|
assert(cliqueReplaced == replaced.exists(frontal));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue