Wrapped sample and print

release/4.3a0
Frank Dellaert 2011-11-05 14:26:57 +00:00
parent 5a7b2e0692
commit 8e1bc54827
4 changed files with 20 additions and 0 deletions

View File

@ -45,10 +45,13 @@ class Pose2 {
class SharedGaussian {
SharedGaussian(Matrix covariance);
void print(string s) const;
};
class SharedDiagonal {
SharedDiagonal(Vector sigmas);
void print(string s) const;
Vector sample() const;
};
class VectorValues {

View File

@ -44,6 +44,12 @@ namespace gtsam { // note, deliberately not in noiseModel namespace
noiseModel::Diagonal::shared_ptr(noiseModel::Diagonal::Sigmas(sigmas)) {
}
/// Print
inline void print(const std::string &s) const { (*this)->print(s); }
/// Generate a sample
inline Vector sample() const { return (*this)->sample(); }
/** Serialization function */
friend class boost::serialization::access;
template<class ARCHIVE>

View File

@ -55,6 +55,9 @@ namespace gtsam { // note, deliberately not in noiseModel namespace
Base(noiseModel::Isotropic::Sigma(GTSAM_DANGEROUS_GAUSSIAN, s)) {}
#endif
/// Print
inline void print(const std::string &s) const { (*this)->print(s); }
/** Serialization function */
friend class boost::serialization::access;
template<class ARCHIVE>

View File

@ -134,6 +134,14 @@ TEST(NoiseModel, equals)
EXPECT(assert_inequal(*i1,*i2));
}
/* ************************************************************************* */
TEST(NoiseModel, sample) {
Vector s = Vector_(3,1.0,2.0,3.0);
SharedDiagonal model = sharedSigmas(s);
Vector v = model->sample();
// no check as no way yet to set random seed
}
/* ************************************************************************* */
TEST(NoiseModel, ConstrainedMixed )
{