(in branch) Fixed some compile errors
parent
f76c7be5b2
commit
a7a845a803
|
@ -96,7 +96,7 @@ namespace gtsam {
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
template<class ValueType>
|
template<class ValueType>
|
||||||
void DynamicValues::insert(const Symbol& j, const ValueType& val) {
|
void DynamicValues::insert(const Symbol& j, const ValueType& val) {
|
||||||
std::pair<iterator,bool> insertResult = values_.insert(make_pair(j, ValuePtr(new ValueType(val))));
|
std::pair<iterator,bool> insertResult = values_.insert(make_pair(j, new ValueType(val)));
|
||||||
if(!insertResult.second)
|
if(!insertResult.second)
|
||||||
throw DynamicValuesKeyAlreadyExists(j);
|
throw DynamicValuesKeyAlreadyExists(j);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
|
#include <boost/bind.hpp>
|
||||||
#include <boost/iterator/transform_iterator.hpp>
|
#include <boost/iterator/transform_iterator.hpp>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
@ -79,7 +80,7 @@ namespace gtsam {
|
||||||
BOOST_FOREACH(const KeyValuePair& key_value, values_) {
|
BOOST_FOREACH(const KeyValuePair& key_value, values_) {
|
||||||
const SubVector& singleDelta = delta[ordering[key_value.first]]; // Delta for this value
|
const SubVector& singleDelta = delta[ordering[key_value.first]]; // Delta for this value
|
||||||
ValuePtr retractedValue(key_value.second->retract_(singleDelta)); // Retract
|
ValuePtr retractedValue(key_value.second->retract_(singleDelta)); // Retract
|
||||||
result.values_.insert(make_pair(key_value.first, retractedValue)); // Add retracted result directly to result values
|
result.values_[key_value.first] = retractedValue; // Add retracted result directly to result values
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -105,8 +106,8 @@ namespace gtsam {
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
void DynamicValues::insert(const DynamicValues& values) {
|
void DynamicValues::insert(const DynamicValues& values) {
|
||||||
BOOST_FOREACH(const KeyValuePair& key_value, values) {
|
BOOST_FOREACH(const KeyValuePair& key_value, values.values_) {
|
||||||
insert(key_value.first, key_value.second);
|
values_.insert(make_pair(key_value.first, key_value.second->clone_()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,8 +129,8 @@ namespace gtsam {
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
FastList<Symbol> DynamicValues::keys() const {
|
FastList<Symbol> DynamicValues::keys() const {
|
||||||
return FastList<Symbol>(
|
return FastList<Symbol>(
|
||||||
boost::make_transform_iterator(values_.begin(), &KeyValuePair::first),
|
boost::make_transform_iterator(values_.begin(), boost::bind(&KeyValuePair::first, _1)),
|
||||||
boost::make_transform_iterator(values_.end(), &KeyValuePair::first));
|
boost::make_transform_iterator(values_.end(), boost::bind(&KeyValuePair::first, _1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
@ -145,14 +146,14 @@ namespace gtsam {
|
||||||
// Transform with Value::dim(auto_ptr::get(KeyValuePair::second))
|
// Transform with Value::dim(auto_ptr::get(KeyValuePair::second))
|
||||||
result.assign(
|
result.assign(
|
||||||
boost::make_transform_iterator(values_.begin(),
|
boost::make_transform_iterator(values_.begin(),
|
||||||
boost::bind(&Value::dim, boost::bind(&ValuePtr::get, boost::bind(&KeyValuePair::second)))),
|
boost::bind(&Value::dim, boost::bind(&ValuePtr::get, boost::bind(&KeyValuePair::second, _1)))),
|
||||||
boost::make_transform_iterator(values_.begin(),
|
boost::make_transform_iterator(values_.begin(),
|
||||||
boost::bind(&Value::dim, boost::bind(&ValuePtr::get, boost::bind(&KeyValuePair::second)))));
|
boost::bind(&Value::dim, boost::bind(&ValuePtr::get, boost::bind(&KeyValuePair::second, _1)))));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
Ordering::shared_ptr DynamicValues::orderingArbitrary(Index firstVar = 0) const {
|
Ordering::shared_ptr DynamicValues::orderingArbitrary(Index firstVar) const {
|
||||||
Ordering::shared_ptr ordering(new Ordering);
|
Ordering::shared_ptr ordering(new Ordering);
|
||||||
BOOST_FOREACH(const KeyValuePair& key_value, values_) {
|
BOOST_FOREACH(const KeyValuePair& key_value, values_) {
|
||||||
ordering->insert(key_value.first, firstVar++);
|
ordering->insert(key_value.first, firstVar++);
|
||||||
|
|
Loading…
Reference in New Issue