diff --git a/.cproject b/.cproject index b6034e167..c47c94ecf 100644 --- a/.cproject +++ b/.cproject @@ -286,39 +286,7 @@ - - make - -j2 - tests/testDSFVector.run - true - true - true - - - make - -j2 - tests/testTestableAssertions.run - true - true - true - - - make - -j2 - tests/testVector.run - true - true - true - - - make - -j2 - tests/testMatrix.run - true - true - true - - + make -j2 check @@ -326,23 +294,15 @@ true true - + make -j2 - tests/testNumericalDerivative.run + tests/testSPQRUtil.run true true true - - make - -j2 - tests/testBlockMatrices.run - true - true - true - - + make -j2 clean @@ -350,110 +310,6 @@ true true - - make - -j2 - tests/testCholesky.run - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - testBTree.run - true - true - true - - - make - -j2 - testDSF.run - true - true - true - - - make - -j2 - testDSFVector.run - true - true - true - - - make - -j2 - testMatrix.run - true - true - true - - - make - -j2 - testSPQRUtil.run - true - true - true - - - make - -j2 - testVector.run - true - true - true - - - make - -j2 - timeMatrix.run - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - tests/testLieConfig.run - true - true - true - make -j2 @@ -480,6 +336,7 @@ make + tests/testBayesTree.run true false @@ -487,6 +344,7 @@ make + testBinaryBayesNet.run true false @@ -534,6 +392,7 @@ make + testSymbolicBayesNet.run true false @@ -541,6 +400,7 @@ make + tests/testSymbolicFactor.run true false @@ -548,6 +408,7 @@ make + testSymbolicFactorGraph.run true false @@ -563,15 +424,120 @@ make + tests/testBayesTree true false true - + make -j2 - vSFMexample.run + testGaussianFactor.run + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j5 + all + true + false + true + + + make + -j5 + check + true + false + true + + + make + -j2 + tests/testPose2.run + true + true + true + + + make + -j2 + tests/testPose3.run + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + clean all + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + clean true true true @@ -616,7 +582,7 @@ true true - + make -j2 check @@ -624,22 +590,6 @@ true true - - make - -j2 - tests/testSPQRUtil.run - true - true - true - - - make - -j2 - clean - true - true - true - make -j2 @@ -672,7 +622,7 @@ true true - + make -j2 check @@ -680,58 +630,18 @@ true true - + make -j2 - all + vSFMexample.run true true true - + make -j2 - clean - true - true - true - - - make - -j2 - check - true - true - true - - - make - - tests/testGaussianISAM2 - true - false - true - - - make - -j2 - all - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - clean + testVSLAMGraph true true true @@ -888,6 +798,890 @@ true true + + make + -j2 + all + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + testGaussianConditional.run + true + true + true + + + make + -j2 + testGaussianFactor.run + true + true + true + + + make + -j2 + timeGaussianFactor.run + true + true + true + + + make + -j2 + timeVectorConfig.run + true + true + true + + + make + -j2 + testVectorBTree.run + true + true + true + + + make + -j2 + testVectorMap.run + true + true + true + + + make + -j2 + testNoiseModel.run + true + true + true + + + make + -j2 + testBayesNetPreconditioner.run + true + true + true + + + make + + testErrors.run + true + false + true + + + make + -j2 + check + true + true + true + + + make + -j2 + tests/testGaussianJunctionTree.run + true + true + true + + + make + -j2 + tests/testGaussianFactor.run + true + true + true + + + make + -j2 + tests/testGaussianConditional.run + true + true + true + + + make + -j2 + tests/timeSLAMlike.run + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + testBTree.run + true + true + true + + + make + -j2 + testDSF.run + true + true + true + + + make + -j2 + testDSFVector.run + true + true + true + + + make + -j2 + testMatrix.run + true + true + true + + + make + -j2 + testSPQRUtil.run + true + true + true + + + make + -j2 + testVector.run + true + true + true + + + make + -j2 + timeMatrix.run + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + testGaussianFactor.run + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + testClusterTree.run + true + true + true + + + make + -j2 + testJunctionTree.run + true + true + true + + + make + -j2 + tests/testEliminationTree.run + true + true + true + + + make + -j2 + tests/testSymbolicFactor.run + true + true + true + + + make + -j2 + tests/testVariableSlots.run + true + true + true + + + make + -j2 + tests/testConditional.run + true + true + true + + + make + -j2 + tests/testSymbolicFactorGraph.run + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + testNonlinearConstraint.run + true + true + true + + + make + -j2 + testLieConfig.run + true + true + true + + + make + -j2 + testConstraintOptimizer.run + true + true + true + + + make + -j2 + install + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + tests/testStereoCamera.run + true + true + true + + + make + -j2 + tests/testRot3M.run + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + tests/testPose2.run + true + true + true + + + make + -j2 + tests/testPose3.run + true + true + true + + + make + -j2 + tests/testPoint3.run + true + true + true + + + make + -j2 + tests/testCalibratedCamera.run + true + true + true + + + make + -j2 + tests/timeRot3.run + true + true + true + + + make + -j2 + tests/timePose3.run + true + true + true + + + make + -j2 + tests/timeStereoCamera.run + true + true + true + + + make + -j2 + tests/testPoint2.run + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + testPlanarSLAM.run + true + true + true + + + make + -j2 + testPose2Config.run + true + true + true + + + make + -j2 + testPose2Factor.run + true + true + true + + + make + -j2 + testPose2Prior.run + true + true + true + + + make + -j2 + testPose2SLAM.run + true + true + true + + + make + -j2 + testPose3Config.run + true + true + true + + + make + -j2 + testPose3SLAM.run + true + true + true + + + make + testSimulated2DOriented.run + true + false + true + + + make + -j2 + testVSLAMConfig.run + true + true + true + + + make + -j2 + testVSLAMFactor.run + true + true + true + + + make + -j2 + testVSLAMGraph.run + true + true + true + + + make + -j2 + testPose3Factor.run + true + true + true + + + make + testSimulated2D.run + true + false + true + + + make + testSimulated3D.run + true + false + true + + + make + -j2 + tests/testGaussianISAM2 + true + true + true + + + make + -j2 + tests/testDSFVector.run + true + true + true + + + make + -j2 + tests/testTestableAssertions.run + true + true + true + + + make + -j2 + tests/testVector.run + true + true + true + + + make + -j2 + tests/testMatrix.run + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + tests/testNumericalDerivative.run + true + true + true + + + make + -j2 + tests/testBlockMatrices.run + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + tests/testCholesky.run + true + true + true + + + make + -j2 + tests/testVectorValues.run + true + true + true + + + make + -j2 + tests/testNoiseModel.run + true + true + true + + + make + -j2 + tests/testGaussianFactor.run + true + true + true + + + make + -j2 + tests/testHessianFactor.run + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + tests/testGaussianConditional.run + true + true + true + + + make + -j2 + tests/testGaussianFactorGraph.run + true + true + true + + + make + -j2 + tests/testGaussianJunctionTree.run + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + tests/testKalmanFilter.run + true + true + true + + + make + -j2 + tests/testGaussianDensity.run + true + true + true + + + make + -j2 + SimpleRotation.run + true + true + true + + + make + -j2 + CameraResectioning + true + true + true + + + make + -j2 + PlanarSLAMExample_easy.run + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + easyPoint2KalmanFilter.run + true + true + true + + + make + -j2 + elaboratePoint2KalmanFilter.run + true + true + true + + + make + -j2 + PlanarSLAMSelfContained_advanced.run + true + true + true + + + make + -j2 + Pose2SLAMExample_advanced.run + true + true + true + + + make + -j2 + Pose2SLAMExample_easy.run + true + true + true + + + make + -j2 + Pose2SLAMwSPCG_easy.run + true + true + true + + + make + -j2 + check + true + true + true + + + make + tests/testGaussianISAM2 + true + false + true + + + make + -j2 + check + true + true + true + + + make + -j2 + tests/testLieConfig.run + true + true + true + + + make + -j5 + check + true + true + true + make -j2 @@ -984,126 +1778,6 @@ true true - - make - -j2 - check - true - true - true - - - make - -j2 - tests/testVectorValues.run - true - true - true - - - make - -j2 - tests/testNoiseModel.run - true - true - true - - - make - -j2 - tests/testGaussianFactor.run - true - true - true - - - make - -j2 - tests/testHessianFactor.run - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - tests/testGaussianConditional.run - true - true - true - - - make - -j2 - tests/testGaussianFactorGraph.run - true - true - true - - - make - -j2 - tests/testGaussianJunctionTree.run - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - tests/testKalmanFilter.run - true - true - true - - - make - -j2 - tests/testGaussianDensity.run - true - true - true - - - make - -j2 - install - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - testGaussianFactor.run - true - true - true - make -j2 @@ -1152,150 +1826,6 @@ true true - - make - -j2 - check - true - true - true - - - make - -j2 - tests/testGaussianJunctionTree.run - true - true - true - - - make - -j2 - tests/testGaussianFactor.run - true - true - true - - - make - -j2 - tests/testGaussianConditional.run - true - true - true - - - make - -j2 - tests/timeSLAMlike.run - true - true - true - - - make - -j2 - tests/testPose2.run - true - true - true - - - make - -j2 - tests/testPose3.run - true - true - true - - - make - -j2 - tests/testStereoCamera.run - true - true - true - - - make - -j2 - tests/testRot3M.run - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - tests/testPose2.run - true - true - true - - - make - -j2 - tests/testPose3.run - true - true - true - - - make - -j2 - tests/testPoint3.run - true - true - true - - - make - -j2 - tests/testCalibratedCamera.run - true - true - true - - - make - -j2 - tests/timeRot3.run - true - true - true - - - make - -j2 - tests/timePose3.run - true - true - true - - - make - -j2 - tests/timeStereoCamera.run - true - true - true - - - make - -j2 - tests/testPoint2.run - true - true - true - make -j1 @@ -1459,7 +1989,6 @@ cmake .. - true false true @@ -1664,525 +2193,6 @@ true true - - make - -j2 - testGaussianFactor.run - true - true - true - - - make - -j2 - testVSLAMGraph - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - testClusterTree.run - true - true - true - - - make - -j2 - testJunctionTree.run - true - true - true - - - make - -j2 - tests/testEliminationTree.run - true - true - true - - - make - -j2 - tests/testSymbolicFactor.run - true - true - true - - - make - -j2 - tests/testVariableSlots.run - true - true - true - - - make - -j2 - tests/testConditional.run - true - true - true - - - make - -j2 - tests/testSymbolicFactorGraph.run - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - testNonlinearConstraint.run - true - true - true - - - make - -j2 - testLieConfig.run - true - true - true - - - make - -j2 - testConstraintOptimizer.run - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - testGaussianConditional.run - true - true - true - - - make - -j2 - testGaussianFactor.run - true - true - true - - - make - -j2 - timeGaussianFactor.run - true - true - true - - - make - -j2 - timeVectorConfig.run - true - true - true - - - make - -j2 - testVectorBTree.run - true - true - true - - - make - -j2 - testVectorMap.run - true - true - true - - - make - -j2 - testNoiseModel.run - true - true - true - - - make - -j2 - testBayesNetPreconditioner.run - true - true - true - - - make - testErrors.run - true - false - true - - - make - -j2 - all - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - clean all - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j5 - all - true - false - true - - - make - -j5 - check - true - false - true - - - make - -j2 - SimpleRotation.run - true - true - true - - - make - -j2 - CameraResectioning - true - true - true - - - make - -j2 - PlanarSLAMExample_easy.run - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - easyPoint2KalmanFilter.run - true - true - true - - - make - -j2 - elaboratePoint2KalmanFilter.run - true - true - true - - - make - -j2 - PlanarSLAMSelfContained_advanced.run - true - true - true - - - make - -j2 - Pose2SLAMExample_advanced.run - true - true - true - - - make - -j2 - Pose2SLAMExample_easy.run - true - true - true - - - make - -j2 - Pose2SLAMwSPCG_easy.run - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - testPlanarSLAM.run - true - true - true - - - make - -j2 - testPose2Config.run - true - true - true - - - make - -j2 - testPose2Factor.run - true - true - true - - - make - -j2 - testPose2Prior.run - true - true - true - - - make - -j2 - testPose2SLAM.run - true - true - true - - - make - -j2 - testPose3Config.run - true - true - true - - - make - -j2 - testPose3SLAM.run - true - true - true - - - make - - testSimulated2DOriented.run - true - false - true - - - make - -j2 - testVSLAMConfig.run - true - true - true - - - make - -j2 - testVSLAMFactor.run - true - true - true - - - make - -j2 - testVSLAMGraph.run - true - true - true - - - make - -j2 - testPose3Factor.run - true - true - true - - - make - - testSimulated2D.run - true - false - true - - - make - - testSimulated3D.run - true - false - true - - - make - -j2 - tests/testGaussianISAM2 - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - clean - true - true - true - diff --git a/gtsam/base/StringFormatter.cpp b/gtsam/base/StringFormatter.cpp new file mode 100644 index 000000000..6674d3f5a --- /dev/null +++ b/gtsam/base/StringFormatter.cpp @@ -0,0 +1,23 @@ +/* ---------------------------------------------------------------------------- + + * GTSAM Copyright 2010, Georgia Tech Research Corporation, + * Atlanta, Georgia 30332-0415 + * All Rights Reserved + * Authors: Frank Dellaert, et al. (see THANKS for the full author list) + + * See LICENSE for the license information + + * -------------------------------------------------------------------------- */ + +/** + * @file StringFormatter.cpp + * @brief + * @author Richard Roberts + * @date Feb 19, 2012 + */ + +#include "StringFormatter.h" + +namespace gtsam { + +} /* namespace gtsam */ diff --git a/gtsam/base/StringFormatter.h b/gtsam/base/StringFormatter.h new file mode 100644 index 000000000..26cea8881 --- /dev/null +++ b/gtsam/base/StringFormatter.h @@ -0,0 +1,36 @@ +/* ---------------------------------------------------------------------------- + + * GTSAM Copyright 2010, Georgia Tech Research Corporation, + * Atlanta, Georgia 30332-0415 + * All Rights Reserved + * Authors: Frank Dellaert, et al. (see THANKS for the full author list) + + * See LICENSE for the license information + + * -------------------------------------------------------------------------- */ + +/** + * @file StringFormatter.h + * @brief + * @author Richard Roberts + * @date Feb 19, 2012 + */ + +#pragma once + +namespace gtsam { + + /** + * + */ + class StringFormatter { + + public: + + virtual ~StringFormatter() {} + + virtual std::string keyToString(Key key) = 0; + + }; + +} /* namespace gtsam */ diff --git a/gtsam/nonlinear/NonlinearFactor.h b/gtsam/nonlinear/NonlinearFactor.h index db1de6740..760514821 100644 --- a/gtsam/nonlinear/NonlinearFactor.h +++ b/gtsam/nonlinear/NonlinearFactor.h @@ -24,6 +24,7 @@ #include #include +#include #include #include @@ -78,7 +79,8 @@ public: /// @{ /** print */ - virtual void print(const std::string& s = "") const { + virtual void print(const std::string& s = "", + const boost::function& keyFormatter = &Symbol::format) const { std::cout << s << ": NonlinearFactor\n"; } diff --git a/gtsam/nonlinear/Symbol.h b/gtsam/nonlinear/Symbol.h index a59e864a3..6a9d612f7 100644 --- a/gtsam/nonlinear/Symbol.h +++ b/gtsam/nonlinear/Symbol.h @@ -119,6 +119,11 @@ public: return (*this) == expected; } + /** Format function that can be passed to print functions in nonlinear */ + static std::string format(Key key) { + return (std::string)Symbol(key); + } + /** Retrieve key character */ unsigned char chr() const { return c_;