Added a simple scaling function for VectorConfigs
parent
714edb57f0
commit
acfe742c29
|
@ -26,6 +26,16 @@ void check_size(const string& key, const Vector & vj, const Vector & dj) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ************************************************************************* */
|
||||||
|
VectorConfig VectorConfig::scale(double gain) {
|
||||||
|
VectorConfig scaled;
|
||||||
|
string key; Vector val;
|
||||||
|
FOREACH_PAIR(key, val, values) {
|
||||||
|
scaled.insert(key, gain*val);
|
||||||
|
}
|
||||||
|
return scaled;
|
||||||
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
VectorConfig VectorConfig::exmap(const VectorConfig & delta) const
|
VectorConfig VectorConfig::exmap(const VectorConfig & delta) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -53,6 +53,9 @@ namespace gtsam {
|
||||||
*/
|
*/
|
||||||
VectorConfig exmap(const VectorConfig & delta) const;
|
VectorConfig exmap(const VectorConfig & delta) const;
|
||||||
|
|
||||||
|
/** Scales the configuration by a gain */
|
||||||
|
VectorConfig scale(double gain);
|
||||||
|
|
||||||
const_iterator begin() const {return values.begin();}
|
const_iterator begin() const {return values.begin();}
|
||||||
const_iterator end() const {return values.end();}
|
const_iterator end() const {return values.end();}
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,21 @@ TEST( VectorConfig, plus)
|
||||||
CHECK(actual.equals(expected));
|
CHECK(actual.equals(expected));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ************************************************************************* */
|
||||||
|
TEST( VectorConfig, scale) {
|
||||||
|
VectorConfig cfg;
|
||||||
|
cfg.insert("x", Vector_(2, 1.0, 2.0));
|
||||||
|
cfg.insert("y", Vector_(2,-1.0,-2.0));
|
||||||
|
|
||||||
|
VectorConfig actual = cfg.scale(2.0);
|
||||||
|
|
||||||
|
VectorConfig expected;
|
||||||
|
expected.insert("x", Vector_(2, 2.0, 4.0));
|
||||||
|
expected.insert("y", Vector_(2,-2.0,-4.0));
|
||||||
|
|
||||||
|
CHECK(assert_equal(actual, expected));
|
||||||
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
#ifdef HAVE_BOOST_SERIALIZATION
|
#ifdef HAVE_BOOST_SERIALIZATION
|
||||||
TEST( VectorConfig, serialize)
|
TEST( VectorConfig, serialize)
|
||||||
|
|
Loading…
Reference in New Issue