From fc3b668171d1e4d0c0325ceaee8a4c7cbb7310d1 Mon Sep 17 00:00:00 2001 From: Alex Cunningham Date: Tue, 8 Mar 2011 18:13:49 +0000 Subject: [PATCH] Removed boost.serialization export keys from noisemodel because they don't work outside of one test --- .cproject | 276 +++++++++++++++++----------------- gtsam/linear/NoiseModel.cpp | 11 +- gtsam/linear/NoiseModel.h | 15 +- gtsam/linear/SharedDiagonal.h | 4 + gtsam/linear/SharedGaussian.h | 5 +- tests/testSerialization.cpp | 11 ++ 6 files changed, 167 insertions(+), 155 deletions(-) diff --git a/.cproject b/.cproject index b086d14c5..9d037969e 100644 --- a/.cproject +++ b/.cproject @@ -322,6 +322,14 @@ true true + + make + -j2 + testGaussianFactor.run + true + true + true + make -j2 @@ -348,7 +356,6 @@ make - tests/testBayesTree.run true false @@ -356,7 +363,6 @@ make - testBinaryBayesNet.run true false @@ -404,7 +410,6 @@ make - testSymbolicBayesNet.run true false @@ -412,7 +417,6 @@ make - tests/testSymbolicFactor.run true false @@ -420,7 +424,6 @@ make - testSymbolicFactorGraph.run true false @@ -436,20 +439,11 @@ make - tests/testBayesTree true false true - - make - -j2 - testGaussianFactor.run - true - true - true - make -j2 @@ -484,6 +478,7 @@ make + testGraph.run true false @@ -579,6 +574,7 @@ make + testInference.run true false @@ -586,6 +582,7 @@ make + testGaussianBayesNet.run true false @@ -593,6 +590,7 @@ make + testGaussianFactor.run true false @@ -600,6 +598,7 @@ make + testJunctionTree.run true false @@ -607,6 +606,7 @@ make + testSymbolicBayesNet.run true false @@ -614,6 +614,7 @@ make + testSymbolicFactorGraph.run true false @@ -803,14 +804,6 @@ true true - - make - -j2 - testFusionTupleConfig.run - true - true - true - make -j2 @@ -973,7 +966,6 @@ make - testErrors.run true false @@ -1333,6 +1325,7 @@ make + testSimulated2DOriented.run true false @@ -1372,6 +1365,7 @@ make + testSimulated2D.run true false @@ -1379,6 +1373,7 @@ make + testSimulated3D.run true false @@ -1474,6 +1469,7 @@ make + tests/testGaussianISAM2 true false @@ -1495,46 +1491,6 @@ true true - - make - -j2 - install - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - dist - true - true - true - make -j2 @@ -1631,6 +1587,54 @@ true true + + make + -j2 + install + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + dist + true + true + true + + + make + -j2 + check + true + true + true + make -j2 @@ -1663,14 +1667,6 @@ true true - - make - -j2 - check - true - true - true - @@ -1993,6 +1989,14 @@ true true + + make + -j2 + testGaussianFactor.run + true + true + true + make -j2 @@ -2019,7 +2023,6 @@ make - tests/testBayesTree.run true false @@ -2027,7 +2030,6 @@ make - testBinaryBayesNet.run true false @@ -2075,7 +2077,6 @@ make - testSymbolicBayesNet.run true false @@ -2083,7 +2084,6 @@ make - tests/testSymbolicFactor.run true false @@ -2091,7 +2091,6 @@ make - testSymbolicFactorGraph.run true false @@ -2107,20 +2106,11 @@ make - tests/testBayesTree true false true - - make - -j2 - testGaussianFactor.run - true - true - true - make -j2 @@ -2155,6 +2145,7 @@ make + testGraph.run true false @@ -2250,6 +2241,7 @@ make + testInference.run true false @@ -2257,6 +2249,7 @@ make + testGaussianBayesNet.run true false @@ -2264,6 +2257,7 @@ make + testGaussianFactor.run true false @@ -2271,6 +2265,7 @@ make + testJunctionTree.run true false @@ -2278,6 +2273,7 @@ make + testSymbolicBayesNet.run true false @@ -2285,6 +2281,7 @@ make + testSymbolicFactorGraph.run true false @@ -2474,14 +2471,6 @@ true true - - make - -j2 - testFusionTupleConfig.run - true - true - true - make -j2 @@ -2644,7 +2633,6 @@ make - testErrors.run true false @@ -3004,6 +2992,7 @@ make + testSimulated2DOriented.run true false @@ -3043,6 +3032,7 @@ make + testSimulated2D.run true false @@ -3050,6 +3040,7 @@ make + testSimulated3D.run true false @@ -3145,6 +3136,7 @@ make + tests/testGaussianISAM2 true false @@ -3166,46 +3158,6 @@ true true - - make - -j2 - install - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - dist - true - true - true - make -j2 @@ -3302,6 +3254,54 @@ true true + + make + -j2 + install + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + dist + true + true + true + + + make + -j2 + check + true + true + true + make -j2 @@ -3334,14 +3334,6 @@ true true - - make - -j2 - check - true - true - true - diff --git a/gtsam/linear/NoiseModel.cpp b/gtsam/linear/NoiseModel.cpp index fe230588c..bd366e74e 100644 --- a/gtsam/linear/NoiseModel.cpp +++ b/gtsam/linear/NoiseModel.cpp @@ -42,11 +42,12 @@ static double inf = std::numeric_limits::infinity(); using namespace std; /** implement the export code for serialization */ -BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Constrained); -BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Diagonal); -BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Gaussian); -BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Unit); -BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Isotropic); +// FIXME: doesn't work outside of the library +//BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Constrained); +//BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Diagonal); +//BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Gaussian); +//BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Unit); +//BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Isotropic); namespace gtsam { diff --git a/gtsam/linear/NoiseModel.h b/gtsam/linear/NoiseModel.h index 457a178b5..e5a5db009 100644 --- a/gtsam/linear/NoiseModel.h +++ b/gtsam/linear/NoiseModel.h @@ -510,12 +510,13 @@ namespace gtsam { } // namespace gtsam /** Export keys for serialization */ -#include -#include -BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Constrained, "gtsam_noiseModel_Constrained"); -BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Diagonal, "gtsam_noiseModel_Diagonal"); -BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Gaussian, "gtsam_noiseModel_Gaussian"); -BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Unit, "gtsam_noiseModel_Unit"); -BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Isotropic, "gtsam_noiseModel_Isotropic"); +// FIXME: doesn't actually work outside of the library +//#include +//#include +//BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Constrained, "gtsam_noiseModel_Constrained"); +//BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Diagonal, "gtsam_noiseModel_Diagonal"); +//BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Gaussian, "gtsam_noiseModel_Gaussian"); +//BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Unit, "gtsam_noiseModel_Unit"); +//BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Isotropic, "gtsam_noiseModel_Isotropic"); diff --git a/gtsam/linear/SharedDiagonal.h b/gtsam/linear/SharedDiagonal.h index 57d5e4c2b..6564a3c7e 100644 --- a/gtsam/linear/SharedDiagonal.h +++ b/gtsam/linear/SharedDiagonal.h @@ -18,6 +18,8 @@ #pragma once +#include +#include #include namespace gtsam { // note, deliberately not in noiseModel namespace @@ -68,3 +70,5 @@ namespace gtsam { // note, deliberately not in noiseModel namespace } } + +BOOST_CLASS_EXPORT_GUID(gtsam::SharedDiagonal, "gtsam_SharedDiagonal") diff --git a/gtsam/linear/SharedGaussian.h b/gtsam/linear/SharedGaussian.h index d14a43068..7239556f7 100644 --- a/gtsam/linear/SharedGaussian.h +++ b/gtsam/linear/SharedGaussian.h @@ -18,6 +18,8 @@ #pragma once +#include +#include #include namespace gtsam { // note, deliberately not in noiseModel namespace @@ -74,5 +76,6 @@ namespace gtsam { // note, deliberately not in noiseModel namespace boost::serialization::base_object(*this)); } }; - } + +BOOST_CLASS_EXPORT_GUID(gtsam::SharedGaussian, "gtsam_SharedGaussian") diff --git a/tests/testSerialization.cpp b/tests/testSerialization.cpp index be5d32d6d..c98000564 100644 --- a/tests/testSerialization.cpp +++ b/tests/testSerialization.cpp @@ -195,6 +195,13 @@ TEST (Serialization, xml_linear) { // EXPECT(equalsXML()); // EXPECT(equalsXML()); } +/* ************************************************************************* */ +// Export Noisemodels +BOOST_CLASS_EXPORT_GUID(gtsam::noiseModel::Constrained, "gtsam_noiseModel_Constrained"); +BOOST_CLASS_EXPORT_GUID(gtsam::noiseModel::Diagonal, "gtsam_noiseModel_Diagonal"); +BOOST_CLASS_EXPORT_GUID(gtsam::noiseModel::Gaussian, "gtsam_noiseModel_Gaussian"); +BOOST_CLASS_EXPORT_GUID(gtsam::noiseModel::Unit, "gtsam_noiseModel_Unit"); +BOOST_CLASS_EXPORT_GUID(gtsam::noiseModel::Isotropic, "gtsam_noiseModel_Isotropic"); /* ************************************************************************* */ // example noise models @@ -225,6 +232,10 @@ TEST (Serialization, noiseModels) { /* ************************************************************************* */ TEST (Serialization, SharedGaussian_noiseModels) { + SharedGaussian diag3_sg = diag3; + EXPECT(equalsDereferenced(diag3_sg)); + EXPECT(equalsDereferencedXML(diag3_sg)); + EXPECT(equalsDereferenced(diag3)); EXPECT(equalsDereferencedXML(diag3));