commit 8590e6e8e057adba4ec0083446d00268565bb444 Author: Sameer Agarwal Date: Thu Oct 27 12:29:37 2016 -0700 Remove two checks from rotation.h This allows rotation.h to remove its dependency on glog. Change-Id: Ia6aede93ee51a4bd4039570dc8edd100a7045329 commit e892499e8d8977b9178a760348bdd201ec5f3489 Author: Je Hyeong Hong Date: Tue Oct 18 22:49:11 2016 +0100 Relax the tolerance in QuaternionParameterizationTestHelper. This commit relaxes the tolerance value for comparing between the actual local matrix and the expected local matrix. Without this fix, EigenQuaternionParameterization.ZeroTest could fail as the difference exactly matches the value of std::numeric_limits::epsilon(). Change-Id: Ic4d3f26c0acdf5f16fead80dfdc53df9e7dabbf9 commit 7ed9e2fb7f1dff264c5e4fbaa89ee1c4c99df269 Author: Sameer Agarwal Date: Wed Oct 19 04:45:23 2016 -0700 Occured -> Occurred. Thanks to Phillip Huebner for reporting this. Change-Id: I9cddfbb373aeb496961d08e434fe661bff4abd29 commit b82f97279682962d8c8ae1b6d9e801ba072a0ab1 Author: Je Hyeong Hong Date: Tue Oct 18 21:18:32 2016 +0100 Fix a test error in autodiff_test.cc. Previously, the test for the projective camera model would fail as no tolerance is set in line 144. To resolve this, this commit changes assert_equal to assert_near. Change-Id: I6cd3379083b1a10c7cd0a9cc83fd6962bb993cc9 commit 5690b447de5beed6bdda99b7f30f372283c2fb1a Author: Sameer Agarwal Date: Thu Oct 13 09:52:02 2016 -0700 Fix documentation source for templated functions in rotation.h Change-Id: Ic1b2e6f0e6eb9914f419fd0bb5af77b66252e57c commit 2f8f98f7e8940e465de126fb51282396f42bea20 Author: Sameer Agarwal Date: Thu Oct 13 09:35:18 2016 -0700 Prepare for 1.12.0RC1 Change-Id: I23eaf0b46117a01440143001b74dacfa5e57cbf0 commit 55c12d2e9569fe4aeac3ba688ac36810935a37ba Author: Damon Kohler Date: Wed Oct 5 16:30:31 2016 +0200 Adds package.xml to support Catkin. Change-Id: I8ad4d36a8b036417604a54644e0bb70dd1615feb commit 0bcce6565202f5476e40f12afc0a99eb44bd9dfb Author: Sameer Agarwal Date: Mon Oct 10 23:30:42 2016 -0700 Fix tabs in Android.mk Change-Id: Ie5ab9a8ba2b727721565e1ded242609b6df5f8f5 commit e6ffe2667170d2fc435443685c0163396fc52d7b Author: Sameer Agarwal Date: Mon Oct 10 22:47:08 2016 -0700 Update the version history. Change-Id: I9a57b0541d6cebcb695ecb364a1d4ca04ea4e06c commit 0a4ccb7ee939ab35b22e26758401e039b033b176 Author: David Gossow Date: Wed Sep 7 21:38:12 2016 +0200 Relaxing Jacobian matching in Gradient Checker test. Any result of an arithmetic operation on floating-point matrices should never be checked for strict equality with some expected value, due to limited floating point precision on different machines. This fixes some occurences of exact checks in the gradient checker unit test that were causing problems on some platforms. Change-Id: I48e804c9c705dc485ce74ddfe51037d4957c8fcb commit ee44fc91b59584921c1d1c8db153fda6d633b092 Author: Je Hyeong Hong Date: Mon Oct 3 12:19:30 2016 +0100 Fix an Intel compiler error in covariance_impl.cc. Intel C compiler strictly asks for parallel loops with collapse to be perfectly nested. Otherwise, compiling Ceres with ICC will throw an error at line 348 of covariance_impl.cc. Change-Id: I1ecb68e89b7faf79e4153dfe6675c390d1780db4 commit 9026d69d1ce1e0bcd21debd54a38246d85c7c6e4 Author: Sameer Agarwal Date: Thu Sep 22 17:20:14 2016 -0700 Allow SubsetParameterization to hold all parameters constant 1. SubsetParameterization can now be constructed such that all parameters are constant. This is required for it be used as part of a ProductParameterization to hold a part of parameter block constant. For example, a parameter block consisting of a rotation as a quaternion and a translation vector can now have a local parameterization where the translation part is constant and the quaternion part has a QuaternionParameterization associated with it. 2. The check for the tangent space of a parameterization being positive dimensional. We were not doing this check up till now and the user could accidentally create parameterizations like this and create a problem for themselves. This will ensure that even though one can construct a SubsetParameterization where all parameters are constant, you cannot actually use it as a local parameterization for an entire parameter block. Which is how it was before, but the check was inside the SubsetParameterization constructor. 3. Added more tests and refactored existing tests to be more granular. Change-Id: Ic0184a1f30e3bd8a416b02341781a9d98e855ff7 commit a36693f83da7a3fd19dce473d060231d4cc97499 Author: Sameer Agarwal Date: Sat Sep 17 16:31:41 2016 -0700 Update version history Change-Id: Ib2f0138ed7a1879ca3b2173e54092f7ae8dd5c9d commit 01e23e3d33178fdd050973666505c1080cfe04c3 Author: David Gossow Date: Thu Sep 8 12:22:28 2016 +0200 Removing duplicate include directive. Change-Id: I729ae6501497746d1bb615cb893ad592e16ddf3f commit 99b8210cee92cb972267537fb44bebf56f812d52 Author: Sameer Agarwal Date: Wed Sep 7 15:31:30 2016 -0700 Update Android.mk to include new files. Change-Id: Id543ee7d2a65b65c868554a17f593c0a4958e873 commit 195d8d13a6a3962ac39ef7fcdcc6add0216eb8bc Author: Sameer Agarwal Date: Tue Sep 6 07:12:23 2016 -0700 Remove two DCHECKs from CubicHermiteSpline. They were present as debugging checks but were causing problems with the build on 32bit i386 due to numerical cancellation issues, where x ~ -epsilon. Removing these checks only changes the behaviour in Debug mode. We are already handling such small negative numbers in production if they occur. All that this change does is to remove the crash. https://github.com/ceres-solver/ceres-solver/issues/212 Thanks to @NeroBurner and @debalance for reporting this. Change-Id: I66480e86d4fa0a4b621204f2ff44cc3ff8d01c04 commit 83041ac84f2d67c28559c67515e0e596a3f3aa20 Author: Sameer Agarwal Date: Fri Sep 2 19:10:35 2016 -0700 Fix some compiler warnings. Reported by Richard Trieu. Change-Id: I202b7a7df09cc19c92582d276ccf171edf88a9fb commit 8c4623c63a2676e79e7917bb0561f903760f19b9 Author: Sameer Agarwal Date: Thu Sep 1 00:05:09 2016 -0700 Update ExpectArraysClose to use ExpectClose instead of EXPECT_NEAR The documentation for ExpectArraysClose and its implementation did not match. This change makes the polynomial_test not fail on 64bit AMD builds. Thanks to Phillip Huebner for reporting this. Change-Id: I503f2d3317a28d5885a34f8bdbccd49d20ae9ba2 commit 2fd39fcecb47eebce727081c9ffb8edf86c33669 Author: Sameer Agarwal Date: Thu Sep 1 16:05:06 2016 -0700 FindWithDefault returns by value rather than reference. Returning by reference leads to lifetime issues with the default value which may go out of scope by the time it is used. Thanks to @Ardavel for reporting this, as this causes graph_test to fail on VS2015x64. https://github.com/ceres-solver/ceres-solver/issues/216 Change-Id: I596481219cfbf7622d49a6511ea29193b82c8ba3 commit 716f049a7b91a8f3a4632c367d9534d1d9190a81 Author: Mike Vitus Date: Wed Aug 31 13:38:30 2016 -0700 Convert pose graph 2D example to glog and gflags. Change-Id: I0ed75a60718ef95199bb36f33d9eb99157d11d40 commit 46c5ce89dda308088a5fdc238d0c126fdd2c2b58 Author: David Gossow Date: Wed Aug 31 18:40:57 2016 +0200 Fix compiler errors on some systems This fixes some signed-unsigned comparisons and a missing header include. Change-Id: Ieb2bf6e905faa74851bc4ac4658d2f1da24b6ecc commit b102d53e1dd7dab132e58411183b6fffc2090590 Author: David Gossow Date: Wed Aug 31 10:21:20 2016 +0200 Gradient checker multithreading bugfix. This is a follow-up on c/7470. GradientCheckingCostFunction calls callback_->SetGradientErrorDetected() in its Evaluate method, which will run in multiple threads simultaneously when enabling this option in the solver. Thus, the string append operation inside that method has to be protected by a mutex. Change-Id: I314ef1df2be52595370d9af05851bf6da39bb45e commit 79a28d1e49af53f67af7f3387d07e7c9b7339433 Author: Sameer Agarwal Date: Wed Aug 31 06:47:45 2016 -0700 Rename a confusingly named member of Solver::Options Solver::Options::numeric_derivative_relative_step_size to Solver::Options::gradient_check_numeric_derivative_relative_step_size Change-Id: Ib89ae3f87e588d4aba2a75361770d2cec26f07aa commit 358ae741c8c4545b03d95c91fa546d9a36683677 Author: Sameer Agarwal Date: Wed Aug 31 06:58:41 2016 -0700 Note that Problem::Evaluate cannot be called from an IterationCallback Change-Id: Ieabdc2d40715e6b547ab22156ba32e9c8444b7ed commit 44044e25b14d7e623baae4505a17c913bdde59f8 Author: Sameer Agarwal Date: Wed Aug 31 05:50:58 2016 -0700 Update the NumTraits for Jets 1. Use AVX if EIGEN_VECTORIZE_AVX is defined. 2. Make the cost of division same as the cost of multiplication. These are updates to the original numtraits update needed for eigen 3.3 that Shaheen Gandhi sent out. Change-Id: Ic1e3ed7d05a659c7badc79a894679b2dd61c51b9 commit 4b6ad5d88e45ce8638c882d3e8f08161089b6dba Author: Sameer Agarwal Date: Sat Aug 27 23:21:55 2016 -0700 Use ProductParameterization in bundle_adjuster.cc Previously, when using a quaternion to parameterize the camera orientation, the camera parameter block was split into two parameter blocks. One for the rotation and another for the translation and intrinsics. This was to enable the use of the Quaternion parameterization. Now that we have a ProductParameterization which allows us to compose multiple parameterizations, this is no longer needed and we use a size 10 parameter block instead. This leads to a more than 2x improvements in the linear solver time. Change-Id: I78b8f06696f81fee54cfe1a4ae193ee8a5f8e920 commit bfc916cf1cf753b85c1e2ac037e2019ee891f6f9 Author: Shaheen Gandhi Date: Thu Aug 4 12:10:14 2016 -0700 Allow ceres to be used with the latest version of Eigen Change-Id: Ief3b0f6b405484ec04ecd9ab6a1e1e5409a594c2 commit edbd48ab502aa418ad9700ee5c3ada5f9268b90a Author: Alex Stewart Date: Sun Jul 10 14:13:51 2016 +0100 Enable support for OpenMP in Clang if detected. - Previously we disabled OpenMP if Clang was detected, as it did not support it. However as of Clang 3.8 (and potentially Xcode 8) OpenMP is supported. Change-Id: Ia39dac9fe746f1fc6310e08553f85f3c37349707 commit f6df6c05dd83b19fa90044106ebaca40957998ae Author: Mike Vitus Date: Thu Aug 18 19:27:43 2016 -0700 Add an example for modeling and solving a 3D pose graph SLAM problem. Change-Id: I750ca5f20c495edfee5f60ffedccc5bd8ba2bb37 commit ac3b8e82175122e38bafaaa9cd419ba3cee11087 Author: David Gossow Date: Fri Apr 29 16:07:11 2016 +0200 Gradient checking cleanup and local parameterization bugfix Change the Ceres gradient checking API to make is useful for unit testing, clean up code duplication and fix interaction between gradient checking and local parameterizations. There were two gradient checking implementations, one being used when using the check_gradients flag in the Solver, the other being a standalone class. The standalone version was restricted to cost functions with fixed parameter sizes at compile time, which is being lifted here. This enables it to be used inside the GradientCheckingCostFunction as well. In addition, this installs new hooks in the Solver to ensure that Solve will fail if any incorrect gradients are detected. This way, you can set the check_gradient flags to true and detect errors in an automated way, instead of just printing error information to the log. The error log is now also returned in the Solver summary instead of being printed directly. The user can then decide what to do with it. The existing hooks for user callbacks are used for this purpose to keep the internal API changes minimal and non-invasive. The last and biggest change is the way the the interaction between local parameterizations and the gradient checker works. Before, local parameterizations would be ignored by the checker. However, if a cost function does not compute its Jacobian along the null space of the local parameterization, this wil not have any effect on the solver, but would result in a gradient checker error. With this change, the Jacobians are multiplied by the Jacobians of the respective local parameterization and thus being compared in the tangent space only. The typical use case for this are quaternion parameters, where a cost function will typically assume that the quaternion is always normalized, skipping the correct computation of the Jacobian along the normal to save computation cost. Change-Id: I5e1bb97b8a899436cea25101efe5011b0bb13282 commit d4264ec10d9a270b53b5db86c0245ae8cbd2cf18 Author: Mike Vitus Date: Wed Aug 17 13:39:05 2016 -0700 Add a quaternion local parameterization for Eigen's quaternion element convention. Change-Id: I7046e8b24805313c5fb6a767de581d0054fcdb83 commit fd7cab65ef30fbc33612220abed52dd5073413c4 Author: Mike Vitus Date: Wed Aug 10 09:29:12 2016 -0700 Fix typos in the pose graph 2D example. Change-Id: Ie024ff6b6cab9f2e8011d21121a91931bd987bd1 commit 375dc348745081f89693607142d8b6744a7fb6b4 Author: Mike Vitus Date: Wed Aug 3 18:51:16 2016 -0700 Remove duplicate entry for the NIST example in the docs. Change-Id: Ic4e8f9b68b77b5235b5c96fe588cc56866dab759 commit f554681bf22d769abc12dd6d346ef65f9bb22431 Author: Mike Vitus Date: Mon Jul 25 18:30:48 2016 -0700 Add an example for modeling and solving a 2D pose graph SLAM problem. Change-Id: Ia89b12af7afa33e7b1b9a68d69cf2a0b53416737 commit e1bcc6e0f51512f43aa7bfb7b0d62f7ac1d0cd4b Author: Sameer Agarwal Date: Wed May 18 07:52:48 2016 -0700 Add additional logging for analyzing orderings Change-Id: Ic68d2959db35254e2895f11294fb25de4d4b8a81 commit 16980b4fec846f86910c18772b8145bcb55f4728 Author: Mike Vitus Date: Fri Jul 15 13:37:49 2016 -0700 Delete the remove_definitons command from sampled_functions CMakeLists.txt because it will be inherited from the top level examples CMakeLists.txt. Change-Id: I25593587df0ae84fd8ddddc589bc2a13f3777427 commit a04490be97800e78e59db5eb67fa46226738ffba Author: Mike Vitus Date: Thu Jul 14 10:10:13 2016 -0700 Add readme for the sampled_function example. Change-Id: I9468b6a7b9f2ffdd2bf9f0dd1f4e1d5f894e540c commit ff11d0e63d4678188e8cabd40a532ba06912fe5a Author: Alex Stewart Date: Wed Jun 29 09:31:45 2016 +0100 Use _j[0,1,n]() Bessel functions on MSVC to avoid deprecation errors. - Microsoft deprecated the POSIX Bessel functions: j[0,1,n]() in favour of _j[0,1,n](), it appears since at least MSVC 2005: https://msdn.microsoft.com/en-us/library/ms235384(v=vs.100).aspx. - As this occurs in jet.h (templated public header), although Ceres suppresses the warning when it itself is built (to suppress a warning about the insecurity of using std::copy), it will crop up again in client code (without this fix) unless it is explicitly suppressed there also. - Raised as Issue #190: https://github.com/ceres-solver/ceres-solver/issues/190. Change-Id: If7ac5dbb856748f9900be93ec0452a40c0b00524 commit 8ea86e1614cf77644ce782e43cde6565a54444f5 Author: Nicolai Wojke Date: Mon Apr 25 14:24:41 2016 +0200 Fix: Copy minimizer option 'is_silent' to LinSearchDirection::Options Change-Id: I23b4c3383cad30033c539ac93883d77c8dd4ba1a commit 080ca4c5f2ac42620971a07f06d2d13deb7befa8 Author: Sameer Agarwal Date: Sun Apr 24 22:46:54 2016 -0700 Fix typos in users.rst Change-Id: Ifdc67638a39403354bc9589f42a1b42cb9984dd2 commit 21ab397dc55335c147fdd795899b1f8981037b09 Author: Sameer Agarwal Date: Sun Apr 24 21:13:00 2016 -0700 Make some Jet comparisons exact. Change-Id: Ia08c72f3b8779df96f5c0d5a954b2c0a1dd3a061 commit ee40f954cf464087eb8943abf4d9db8917a33fbe Author: Sameer Agarwal Date: Sun Apr 24 07:49:55 2016 -0700 Add colmap to users.rst Change-Id: I452a8c1dc6a3bc55734b2fc3a4002ff7939ba863 commit 9665e099022bd06e53b0779550e9aebded7f274d Author: Sameer Agarwal Date: Mon Apr 18 06:00:58 2016 -0700 Fix step norm evaluation in LineSearchMinimizer TrustRegionMinimizer evaluates the size of the step taken in the ambient space, where as the LineSearchMinimizer was using the norm in the tangent space. This change fixes this discrepancy. Change-Id: I9fef64cbb5622c9769c0413003cfb1dc6e89cfa3 commit 620ca9d0668cd4a00402264fddca3cf6bd2e7265 Author: Alex Stewart Date: Mon Apr 18 15:14:11 2016 +0100 Remove use of -Werror when compiling Ceres. - As noted in Issue #193 (in that case for GCC 6), Ceres' use of -Werror when compiling on *nix can prevent compilation on new compilers that add new warnings and there is an inevitable delay between new compiler versions and Ceres versions. - Removing the explicit use of -Werror, and relying on indirect verification by maintainers should fix build issues for Ceres releases on newer compilers. Change-Id: I38e9ade28d4a90e53dcd918a7d470f1a1debd7b4 commit 0c63bd3efbf1d41151c9fab41d4b77dc64c572c8 Author: Mike Vitus Date: Thu Apr 14 10:25:52 2016 -0700 Add floor and ceil functions to the Jet implementation. Change-Id: I72ebfb0e9ade2964dbf3a014225ead345d5ae352 commit 9843f3280356c158d23c06a16085c6c5ba35e053 Author: Alex Stewart Date: Mon Mar 7 21:24:32 2016 +0000 Report Ceres compile options as components in find_package(). - Users can now specify particular components from Ceres, such as SuiteSparse support) that must be present in a detected version of Ceres in order for it to be reported as found by find_package(). - This allows users to specify for example that they require a version of Ceres with SuiteSparse support at configure time, rather than finding out only at run time that Ceres was not compiled with the options they require. - The list of available components are built directly from the Ceres compile options. - The meta-module SparseLinearAlgebraLibrary is present if at least one sparse linear algebra backend is available. Change-Id: I65f1ddfd7697e6dd25bb4ac7e54f5097d3ca6266 commit e4d4d88bbe51b9cc0f7450171511abbea0779790 Author: Timer Date: Fri Apr 8 15:42:18 2016 +0800 Fix a spelling error in nnls_modeling.rst Change-Id: I341d901d3df993bc5397ed15e6cb330b0c38fd72 commit 5512f58536e1be0d92010d8325b606e7b4733a08 Author: Keir Mierle Date: Thu Apr 7 12:03:16 2016 -0700 Only use collapse() directive with OpenMP 3.0 or higher Change-Id: Icba544c0494763c57eb6dc61e98379312ca15972 commit d61e94da5225217cab7b4f93b72f97055094681f Author: Thomas Schneider Date: Wed Apr 6 10:40:29 2016 +0200 Add IsParameterBlockConstant to the ceres::Problem class. Change-Id: I7d0e828e81324443209c17fa54dd1d37605e5bfe commit 77d94b34741574e958a417561702d6093fba87fb Author: Alex Stewart Date: Sun Feb 14 16:54:03 2016 +0000 Fix install path for CeresConfig.cmake to be architecture-aware. - Previously we were auto-detecting a "64" suffix for the install path for the Ceres library on non-Debian/Arch Linux distributions, but we were installing CeresConfig.cmake to an architecture independent location. - We now install CeresConfig.cmake to lib${LIB_SUFFIX}/cmake/Ceres. - Also make LIB_SUFFIX visible to the user in the CMake GUI s/t they can easily override the auto-detected value if desired. - Reported by jpgr87@gmail.com as Issue #194. Change-Id: If126260d7af685779487c01220ae178ac31f7aea