removed caching of size and dim in PairConfig as it was buggy
parent
2f72d585c5
commit
9b93731ed9
|
@ -42,7 +42,7 @@ namespace gtsam {
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
template<class J1, class X1, class J2, class X2>
|
template<class J1, class X1, class J2, class X2>
|
||||||
void PairConfig<J1,X1,J2,X2>::print(const std::string& s) const {
|
void PairConfig<J1,X1,J2,X2>::print(const std::string& s) const {
|
||||||
std::cout << "TupleConfig " << s << ", size " << size_ << "\n";
|
std::cout << "TupleConfig " << s << ", size " << size() << "\n";
|
||||||
first().print(s + "Config1: ");
|
first().print(s + "Config1: ");
|
||||||
second().print(s + "Config2: ");
|
second().print(s + "Config2: ");
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,25 +376,21 @@ namespace gtsam {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
size_t size_;
|
|
||||||
size_t dim_;
|
|
||||||
|
|
||||||
PairConfig(const LieConfig<J1,X1>& config1, const LieConfig<J2,X2>& config2) :
|
PairConfig(const LieConfig<J1,X1>& config1, const LieConfig<J2,X2>& config2) :
|
||||||
first_(config1), second_(config2),
|
first_(config1), second_(config2){}
|
||||||
size_(config1.size()+config2.size()), dim_(gtsam::dim(config1)+gtsam::dim(config2)) {}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor creates an empty config.
|
* Default constructor creates an empty config.
|
||||||
*/
|
*/
|
||||||
PairConfig(): size_(0), dim_(0) {}
|
PairConfig(){}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copy constructor
|
* Copy constructor
|
||||||
*/
|
*/
|
||||||
PairConfig(const PairConfig<J1, X1, J2, X2>& c):
|
PairConfig(const PairConfig<J1, X1, J2, X2>& c):
|
||||||
first_(c.first_), second_(c.second_), size_(c.size_), dim_(c.dim_) {}
|
first_(c.first_), second_(c.second_){}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Print
|
* Print
|
||||||
|
@ -422,27 +418,23 @@ namespace gtsam {
|
||||||
/**
|
/**
|
||||||
* size is the total number of variables in this config.
|
* size is the total number of variables in this config.
|
||||||
*/
|
*/
|
||||||
size_t size() const { return size_; }
|
size_t size() const { return first_.size() + second_.size(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dim is the dimensionality of the tangent space
|
* dim is the dimensionality of the tangent space
|
||||||
*/
|
*/
|
||||||
size_t dim() const { return dim_; }
|
size_t dim() const { return first_.dim() + second_.dim(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template<class Config, class Key, class Value>
|
template<class Config, class Key, class Value>
|
||||||
void insert_helper(Config& config, const Key& j, const Value& value) {
|
void insert_helper(Config& config, const Key& j, const Value& value) {
|
||||||
config.insert(j, value);
|
config.insert(j, value);
|
||||||
size_ ++;
|
|
||||||
dim_ += gtsam::dim(value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Config, class Key>
|
template<class Config, class Key>
|
||||||
void erase_helper(Config& config, const Key& j) {
|
void erase_helper(Config& config, const Key& j) {
|
||||||
size_t dim;
|
size_t dim;
|
||||||
config.erase(j, dim);
|
config.erase(j, dim);
|
||||||
dim_ -= dim;
|
|
||||||
size_ --;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue