commit 399cda773035d99eaf1f4a129a666b3c4df9d1b1 Author: Alex Stewart Date: Fri Oct 23 19:36:08 2020 +0100 Update build documentation to reflect detection of Eigen via config mode Change-Id: I18d5f0fc1eb51ea630164c911d935e9bffea35ce commit bb127272f9b57672bca48424f2d83bc430a46eb8 Author: Sameer Agarwal Date: Mon Oct 19 09:28:34 2020 -0700 Fix typos. Contributed by Ishamis@, IanBoyanZhang@, gkrobner@ & mithunjacob@. Change-Id: Iab3c19a07a6f3db2486e3557dcb55bfe5de2aee5 commit a0ec5c32af5c5f5a52168dc2748be910dba14810 Author: Sameer Agarwal Date: Sun Oct 18 15:20:36 2020 -0700 Update version history for 2.0.0RC2 Change-Id: I75b7515fbf9880bd8eaea6ecd5e72ce1ae4a3a86 commit 3f6d2736769044e7c08c873c41a184849eea73ab Author: Taylor Braun-Jones Date: Tue Jan 28 12:09:30 2020 -0500 Unify symbol visibility configuration for all compilers This makes it possible to build unit tests with shared libraries on MSVC. Change-Id: I1db66a80b2c78c4f3d354e35235244d17bac9809 commit 29c2912ee635c77f3ddf2e382a5d6a9cf9805a3d Author: Sameer Agarwal Date: Tue Oct 13 12:07:06 2020 -0700 Unbreak the bazel build some more Change-Id: I6bbf3df977a473b9b5e16a9e59da5f535f8cdc24 commit bf47e1a36829f62697b930241d0a353932f34090 Author: Sameer Agarwal Date: Tue Oct 13 10:00:22 2020 -0700 Fix the Bazel build. 1. Fix the path to eigen, now that it uses gitlab instead of bitbucket. 2. Remove an unrecognized compiler option. 3. Remove an obsolete benchmark. This CL only unbreaks the build, it is likely that it is still not at par with the cmake build. https://github.com/ceres-solver/ceres-solver/issues/628 Change-Id: I470209cbb48b6a4f499564a86b52436e0c8d98ef commit 600e8c529ebbb4bb89d5baefa3d5ab6ad923706a Author: Nikolaus Demmel Date: Mon Oct 12 23:00:39 2020 +0200 fix minor typos all timing values in the summary are initialized to -1, so the one +1 is likely an oversight. Change-Id: Ie355f3b7da08a56d49d19ca9a5bc48fe5581dee3 commit bdcdcc78af61a0cb85317ebee52dc804bf4ea975 Author: Nikolaus Demmel Date: Mon Sep 7 01:48:50 2020 +0200 update docs for changed cmake usage - update links to cmake docs to version 3.5 - highlight difference between dependencies with and without custom find modules - point out removal of CERES_INCLUDE_DIRS - point out that TBB might be linked if SuiteSparseQR is found - added 'Migration' section - fixed typos Change-Id: Icbcc0e723d11f12246fb3cf09b9d7c6206195a82 commit 3f69e5b36a49b44344e96a26b39693a914ba80c6 Author: Sameer Agarwal Date: Mon Oct 12 11:46:40 2020 -0700 Corrections from William Rucklidge Change-Id: I0b5d4808be48f68df7829c70ec93ffa67d81315d commit 8bfdb02fb18551bbd5f222c5472e45eddecd42b9 Author: Sameer Agarwal Date: Mon Oct 12 10:07:13 2020 -0700 Rewrite uses of VLOG_IF and LOG_IF. VLOG_IF's evaluation order is ambiguous - does it mean `if (cond) VLOG(lvl)` or `if (VLOG_IS_ON(lvl) && cond) LOG(INFO)`? In particular, the way it works now is inconsistent with the way the rest of the LOG macros evaluate their arguments. Fixing this would be hard, and the macro's behavior would still surprise some people. Replacing it with an if statement is simple, clear, and unambiguous. Change-Id: I97a92d17a932c0a5344a1bf98d676308793ba877 commit d1b35ffc161fd857c7c433574ca82aa9b2db7f98 Author: Sameer Agarwal Date: Mon Oct 12 10:58:05 2020 -0700 Corrections from William Rucklidge Change-Id: Ifb50e87aa915d00f9861fe1a6da0acee11bc0a94 commit f34e80e91f600014a3030915cf9ea28bcbc576e7 Author: Sameer Agarwal Date: Thu Oct 8 12:34:53 2020 -0700 Add dividers between licenses. Change-Id: I4e4aaa15e0621c5648550cfa622fe0a79f1f4f9f commit 65c397daeca77da53d16e73720b9a17edd6757ab Author: Sameer Agarwal Date: Wed Oct 7 14:34:52 2020 -0700 Fix formatting Change-Id: Ib4ca8a097059dbb8d2f3a6a888222c0188cb126e commit f63b1fea9cfa48ae4530c327b10efa4985e69631 Author: Sameer Agarwal Date: Wed Oct 7 14:30:54 2020 -0700 Add the MIT license text corresponding to the libmv derived files. Change-Id: Ie72fb45ae96a7892c00411eee6873db7f0e365a8 commit 542613c13d8b7469822aff5eec076f2cad4507ec Author: Nikolaus Demmel Date: Tue Oct 6 22:48:59 2020 +0200 minor formatting fix for trust_region_minimizer.cc Change-Id: I18ba27825fc23dd0e9e3e15dc13fc0833db01b5b commit 6d9e9843d8c61cfb04cc55b9def9518f823a592a Author: Sameer Agarwal Date: Mon Sep 28 11:35:37 2020 -0700 Remove inclusion of ceres/eigen.h The initial reason for this is because of a previous reformatting CL triggered a macro redefinition warning in the schur eliminator. But actually it was worse because the reordering had caused the macro definition to be ignored and caused a performance regression. This simplifies the generated files, fixes some formatting errors and recovers the performance. Change-Id: I9dbeffc38743b3f24b25843feec2e26a73188413 commit eafeca5dcb7af8688d40a9c14b0d2fcb856c96fc Author: Sameer Agarwal Date: Mon Sep 28 11:12:59 2020 -0700 Fix a logging bug in TrustRegionMinimizer. Upon encountering an unsuccessful step (one where the cost goes up) the the trust region minimizer failed to populate the gradient norm in the IterationSummary. This would cause the gradient norm to be logged as zero which is incorrect. Instead it should be the gradient norm at the current point. This CL fixes this issue. Before: iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time 0 1.115206e+07 0.00e+00 1.90e+07 0.00e+00 0.00e+00 1.00e+04 0 2.72e-01 1.33e+00 1 3.687552e+06 7.46e+06 1.84e+08 2.86e+03 6.91e-01 1.06e+04 1 1.32e+00 2.65e+00 2 3.670266e+10 -3.67e+10 0.00e+00 3.27e+03 -1.07e+04 5.30e+03 1 7.52e-01 3.40e+00 3 4.335397e+07 -3.97e+07 0.00e+00 2.74e+03 -1.16e+01 1.32e+03 1 7.28e-01 4.13e+00 4 1.345488e+06 2.34e+06 4.12e+07 1.55e+03 6.87e-01 1.40e+03 1 9.31e-01 5.06e+00 5 5.376653e+05 8.08e+05 9.99e+06 6.64e+02 7.46e-01 1.59e+03 1 9.64e-01 6.03e+00 After: iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time 0 1.115206e+07 0.00e+00 1.90e+07 0.00e+00 0.00e+00 1.00e+04 0 2.37e-01 1.13e+00 1 3.687552e+06 7.46e+06 1.84e+08 2.86e+03 6.91e-01 1.06e+04 1 1.08e+00 2.21e+00 2 3.670266e+10 -3.67e+10 1.84e+08 3.27e+03 -1.07e+04 5.30e+03 1 7.50e-01 2.96e+00 3 4.335397e+07 -3.97e+07 1.84e+08 2.74e+03 -1.16e+01 1.32e+03 1 7.13e-01 3.67e+00 4 1.345488e+06 2.34e+06 4.12e+07 1.55e+03 6.87e-01 1.40e+03 1 9.01e-01 4.57e+00 5 5.376653e+05 8.08e+05 9.99e+06 6.64e+02 7.46e-01 1.59e+03 1 9.36e-01 5.51e+00 Change-Id: Iae538fe089be07c7bb219337a6f1392f7213acfe commit 1fd0be916dd4ff4241bd52264b9e9170bc7e4339 Author: Alex Stewart Date: Mon Sep 28 18:54:33 2020 +0100 Fix default initialisation of IterationCallback::cost Change-Id: I9f529093fc09424c90dbff8e9648b90b16990623 commit 137bbe845577929a87f8eef979196df6a8b30ee4 Author: Nikolaus Demmel Date: Mon Sep 28 02:17:32 2020 +0200 add info about clang-format to contributing docs Change-Id: I2f4dcbda2e4f36096df217d76de370103ffaa43e commit d3f66d77f45482b90d01af47938289c32dd2cc08 Author: Nikolaus Demmel Date: Mon Sep 28 02:01:43 2020 +0200 fix formatting generated files (best effort) - update file generator scripts / templates so generated files adhere to clang-format - A few exceptions are not fixed, where the file generation results in lines of different width. To properly fix this would make the code more complicated and it's not that important for generated files anyway. - note that generated files are excluded in ./scripts/format_all.sh Change-Id: I4f42c83d1fec01242eada5e7ce6c1a5192234d37 commit a9c7361c8dc1d37e78d216754a4c03e8a8f1e74f Author: Nikolaus Demmel Date: Mon Sep 28 02:14:29 2020 +0200 minor formatting fix (wrongly updated in earlier commit) Change-Id: I544635fd936cb5b7f7bd9255876641cd5a9590c6 commit 7b8f675bfdb1d924af6a2dcc1f79bda5ace7e886 Author: Nikolaus Demmel Date: Sun Sep 20 21:45:24 2020 +0200 fix formatting for (non-generated) internal source files - Change formatting standard to Cpp11. Main difference is not having the space between two closing >> for nested templates. We don't choose c++14, because older versions of clang-format (version 9 and earlier) don't know this value yet, and it doesn't make a difference in the formatting. - Apply clang-format to all (non generated) internal source files. - Manually fix some code sections (clang-format on/off) and c-strings - Exclude some embedded external files with very different formatting (gtest/gmock) - Add script to format all source files Change-Id: Ic6cea41575ad6e37c9e136dbce176b0d505dc44d commit 921368ce31c42ee793cf131860abba291a7e39ad Author: Sameer Agarwal Date: Wed Sep 9 09:15:37 2020 -0700 Fix a number of typos in covariance.h Also some minor cleanups in covariance_impl.h Thanks to Lorenzo Lamia for pointing these out. Change-Id: Icb4012a367fdd1f249bc1e7019e0114c868e45b6 commit 7b6b2491cc1be0b3abb67338366d8d69bef3a402 Author: Nikolaus Demmel Date: Tue Sep 8 17:51:32 2020 +0200 fix formatting for examples This is mostly just applying the existing clang format config, except: - Use NOLINT on overlong comment lines. - Wrap some sections in 'clang-format off' / 'clang format on'. - Manually split or join some multi-line strings. Change-Id: Ia1a40eeb92112e12c3a169309afe087af55b2f4f commit 82275d8a4eac4fc0bd07e17c3a41a6e429e72bfb Author: Nikolaus Demmel Date: Tue Sep 8 02:00:21 2020 +0200 some fixes for Linux and macOS install docs Linux: - Remove workaround for Ubuntu 14.04, which is EOL. libsuitesparse-dev seems to come with a shared library on 16.04 and later, so linking to a shared build of ceres doesn't seem to be an issue any more. - Add missing libgflags-dev. macOS: - OS X is now called macOS. - Update homebrew link. - Mac homebrew the preferred method of installation. - Fix OpenMP instructions. - Remove reference to homebrew/science. Everything is in core. - Add missing gflags. Change-Id: I633b3c7ea84a87886bfd823f8187fdd0a84737c9 commit 9d762d74f06b946bbd2f098de7216032d0e7b51d Author: Nikolaus Demmel Date: Sun Sep 6 21:04:24 2020 +0200 fix formatting for public header files - ensure all public headers files adhere to clang-format - preserve one-per-line for enums by adding trailing comma - preserve include order for en/disable_warning.h Change-Id: I78dbd0527a294ab2ec5f074fb426e48b20c393e6 commit c76478c4898f3af11a6a826ac89c261205f4dd96 Author: Nikolaus Demmel Date: Sun Sep 6 23:29:56 2020 +0200 gitignore *.pyc Change-Id: Ic6238a617a3c7ce92df7dcefcc44bae20c32b30b commit 4e69a475cd7d7cbed983f5aebf79ae13a46e5415 Author: Alex Stewart Date: Tue Sep 1 10:15:23 2020 +0100 Fix potential for mismatched release/debug TBB libraries - Protect against the case when the user has multiple installs of TBB in their search paths and the first install does not contain debug libraries. In this case it is possible to get mismatched versions of TBB inserted into TBB_LIBRARIES. - Also suppresses warning about use of TBB_ROOT on modern versions of CMake due to CMP0074. Change-Id: I2eaafdde4a028cbf6c500c63771973d85bc4723d commit 8e1d8e32ad0d28c0d4d1d7b2b1ce7fc01d90b7b0 Author: Sameer Agarwal Date: Thu Sep 3 10:49:20 2020 -0700 A number of small changes. 1. Add a move constructor to NumericDiffCostFunction, DynamicAutoDiffCostfunction and DynamicNumericDiffCostFunction. 2. Add optional ownership of the underlying functor. 3. Update docs to reflect this as well as the variadic templates that allow an arbitrary number of parameter blocks. Change-Id: I57bbb51fb9e75f36ec2a661b603beda270f30a19 commit 368a738e5281039f19587545806b7bc6f35e78f9 Author: Julian Kent Date: Thu May 7 12:54:35 2020 +0200 AutoDiffCostFunction: optional ownership Add Ownership semantics to the AutoDiffCostFunction This allows several benefits, such as pointer ordering always being the same for numerical repeatability (due to blocks being ordered by pointer address), memory adjacency for better cache performance, and reduced allocator pressure / overhead. This is then made use of in libmv by preallocating the errors and cost functions into vectors Change-Id: Ia5b97e7249b55a463264b6e26f7a02291927c9f2 commit 8cbd721c199c69f127af6ef7c187ddf7e8f116f9 Author: Morten Hannemose Date: Thu Sep 3 17:54:20 2020 +0200 Add erf and erfc to jet.h, including tests in jet_test.cc erf is necessary for evaluating Gaussian functions. erfc was added because it is so similar to erf. Change-Id: I5e470dbe013cc938fabb87cde3b0ebf26a90fff4 commit 31366cff299cf2a8d97b43a7533d953ff28fdc29 Author: Sameer Agarwal Date: Tue Sep 1 09:23:34 2020 -0700 Benchmarks for dynamic autodiff. This patch is from Clement Courbet. courbet@google.com Change-Id: I886390663644733bfa5b7b52b0c883079e793726 commit 29fb08aeae1ce691851724af7209fea6127523a9 Author: Alex Stewart Date: Tue Sep 1 10:23:31 2020 +0100 Use CMAKE_PREFIX_PATH to pass Homebrew install location - Passing HINTS disables the MODULE mode of find_package() which precludes users from creating their own find modules to provide Ceres' dependencies. Change-Id: I6f2edf429331d13fe67bf61ac4b79d17579d9a57 commit 242c703b501ffd64d645f4016d63c8b41c381038 Author: Sameer Agarwal Date: Tue Aug 4 21:02:11 2020 -0700 Minor fixes to the documentation Change-Id: I65e6f648d963b8aa640078684ce02dcde6acb87d commit 79bbf95103672fa4b5485e055ff7692ee4a1f9da Author: Sameer Agarwal Date: Tue Aug 4 18:26:02 2020 -0700 Add changelog for 2.0.0 Change-Id: I8acad62bfe629454ae5032732693e43fe37b97ff commit 41d05f13d0ffb230d7a5a9d67ed31b0cfb35d669 Author: Sameer Agarwal Date: Tue Aug 4 14:56:33 2020 -0700 Fix lint errors in evaluation_callback_test.cc Change-Id: I63eb069544ad0d8f495490fe4caa07b9f04f7ec2 commit 4b67903c1f96037048c83a723028c5d0991c09cf Author: Sameer Agarwal Date: Tue Aug 4 14:40:50 2020 -0700 Remove unused variables from problem_test.cc Change-Id: Ia1a13cfc6e462f6d249dcbf169ad34831dd93ec2 commit 10449fc3664c96d4b5454c092195432df79412f8 Author: Sameer Agarwal Date: Tue Aug 4 14:30:25 2020 -0700 Add Apache license to the LICENSE file for FixedArray FixedArray implementation comes from ABSL which is Apache licensed. Change-Id: I566dbe9d236814c95945732c6347d3bf7b508283 commit 8c3ecec6db26d7a66f5de8dc654475ec7aa0df14 Author: Sameer Agarwal Date: Tue May 26 04:44:11 2020 -0700 Fix some minor errors in IterationCallback docs Change-Id: Id3d7f21a523ff8466868cdec542921c566bbbfa9 commit 7d3ffcb4234632dc51ee84c8a509d9428263070b Author: Alex Stewart Date: Sun Jul 26 19:42:16 2020 +0100 Remove forced CONFIG from find_package(Eigen3) - Ceres will fail to configure if Eigen3::Eigen target is not found, and the minimum required Eigen version specified (3.3) exports Eigen as a CMake package and this is reflected in the default Ubuntu 18.04 packages. - This permits users to specify their own Eigen3 detection should they choose to do so, but they must do so via an imported target. Change-Id: I5edff117c8001770004f49012ac1ae63b66ec9c1 commit a029fc0f93817f20b387b707bc578dc1f1a269ae Author: Alex Stewart Date: Sun Jul 26 18:44:59 2020 +0100 Use latest FindTBB.cmake from VTK project - Retrieved from [1], SHA: 0d9bbf9beb97f8f696c43a9edf1e52c082b3639b on 2020-07-26 - [1]: https://gitlab.kitware.com/vtk/vtk/blob/master/CMake/FindTBB.cmake Change-Id: I953a8c87802a974d30ccc7c80f5229683826efbd commit aa1abbc578797c6b17ee7221db31535dc249ae66 Author: Alex Stewart Date: Sun Jul 26 19:57:31 2020 +0100 Replace use of GFLAGS_LIBRARIES with export gflags target - As our minimum required version of gflags (2.2) exports itself as a CMake package and this is the case for the default 18.04 package we can use the gflags target directly. - Replaces forced use of CONFIG in find_package(gflags) with a check that the gflags imported target exists to avoid ambiguity with libgflags if installed in a default location. This permits users to override the gflags detection should they so choose, provided that they do so via an imported target. - Also removes some previously removed legacy GLAGS_ vars from the installation docs. Change-Id: I015f5a751e5b22f956bbf9df692e63a6825c9f0d commit db2af1be8780bbe88944775400baa2dbd3592b7d Author: Sameer Agarwal Date: Mon Aug 3 04:57:08 2020 -0700 Add Problem::EvaluateResidualBlockAssumingParametersUnchanged Simplify the semantics for Problem::EvaluateResidualBlock to not ignore the presence of EvaluationCallback and add another method EvaluateResidualBlockAssumingParametersUnchanged to handle the case where the user has an EvaluationCallback but knows that the parameter blocks do not change between calls. Updated the documentation for the methods and EvaluationCallback to reflect these semantics. Also added tests for Evaluation related methods calling i EvaluationCallback when its present. https://github.com/ceres-solver/ceres-solver/issues/483 Change-Id: If0a0c95c2f1f92e9183a90df240104a69a71c46d commit ab4ed32cda004befd29a0b4b02f1d907e0c4dab7 Author: Sameer Agarwal Date: Mon Aug 3 04:17:33 2020 -0700 Replace NULL with nullptr in the documentation. Change-Id: I995f68770e2a4b6027c0a1d3edf5eb5132b081d7 commit ee280e27a6140295ef6258d24c92305628f3d508 Author: Sameer Agarwal Date: Fri Jul 31 16:48:06 2020 -0700 Allow SubsetParameterization to accept an empty vector of constant parameters. Thanks to Frédéric Devernay for reporting this and providing an initial fix. Change-Id: Id86a2051ab7841ecafdcfb00f4634b353a7ef3b4 commit 4b8c731d8a4f3fda53c642ff14a25fab6c233918 Author: Sameer Agarwal Date: Fri Jul 31 10:05:52 2020 -0700 Fix a bug in DynamicAutoDiffCostFunction DynamicAutoDiffCostFunction::Evaluate when provided with a jacobians array that was non-empty but all its entries are nullptr, would compute num_active_parameters = 0, and then skip over all the loops that evaluated the CostFunctor. The fix is to check if num_active_parameters == 0, and then treat it as the case where jacobians array is null. Thanks to Ky Waegel for reporting and providing a reproduction for this. Change-Id: Ib86930c2c3f722724d249f662bf88238679bbf98 commit 5cb5b35a930c1702278083c75769dbb4e5801045 Author: Alex Stewart Date: Sun Jul 26 20:42:12 2020 +0100 Fixed incorrect argument name in RotationMatrixToQuaternion() - Raised as: https://github.com/ceres-solver/ceres-solver/pull/607 by Frank Dellaert Change-Id: Id3e9f190e814cf18206e2f8c3b1b67b995c21dd5 commit e39d9ed1d60dfeb58dd2a0df4622c683f87b28e3 Author: Carl Dehlin Date: Tue Jun 16 09:02:05 2020 +0200 Add a missing term and remove a superfluous word Change-Id: I25f40f0bf241302b975e6fc14690aa863c0728b0 commit 27cab77b699a1a2b5354820c57a91c92eaeb21e3 Author: Carl Dehlin Date: Mon Jun 15 20:01:18 2020 +0200 Reformulate some sentences Change-Id: I4841aa8e8522008dd816261d9ad98e5fb8ad1758 commit 8ac6655ce85a4462f2882fcb9e9118a7057ebe09 Author: Carl Dehlin Date: Mon Jun 15 19:10:12 2020 +0200 Fix documentation formatting issues Change-Id: Iea3a6e75dc3a7376eda866ab24e535a6df84f8ea