diff --git a/gtsam_unstable/CMakeLists.txt b/gtsam_unstable/CMakeLists.txt index e7270cafa..72230de8c 100644 --- a/gtsam_unstable/CMakeLists.txt +++ b/gtsam_unstable/CMakeLists.txt @@ -39,7 +39,7 @@ set(gtsam_unstable_srcs ${discrete_srcs} ${dynamics_srcs} #${linear_srcs} - #${nonlinear_srcs} + ${nonlinear_srcs} ${slam_srcs} ${navigation_srcs} ) diff --git a/gtsam_unstable/nonlinear/LinearizedFactor.cpp b/gtsam_unstable/nonlinear/LinearizedFactor.cpp index 57113830a..eb5a83c79 100644 --- a/gtsam_unstable/nonlinear/LinearizedFactor.cpp +++ b/gtsam_unstable/nonlinear/LinearizedFactor.cpp @@ -56,7 +56,7 @@ LinearizedJacobianFactor::LinearizedJacobianFactor(const JacobianFactor::shared_ AbMatrix fullMatrix = jacobian->matrix_augmented(true); // Create the dims array - size_t dims[jacobian->size() + 1]; + size_t *dims = (size_t *)alloca(sizeof(size_t) * (jacobian->size() + 1)); size_t index = 0; for(JacobianFactor::const_iterator iter = jacobian->begin(); iter != jacobian->end(); ++iter) { dims[index++] = jacobian->getDim(iter); @@ -158,7 +158,7 @@ LinearizedHessianFactor::LinearizedHessianFactor(const HessianFactor::shared_ptr Matrix fullMatrix = hessian->info(); // Create the dims array - size_t dims[hessian->size() + 1]; + size_t *dims = (size_t*)alloca(sizeof(size_t)*(hessian->size() + 1)); size_t index = 0; for(HessianFactor::const_iterator iter = hessian->begin(); iter != hessian->end(); ++iter) { dims[index++] = hessian->getDim(iter); diff --git a/gtsam_unstable/nonlinear/tests/testConcurrentBatchFilter.cpp b/gtsam_unstable/nonlinear/tests/testConcurrentBatchFilter.cpp index 2338502d3..e82149dbd 100644 --- a/gtsam_unstable/nonlinear/tests/testConcurrentBatchFilter.cpp +++ b/gtsam_unstable/nonlinear/tests/testConcurrentBatchFilter.cpp @@ -34,6 +34,8 @@ using namespace std; using namespace gtsam; +namespace { + // Set up initial pose, odometry difference, loop closure difference, and initialization errors const Pose3 poseInitial; const Pose3 poseOdometry( Rot3::RzRyRx(Vector_(3, 0.05, 0.10, -0.75)), Point3(1.0, -0.25, 0.10) ); @@ -428,6 +430,8 @@ void SymbolicPrintTree(const Clique& clique, const Ordering& ordering, const std } } +} + /* ************************************************************************* */ TEST_UNSAFE( ConcurrentBatchFilter, update_Batch ) { diff --git a/gtsam_unstable/nonlinear/tests/testConcurrentBatchSmoother.cpp b/gtsam_unstable/nonlinear/tests/testConcurrentBatchSmoother.cpp index 1a63c40a7..cef79dbd0 100644 --- a/gtsam_unstable/nonlinear/tests/testConcurrentBatchSmoother.cpp +++ b/gtsam_unstable/nonlinear/tests/testConcurrentBatchSmoother.cpp @@ -34,6 +34,8 @@ using namespace std; using namespace gtsam; +namespace { + // Set up initial pose, odometry difference, loop closure difference, and initialization errors const Pose3 poseInitial; const Pose3 poseOdometry( Rot3::RzRyRx(Vector_(3, 0.05, 0.10, -0.75)), Point3(1.0, -0.25, 0.10) ); @@ -415,6 +417,8 @@ void SymbolicPrintTree(const Clique& clique, const Ordering& ordering, const std } } +} + /* ************************************************************************* */ TEST_UNSAFE( ConcurrentBatchSmoother, update_Batch ) {