diff --git a/gtsam/linear/JacobianFactor.cpp b/gtsam/linear/JacobianFactor.cpp index 57a9e2dd8..ce3803703 100644 --- a/gtsam/linear/JacobianFactor.cpp +++ b/gtsam/linear/JacobianFactor.cpp @@ -57,6 +57,12 @@ namespace gtsam { for(size_t i=0; i(matrix_); Ab_.rowEnd() = maxrank; model_ = noiseModel::Unit::Create(maxrank); size_t varpos = 0; - firstNonzeroBlocks_.resize(this->size1()); - for(size_t row=0; rowsize1(); ++row) { - while(varpos < this->keys_.size() && Ab_.offset(varpos+1) <= row) - ++ varpos; - firstNonzeroBlocks_[row] = varpos; + firstNonzeroBlocks_.resize(this->size1(), 0); + + // Sort keys + set vars; + for(size_t j=0; j