bug fix: before hessianDiagonal seg-faulted with no noise model
parent
ba6f8b7cca
commit
71e4015304
|
|
@ -447,7 +447,11 @@ namespace gtsam {
|
|||
size_t nj = Ab_(pos).cols();
|
||||
Vector dj(nj);
|
||||
for (size_t k = 0; k < nj; ++k) {
|
||||
Vector column_k = model_->whiten(Ab_(pos).col(k));
|
||||
Vector column_k;
|
||||
if(model_)
|
||||
column_k = model_->whiten(Ab_(pos).col(k));
|
||||
else
|
||||
column_k = Ab_(pos).col(k);
|
||||
dj(k) = dot(column_k,column_k);
|
||||
}
|
||||
d.insert(j,dj);
|
||||
|
|
|
|||
|
|
@ -113,7 +113,9 @@ void LevenbergMarquardtOptimizer::iterate() {
|
|||
double sigma = 1.0 / std::sqrt(state_.lambda);
|
||||
dampedSystem.reserve(dampedSystem.size() + state_.values.size());
|
||||
// for each of the variables, add a prior
|
||||
VectorValues diagHessian = linear->hessianDiagonal();
|
||||
BOOST_FOREACH(const Values::KeyValuePair& key_value, state_.values) {
|
||||
|
||||
size_t dim = key_value.value.dim();
|
||||
Matrix A = Matrix::Identity(dim, dim);
|
||||
Vector b = Vector::Zero(dim);
|
||||
|
|
|
|||
Loading…
Reference in New Issue