Merge branch 'develop' into law/cmakeoptions
commit
d303b221de
|
@ -54,7 +54,7 @@ include(cmake/HandleGeneralOptions.cmake) # CMake build options
|
||||||
# Enable or disable serialization with GTSAM_ENABLE_BOOST_SERIALIZATION
|
# Enable or disable serialization with GTSAM_ENABLE_BOOST_SERIALIZATION
|
||||||
option(GTSAM_ENABLE_BOOST_SERIALIZATION "Enable Boost serialization" ON)
|
option(GTSAM_ENABLE_BOOST_SERIALIZATION "Enable Boost serialization" ON)
|
||||||
if(GTSAM_ENABLE_BOOST_SERIALIZATION)
|
if(GTSAM_ENABLE_BOOST_SERIALIZATION)
|
||||||
add_definitions(-DGTSAM_ENABLE_BOOST_SERIALIZATION)
|
add_compile_definitions(GTSAM_ENABLE_BOOST_SERIALIZATION)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(GTSAM_USE_BOOST_FEATURES "Enable Features that use Boost" ON)
|
option(GTSAM_USE_BOOST_FEATURES "Enable Features that use Boost" ON)
|
||||||
|
|
|
@ -30,7 +30,6 @@ option(GTSAM_ALLOW_DEPRECATED_SINCE_V43 "Allow use of methods/functions depr
|
||||||
option(GTSAM_SUPPORT_NESTED_DISSECTION "Support Metis-based nested dissection" ON)
|
option(GTSAM_SUPPORT_NESTED_DISSECTION "Support Metis-based nested dissection" ON)
|
||||||
option(GTSAM_TANGENT_PREINTEGRATION "Use new ImuFactor with integration on tangent space" ON)
|
option(GTSAM_TANGENT_PREINTEGRATION "Use new ImuFactor with integration on tangent space" ON)
|
||||||
option(GTSAM_SLOW_BUT_CORRECT_BETWEENFACTOR "Use the slower but correct version of BetweenFactor" OFF)
|
option(GTSAM_SLOW_BUT_CORRECT_BETWEENFACTOR "Use the slower but correct version of BetweenFactor" OFF)
|
||||||
option(GTSAM_ENABLE_BOOST_SERIALIZATION "Enable Boost serialization" ON)
|
|
||||||
|
|
||||||
if (GTSAM_FORCE_SHARED_LIB)
|
if (GTSAM_FORCE_SHARED_LIB)
|
||||||
message(STATUS "GTSAM is a shared library due to GTSAM_FORCE_SHARED_LIB")
|
message(STATUS "GTSAM is a shared library due to GTSAM_FORCE_SHARED_LIB")
|
||||||
|
@ -50,11 +49,6 @@ else()
|
||||||
set(GTSAM_SHARED_LIB 0 CACHE BOOL "" FORCE)
|
set(GTSAM_SHARED_LIB 0 CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#TODO(kartikarcot) defining it in config.h.in did not work
|
|
||||||
if (GTSAM_ENABLE_BOOST_SERIALIZATION)
|
|
||||||
add_definitions(-DGTSAM_ENABLE_BOOST_SERIALIZATION)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT MSVC AND NOT XCODE_VERSION)
|
if(NOT MSVC AND NOT XCODE_VERSION)
|
||||||
option(GTSAM_BUILD_WITH_CCACHE "Use ccache compiler cache" ON)
|
option(GTSAM_BUILD_WITH_CCACHE "Use ccache compiler cache" ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -29,6 +29,8 @@ if(NOT MSVC AND NOT XCODE_VERSION)
|
||||||
print_config("C++ compilation flags" "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}")
|
print_config("C++ compilation flags" "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
print_config("Enable Boost serialization" "${GTSAM_ENABLE_BOOST_SERIALIZATION}")
|
||||||
|
|
||||||
print_build_options_for_target(gtsam)
|
print_build_options_for_target(gtsam)
|
||||||
|
|
||||||
print_config("Use System Eigen" "${GTSAM_USE_SYSTEM_EIGEN} (Using version: ${GTSAM_EIGEN_VERSION})")
|
print_config("Use System Eigen" "${GTSAM_USE_SYSTEM_EIGEN} (Using version: ${GTSAM_EIGEN_VERSION})")
|
||||||
|
|
|
@ -139,8 +139,8 @@ compose_pow(const G& g, size_t n) {
|
||||||
/// Assumes nothing except group structure and Testable from G and H
|
/// Assumes nothing except group structure and Testable from G and H
|
||||||
template<typename G, typename H>
|
template<typename G, typename H>
|
||||||
class DirectProduct: public std::pair<G, H> {
|
class DirectProduct: public std::pair<G, H> {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<G>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<G>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsGroup<H>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<H>);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// Default constructor yields identity
|
/// Default constructor yields identity
|
||||||
|
@ -170,8 +170,8 @@ struct traits<DirectProduct<G, H> > :
|
||||||
/// Assumes existence of three additive operators for both groups
|
/// Assumes existence of three additive operators for both groups
|
||||||
template<typename G, typename H>
|
template<typename G, typename H>
|
||||||
class DirectSum: public std::pair<G, H> {
|
class DirectSum: public std::pair<G, H> {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<G>); // TODO(frank): check additive
|
GTSAM_CONCEPT_ASSERT(IsGroup<G>); // TODO(frank): check additive
|
||||||
GTSAM_CONCEPT_ASSERT2(IsGroup<H>); // TODO(frank): check additive
|
GTSAM_CONCEPT_ASSERT(IsGroup<H>); // TODO(frank): check additive
|
||||||
|
|
||||||
const G& g() const { return this->first; }
|
const G& g() const { return this->first; }
|
||||||
const H& h() const { return this->second;}
|
const H& h() const { return this->second;}
|
||||||
|
|
|
@ -27,8 +27,8 @@ namespace gtsam {
|
||||||
/// Assumes Lie group structure for G and H
|
/// Assumes Lie group structure for G and H
|
||||||
template<typename G, typename H>
|
template<typename G, typename H>
|
||||||
class ProductLieGroup: public std::pair<G, H> {
|
class ProductLieGroup: public std::pair<G, H> {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsLieGroup<G>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<G>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsLieGroup<H>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<H>);
|
||||||
typedef std::pair<G, H> Base;
|
typedef std::pair<G, H> Base;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -14,21 +14,12 @@
|
||||||
#include <boost/concept/requires.hpp>
|
#include <boost/concept/requires.hpp>
|
||||||
#include <boost/concept_check.hpp>
|
#include <boost/concept_check.hpp>
|
||||||
#define GTSAM_CONCEPT_ASSERT(concept) BOOST_CONCEPT_ASSERT((concept))
|
#define GTSAM_CONCEPT_ASSERT(concept) BOOST_CONCEPT_ASSERT((concept))
|
||||||
#define GTSAM_CONCEPT_ASSERT1(concept) BOOST_CONCEPT_ASSERT((concept))
|
|
||||||
#define GTSAM_CONCEPT_ASSERT2(concept) BOOST_CONCEPT_ASSERT((concept))
|
|
||||||
#define GTSAM_CONCEPT_ASSERT3(concept) BOOST_CONCEPT_ASSERT((concept))
|
|
||||||
#define GTSAM_CONCEPT_ASSERT4(concept) BOOST_CONCEPT_ASSERT((concept))
|
|
||||||
#define GTSAM_CONCEPT_REQUIRES(concept, return_type) BOOST_CONCEPT_REQUIRES(((concept)), (return_type))
|
#define GTSAM_CONCEPT_REQUIRES(concept, return_type) BOOST_CONCEPT_REQUIRES(((concept)), (return_type))
|
||||||
#else
|
#else
|
||||||
// These do something sensible:
|
// This does something sensible:
|
||||||
#define BOOST_CONCEPT_USAGE(concept) void check##concept()
|
#define BOOST_CONCEPT_USAGE(concept) void check##concept()
|
||||||
// TODO(dellaert): would be nice if it was a single macro...
|
// These just ignore the concept checking for now:
|
||||||
#define GTSAM_CONCEPT_ASSERT(concept) concept checkConcept [[maybe_unused]]
|
#define GTSAM_CONCEPT_ASSERT(concept)
|
||||||
#define GTSAM_CONCEPT_ASSERT1(concept) concept checkConcept1 [[maybe_unused]]
|
|
||||||
#define GTSAM_CONCEPT_ASSERT2(concept) concept checkConcept2 [[maybe_unused]]
|
|
||||||
#define GTSAM_CONCEPT_ASSERT3(concept) concept checkConcept3 [[maybe_unused]]
|
|
||||||
#define GTSAM_CONCEPT_ASSERT4(concept) concept checkConcept4 [[maybe_unused]]
|
|
||||||
// This one just ignores concept for now:
|
|
||||||
#define GTSAM_CONCEPT_REQUIRES(concept, return_type) return_type
|
#define GTSAM_CONCEPT_REQUIRES(concept, return_type) return_type
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1151,8 +1151,10 @@ TEST(Matrix, Matrix24IsVectorSpace) {
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(Matrix, RowMajorIsVectorSpace) {
|
TEST(Matrix, RowMajorIsVectorSpace) {
|
||||||
|
#ifdef GTSAM_USE_BOOST_FEATURES
|
||||||
typedef Eigen::Matrix<double, 2, 3, Eigen::RowMajor> RowMajor;
|
typedef Eigen::Matrix<double, 2, 3, Eigen::RowMajor> RowMajor;
|
||||||
GTSAM_CONCEPT_ASSERT(IsVectorSpace<RowMajor>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<RowMajor>);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(Matrix, MatrixIsVectorSpace) {
|
TEST(Matrix, MatrixIsVectorSpace) {
|
||||||
|
@ -1164,9 +1166,11 @@ TEST(Matrix, VectorIsVectorSpace) {
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(Matrix, RowVectorIsVectorSpace) {
|
TEST(Matrix, RowVectorIsVectorSpace) {
|
||||||
|
#ifdef GTSAM_USE_BOOST_FEATURES
|
||||||
typedef Eigen::Matrix<double, 1, -1> RowVector;
|
typedef Eigen::Matrix<double, 1, -1> RowVector;
|
||||||
GTSAM_CONCEPT_ASSERT1(IsVectorSpace<RowVector>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<RowVector>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsVectorSpace<Vector5>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Vector5>);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -267,13 +267,15 @@ TEST(Vector, linear_dependent3 )
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Vector, VectorIsVectorSpace) {
|
TEST(Vector, VectorIsVectorSpace) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsVectorSpace<Vector5>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Vector5>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsVectorSpace<Vector>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Vector>);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(Vector, RowVectorIsVectorSpace) {
|
TEST(Vector, RowVectorIsVectorSpace) {
|
||||||
|
#ifdef GTSAM_USE_BOOST_FEATURES
|
||||||
typedef Eigen::Matrix<double,1,-1> RowVector;
|
typedef Eigen::Matrix<double,1,-1> RowVector;
|
||||||
GTSAM_CONCEPT_ASSERT(IsVectorSpace<RowVector>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<RowVector>);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -107,8 +107,8 @@ struct traits<K4> : internal::AdditiveGroupTraits<K4> {
|
||||||
TEST(Cyclic , DirectSum) {
|
TEST(Cyclic , DirectSum) {
|
||||||
// The Direct sum of Z2 and Z2 is *not* Cyclic<4>, but the
|
// The Direct sum of Z2 and Z2 is *not* Cyclic<4>, but the
|
||||||
// smallest non-cyclic group called the Klein four-group:
|
// smallest non-cyclic group called the Klein four-group:
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<K4>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<K4>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsTestable<K4>);
|
GTSAM_CONCEPT_ASSERT(IsTestable<K4>);
|
||||||
|
|
||||||
// Refer to http://en.wikipedia.org/wiki/Klein_four-group
|
// Refer to http://en.wikipedia.org/wiki/Klein_four-group
|
||||||
K4 e(0,0), a(0, 1), b(1, 0), c(1, 1);
|
K4 e(0,0), a(0, 1), b(1, 0), c(1, 1);
|
||||||
|
|
|
@ -34,9 +34,9 @@ TEST(Point2 , Constructor) {
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Double , Concept) {
|
TEST(Double , Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<double>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<double>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<double>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<double>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsVectorSpace<double>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<double>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
@ -48,9 +48,9 @@ TEST(Double , Invariants) {
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Point2 , Concept) {
|
TEST(Point2 , Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<Point2>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<Point2>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Point2>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Point2>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsVectorSpace<Point2>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Point2>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -34,9 +34,9 @@ TEST(Point3 , Constructor) {
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Point3 , Concept) {
|
TEST(Point3 , Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<Point3>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<Point3>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Point3>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Point3>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsVectorSpace<Point3>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Point3>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -35,9 +35,9 @@ GTSAM_CONCEPT_LIE_INST(Pose2)
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Pose2 , Concept) {
|
TEST(Pose2 , Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<Pose2 >);
|
GTSAM_CONCEPT_ASSERT(IsGroup<Pose2 >);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Pose2 >);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Pose2 >);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<Pose2 >);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Pose2 >);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -29,9 +29,9 @@ typedef traits<Q>::ChartJacobian QuaternionJacobian;
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Quaternion , Concept) {
|
TEST(Quaternion , Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<Quaternion >);
|
GTSAM_CONCEPT_ASSERT(IsGroup<Quaternion >);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Quaternion >);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Quaternion >);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<Quaternion >);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Quaternion >);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -38,9 +38,9 @@ static double error = 1e-9, epsilon = 0.001;
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Rot3 , Concept) {
|
TEST(Rot3 , Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<Rot3 >);
|
GTSAM_CONCEPT_ASSERT(IsGroup<Rot3 >);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Rot3 >);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Rot3 >);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<Rot3 >);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Rot3 >);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -36,9 +36,9 @@ TEST(SO3, Identity) {
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(SO3, Concept) {
|
TEST(SO3, Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<SO3>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<SO3>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<SO3>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<SO3>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<SO3>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<SO3>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -42,9 +42,9 @@ TEST(SO4, Identity) {
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(SO4, Concept) {
|
TEST(SO4, Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<SO4>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<SO4>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<SO4>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<SO4>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<SO4>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<SO4>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -84,9 +84,9 @@ TEST(SOn, SO5) {
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(SOn, Concept) {
|
TEST(SOn, Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<SOn>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<SOn>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<SOn>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<SOn>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<SOn>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<SOn>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -35,9 +35,9 @@ static const double s = 4;
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Similarity2, Concepts) {
|
TEST(Similarity2, Concepts) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<Similarity2>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<Similarity2>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Similarity2>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Similarity2>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<Similarity2>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Similarity2>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -54,9 +54,9 @@ const double degree = M_PI / 180;
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Similarity3, Concepts) {
|
TEST(Similarity3, Concepts) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<Similarity3 >);
|
GTSAM_CONCEPT_ASSERT(IsGroup<Similarity3 >);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Similarity3 >);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Similarity3 >);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<Similarity3 >);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Similarity3 >);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -31,9 +31,9 @@ GTSAM_CONCEPT_TESTABLE_INST(StereoPoint2)
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(StereoPoint2 , Concept) {
|
TEST(StereoPoint2 , Concept) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<StereoPoint2>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<StereoPoint2>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<StereoPoint2 >);
|
GTSAM_CONCEPT_ASSERT(IsManifold<StereoPoint2 >);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsVectorSpace<StereoPoint2>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<StereoPoint2>);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -44,8 +44,8 @@ namespace gtsam {
|
||||||
template <class VALUE>
|
template <class VALUE>
|
||||||
class ExtendedKalmanFilter {
|
class ExtendedKalmanFilter {
|
||||||
// Check that VALUE type is a testable Manifold
|
// Check that VALUE type is a testable Manifold
|
||||||
GTSAM_CONCEPT_ASSERT1(IsTestable<VALUE>);
|
GTSAM_CONCEPT_ASSERT(IsTestable<VALUE>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<VALUE>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<VALUE>);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef std::shared_ptr<ExtendedKalmanFilter<VALUE> > shared_ptr;
|
typedef std::shared_ptr<ExtendedKalmanFilter<VALUE> > shared_ptr;
|
||||||
|
|
|
@ -40,8 +40,8 @@ namespace gtsam {
|
||||||
class BetweenFactor: public NoiseModelFactorN<VALUE, VALUE> {
|
class BetweenFactor: public NoiseModelFactorN<VALUE, VALUE> {
|
||||||
|
|
||||||
// Check that VALUE type is a testable Lie group
|
// Check that VALUE type is a testable Lie group
|
||||||
GTSAM_CONCEPT_ASSERT1(IsTestable<VALUE>);
|
GTSAM_CONCEPT_ASSERT(IsTestable<VALUE>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsLieGroup<VALUE>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<VALUE>);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
|
@ -47,9 +47,9 @@ template<> struct traits<Product> : internal::LieGroupTraits<Product> {
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Lie, ProductLieGroup) {
|
TEST(Lie, ProductLieGroup) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsGroup<Product>);
|
GTSAM_CONCEPT_ASSERT(IsGroup<Product>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Product>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Product>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<Product>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Product>);
|
||||||
Product pair1;
|
Product pair1;
|
||||||
Vector5 d;
|
Vector5 d;
|
||||||
d << 1, 2, 0.1, 0.2, 0.3;
|
d << 1, 2, 0.1, 0.2, 0.3;
|
||||||
|
|
|
@ -38,26 +38,26 @@ typedef PinholeCamera<Cal3Bundler> Camera;
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Manifold, SomeManifoldsGTSAM) {
|
TEST(Manifold, SomeManifoldsGTSAM) {
|
||||||
//GTSAM_CONCEPT_ASSERT(IsManifold<int>); // integer is not a manifold
|
//GTSAM_CONCEPT_ASSERT(IsManifold<int>); // integer is not a manifold
|
||||||
GTSAM_CONCEPT_ASSERT1(IsManifold<Camera>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Camera>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Cal3_S2>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Cal3_S2>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsManifold<Cal3Bundler>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Cal3Bundler>);
|
||||||
GTSAM_CONCEPT_ASSERT4(IsManifold<Camera>);
|
GTSAM_CONCEPT_ASSERT(IsManifold<Camera>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Manifold, SomeLieGroupsGTSAM) {
|
TEST(Manifold, SomeLieGroupsGTSAM) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsLieGroup<Rot2>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Rot2>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsLieGroup<Pose2>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Pose2>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<Rot3>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Rot3>);
|
||||||
GTSAM_CONCEPT_ASSERT4(IsLieGroup<Pose3>);
|
GTSAM_CONCEPT_ASSERT(IsLieGroup<Pose3>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
TEST(Manifold, SomeVectorSpacesGTSAM) {
|
TEST(Manifold, SomeVectorSpacesGTSAM) {
|
||||||
GTSAM_CONCEPT_ASSERT1(IsVectorSpace<double>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<double>);
|
||||||
GTSAM_CONCEPT_ASSERT2(IsVectorSpace<float>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<float>);
|
||||||
GTSAM_CONCEPT_ASSERT3(IsVectorSpace<Point2>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Point2>);
|
||||||
GTSAM_CONCEPT_ASSERT4(IsVectorSpace<Matrix24>);
|
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Matrix24>);
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
set (excluded_scripts
|
|
||||||
elaboratePoint2KalmanFilter.cpp
|
|
||||||
)
|
|
||||||
# Add scripts to exclude if GTSAM_ENABLE_BOOST_SERIALIZATION is not set
|
# Add scripts to exclude if GTSAM_ENABLE_BOOST_SERIALIZATION is not set
|
||||||
if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION)
|
if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION)
|
||||||
# add to excluded scripts
|
# add to excluded scripts
|
||||||
|
|
Loading…
Reference in New Issue