diff options
Diffstat (limited to 'extern/libmv/third_party/ceres/ChangeLog')
-rw-r--r-- | extern/libmv/third_party/ceres/ChangeLog | 544 |
1 files changed, 320 insertions, 224 deletions
diff --git a/extern/libmv/third_party/ceres/ChangeLog b/extern/libmv/third_party/ceres/ChangeLog index 062bc250617..1a945b01622 100644 --- a/extern/libmv/third_party/ceres/ChangeLog +++ b/extern/libmv/third_party/ceres/ChangeLog @@ -1,3 +1,323 @@ +commit 36f4cd23b24391106e9f3c15b0f9bbcaafc47b20 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Sun Apr 21 09:42:26 2013 -0700 + + Disable threads completely if OpenMP is not present. + + This reduces the penalty paid by Mutex lock and unlock operations + in single threaded mode. + + Change-Id: I185380bde73fe87e901fc434d152d6c366ff1d5d + +commit 24fb32b42683cf711a6683e3cff3540b16bb5019 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Sat Apr 20 09:02:06 2013 -0700 + + Add whole program optimization for Clang. + + Also reorder the way CERES_CXX_FLAGS is being used for clarity. + + Change-Id: I2bbb90e770d30dd18ecae72939ea03b7fa11e6ae + +commit 2b7497025096a681d7f0351081f83293398d62ef +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Fri Apr 19 19:52:58 2013 -0700 + + Fix a bounds error in the pre-ordering code. + + Change-Id: I33c968bb075b60ad50374593302e08f42aeacf25 + +commit 9189f4ea4bb2d71ea7f6b9d9bd3290415aee323d +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Fri Apr 19 17:09:49 2013 -0700 + + Enable pre-ordering for SPARSE_NORMAL_CHOLESKY. + + Sparse Cholesky factorization algorithms use a fill-reducing + ordering to permute the columns of the Jacobian matrix. There + are two ways of doing this. + + 1. Compute the Jacobian matrix in some order and then have the + factorization algorithm permute the columns of the Jacobian. + + 2. Compute the Jacobian with its columns already permuted. + + The first option incurs a significant memory penalty. The + factorization algorithm has to make a copy of the permuted + Jacobian matrix. + + Starting with this change Ceres pre-permutes the columns of the + Jacobian matrix and generally speaking, there is no performance + penalty for doing so. + + In some rare cases, it is worth using a more complicated + reordering algorithm which has slightly better runtime + performance at the expense of an extra copy of the Jacobian + matrix. Setting Solver::Options::use_postordering to true + enables this tradeoff. + + This change also removes Solver::Options::use_block_amd + as an option. All matrices are ordered using their block + structure. The ability to order them by their scalar + sparsity structure has been removed. + + Here is what performance on looks like on some BAL problems. + + Memory + ====== + HEAD pre-ordering + 16-22106 137957376.0 113516544.0 + 49-7776 56688640.0 46628864.0 + 245-198739 1718005760.0 1383550976.0 + 257-65132 387715072.0 319512576.0 + 356-226730 2014826496.0 1626087424.0 + 744-543562 4903358464.0 3957878784.0 + 1024-110968 968626176.0 822071296.0 + + Time + ==== + HEAD pre-ordering + 16-22106 3.8 3.7 + 49-7776 1.9 1.8 + 245-198739 82.6 81.9 + 257-65132 14.0 13.4 + 356-226730 98.8 95.8 + 744-543562 325.2 301.6 + 1024-110968 42.1 37.1 + + Change-Id: I6b2e25f3fed7310f88905386a7898ac94d37467e + +commit f7ed22efc3afee36aae71a4f7949b3d327b87f11 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Fri Apr 19 14:24:48 2013 -0700 + + Add the ability to order the Program using AMD. + + This will allow CHOLMOD to compute the sparse + Cholesky factorization of J'J without making + a permuted copy of it. + + Change-Id: I25d0e18f5957ab7fdce15c543234bb2f09db482e + +commit c8f07905d76d9ac6fb8d7b9b02e180aa2fa0ab32 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Fri Apr 19 08:01:04 2013 -0700 + + Refactor SolverImpl::CreateReducedProgram. + + Break up CreateReducedProgram into smaller functions in + preparation for more sophisticated ordering strategies. + + Change-Id: Ic3897522574fde770646d747fe383f5dbd7a6619 + +commit 2560b17b7cdda1de28c18049c95e6c3188dbde93 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Fri Apr 19 08:19:11 2013 -0700 + + SuiteSparse cleanup. + + 1. CreateSparseMatrixTransposeView now returns a struct instead + of a pointer. + + 2. Add AnalyzeCholeskyWithNaturalOrdering. + + Change-Id: If27a5502949c3994edd95be0d25ec7a0d1fa1ae1 + +commit 7823cf23c765450b79f11ac31fc8a16f875c0d84 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Thu Apr 18 16:13:56 2013 -0700 + + Fix a typo in problem.h + + Thanks as usual to William Rucklidge. + + Change-Id: If6e8628841ee7fa8978ec56918a80d60b4ff660e + +commit 3d9546963d7c8c5f5dfb12a2df745f4996fd2ec5 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Thu Apr 18 14:54:55 2013 -0700 + + Add the ability to query the Problem about parameter blocks. + + Change-Id: Ieda1aefa28e7a1d18fe6c8d1665882e4d9c274f2 + +commit 69ebad42ebfc212339a22c6f06a12ec5a3368098 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Wed Apr 17 15:38:00 2013 -0700 + + Change Minimizer::Options::min_trust_region_radius to double. + + This was accidentally an int, which was setting the minimum + trust region radius to zero and effectively disabling a convergence + test based on it. + + (Thanks to Sergey Sharybin for providing a reproduction for this) + + Change-Id: Id0b9e246bcfee074954a5dc6a3a2342adab56c16 + +commit e6707b2411b9a823b6c748f9f9d0b22225d767bb +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Tue Apr 16 15:44:23 2013 -0700 + + Lint fixes from William Rucklidge. + + Change-Id: I57a6383bb875b24083cd9b7049333292d26f718c + +commit c7e69beb52c2c47182eaf8295025a668d0eefd80 +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Tue Apr 16 09:39:16 2013 -0700 + + Add a missing mutex lock in the SchurEliminator. This + was lost somewhere along in the BLAS based refactoring. + + Change-Id: I90b94fa9c3a8ea1b900a18f76ef6a7d0dbf24318 + +commit faa72ace9abea24877173158bfec451d5b46597e +Author: Joydeep Biswas <joydeep.biswas@gmail.com> +Date: Mon Apr 15 17:34:43 2013 -0400 + + Update to compile with stricter gcc checks. + + Change-Id: Iecb37cbe7201a4d4f42b21b427fa1d35d0183b1b + +commit 487250eb27256a41d38c5037bdac9a09a3160edb +Author: Sameer Agarwal <sameeragarwal@google.com> +Date: Fri Apr 5 14:20:37 2013 -0700 + + Minor cleanups. + + 1. Further BLAS and heap allocation cleanups in schur_eliminator_impl.h + 2. Modularize blas.h using macros. + 3. Lint cleanups from William Rucklidge. + 4. Small changes to jet.h + 5. ResidualBlock now uses blas.h + + Performance improvements: + + For static and dynamic sized blocks, the peformance is not changed much. + + -use_quaternions -ordering user -linear_solver sparse_schur + + master change + problem: 16-22106 + gcc 3.4 3.3 + clang 2.8 2.7 + + problem: 49-7776 + gcc 1.7 1.7 + clang 1.4 1.4 + + problem: 245-198739 + gcc 80.1 79.6 + clang 80.6 76.2 + + problem: 257-65132 + gcc 12.2 12.0 + clang 10.4 10.2 + + problem: 356-226730 + gcc 99.0 96.8 + clang 88.9 88.3 + + problem: 744-543562 + gcc 361.5 356.2 + clang 352.7 343.5 + + problem: 1024-110968 + gcc 45.9 45.6 + clang 42.6 42.1 + + However, performance when using local parameterizations is + significantly improved due to residual_block.cc using blas.h + + -use_quaternions -use_local_parameterization -ordering user -linear_solver sparse_schur + + master change + problem: 16-22106 + gcc 3.6 3.3 + clang 3.5 2.8 + + problem: 49-7776 + gcc 1.8 1.6 + clang 1.7 1.4 + + problem: 245-198739 + gcc 79.7 76.1 + clang 79.7 73.0 + + problem: 257-65132 + gcc 12.8 11.9 + clang 12.3 9.8 + + problem: 356-226730 + gcc 101.9 93.5 + clang 105.0 86.8 + + problem: 744-543562 + gcc 367.9 350.5 + clang 355.3 323.1 + + problem: 1024-110968 + gcc 43.0 40.3 + clang 41.0 37.5 + + Change-Id: I6dcf7476ddaa77cb116558d112a9cf1e832f5fc9 + +commit eeedd3a59281eb27025d7f9aa944d9aff0666590 +Author: Sergey Sharybin <sergey.vfx@gmail.com> +Date: Wed Apr 10 23:58:32 2013 +0600 + + Autodiff local parameterization class + + This class is used to create local parameterization + with Jacobians computed via automatic differentiation. + + To get an auto differentiated local parameterization, + class with a templated operator() (a functor) that + computes + + plus_delta = Plus(x, delta); + + shall be defined. + + Then given such functor, the auto differentiated local + parameterization can be constructed as + + LocalParameterization* local_parameterization = + new AutoDiffLocalParameterization<PlusFunctor, 4, 3>; + | | + Global Size ---------------+ | + Local Size -------------------+ + + See autodiff_local_parameterization.h for more information + and usage example. + + Initial implementation by Keir Mierle, finished by self + and integrated into Ceres and covered with unit tests + by Sameer Agarwal. + + Change-Id: I1b3e48ae89f81e0cf1f51416c5696e18223f4b21 + +commit d8d541674da5f3ba7a15c4003fa18577479f8f8c +Author: Sergey Sharybin <sergey.vfx@gmail.com> +Date: Wed Apr 10 11:13:27 2013 +0600 + + Do not modify cached CMAKE_CXX_FLAGS_RELEASE + + Adding compiler's flags and force updating cached value + of release C++ flags lead to appending special compiler + flags on every edit of any CMakeList.txt. + + For compile result this is harmless, but was annoying + slight modification of CMakeList.txt triggered full + project rebuild. + + Now modified C++ flags are used for the whole subtree + starting from the project root, but this doesn't lead + to flags modified in cache. + + Change-Id: Ieb32bd7f96d5a09632f0b2b5325f6567be8cb5a8 + commit c290df85a40a8dd117b5eccc515bf22b0d9b1945 Author: Sameer Agarwal <sameeragarwal@google.com> Date: Sun Apr 7 09:17:47 2013 -0700 @@ -395,227 +715,3 @@ Date: Mon Mar 4 10:17:30 2013 -0800 Thanks to Alexander Mordvintsev for reporting this. Change-Id: I5c6be4d3d28f062e83a1ad41cb8089c19362a005 - -commit 480f9b8551c02c429bc027197f3d868c5cc522c9 -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Sun Mar 3 20:15:22 2013 -0800 - - Add gerrit instructions to the docs. - - Change-Id: Ic98f20273f3ccbaeb8b4ca00c4ce0042a0d262f8 - -commit 7c60b5c2c6170f0f81a29dbaa2ca7d8031db843b -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Sun Mar 3 18:28:02 2013 -0800 - - version history update - - Change-Id: Ia92caeb0f6659667ce1e56eefd0e3c87b3f6e538 - -commit a363a7b69c7b97e17ad671ba1aee30f201eafdd1 -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Sun Mar 3 18:06:00 2013 -0800 - - Multithread DENSE_SCHUR - - Replace the global lock in BlockRandomAccessDenseMatrix - with a per cell lock. - - Change-Id: Iddbe38616157b6e0d3770eede3335a056c3ba18c - -commit 31730ef55df802d1e251edab3bac3c0cdcb30647 -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Thu Feb 28 11:20:28 2013 -0800 - - DenseSparseMatrix is now column-major. - - 1. Introduce new typdefs in eigen.h to allow for column - major matrices. - - 2. Clean up old unused typedefs, and the aligned typedefs - since they do not actually add any real performance. - - 3. Made eigen.h conform to the google style guide by removing - the using directives. They were polluting the ceres namespace. - - 4. Made the template specialization generator work again. - - Change-Id: Ic2268c784534b737ebd6e1a043e2a327adaeca37 - -commit f8e43f7f2724c5413015e1f113ce860ee8b30428 -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Wed Feb 27 08:55:20 2013 -0800 - - version history update - - Change-Id: Ibd412a9e5beac3b3ac3e15b26fb11aa061956095 - -commit fef82b3a7af1e44f18f5343601fb19a4dd6f89ad -Author: Alex Stewart <alexs.mac@gmail.com> -Date: Wed Feb 27 10:44:12 2013 +0000 - - Bugfix - commenting-out unused member which results in build error on OS X with latest Xcode. - - - Build error due to -Werror,-Wunused-private-field clang args. - - Raised with gtest group (as it also occurs with latest gtest:master but for a different - variable) with patch, but they don't want to fix for compatibility with legacy compilers/OS - see here: https://groups.google.com/forum/?fromgroups=#!topic/googletestframework/S1KLl2jkzws - - Change-Id: I99984bcd9d07f6eb0e3fac58e27ddf0ac9e54265 - -commit 0bc3540b66cf9de4d4a317c6a760849aa66d414e -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Wed Feb 27 08:46:48 2013 -0800 - - Version history update - - Change-Id: I6f79dd87e45bedf4bcf821e7b44f8b9553c39a7b - -commit b59ac43b9d1122da3d00882efa7c5d6833c06ea7 -Author: Alex Stewart <alexs.mac@gmail.com> -Date: Wed Feb 27 09:10:19 2013 +0000 - - Issue 83 fix: use correct pthread linker flags with clang. - - 1. -lpthreads was previously added to the CMAKE_CXX_FLAGS which are - not passed to the linker thus linking would fail. - 2. Clang would emit a warning about -lpthreads being added to a - build instruction with -c (compile only). - - This patch fixes both of these issues by adding -lpthreads to the - linker flags (and removes them from the CXX flags). - - Change-Id: I5e54de3ab7eced177aa31f311926893598af5b56 - -commit 6fb1024ed5b197da261f71d1bb02716661da2fff -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Tue Feb 26 22:20:18 2013 -0800 - - Fix a small bug in evaluator.h - - Change-Id: I2c4b8637e0ac8645721109f8b6bb2396ce8bb37b - -commit 039ff07dd1a02e6c9cff335551f05bfe8269224b -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Tue Feb 26 09:15:39 2013 -0800 - - Evaluate ResidualBlocks without LossFunction if needed. - - 1. Add the ability to evaluate the problem without loss function. - 2. Remove static Evaluator::Evaluate - 3. Refactor the common code from problem_test.cc and - evaluator_test.cc into evaluator_test_utils.cc - - Change-Id: I1aa841580afe91d288fbb65288b0ffdd1e43e827 - -commit c3fd3b960e489348d5b2c8b8f0167760e52ecbd9 -Author: Taylor Braun-Jones <taylor@braun-jones.org> -Date: Tue Feb 26 00:30:35 2013 -0500 - - Only use cmake28 macro for RHEL6 - - This makes it possible to use the same spec to build on Fedora. It drops any - chance of building on RHEL5, but I doubt that was possible anyway. - - Change-Id: Ia956eb6416504e520962ec2f617e03b40ca18203 - -commit b73148b9f38fe41032e696436566b78043a368db -Author: Taylor Braun-Jones <taylor@braun-jones.org> -Date: Mon Feb 25 02:34:00 2013 -0500 - - Remove -Wno-return-type-c-linkage option when using gcc - - Only use this option when compiling with CLang which supports it. - - Change-Id: I8555c16e82d61302f6a43672d0d63e5d4800c6b6 - -commit ba9442160dabf612a1dc51baf098937459b4b5ca -Author: Keir Mierle <mierle@gmail.com> -Date: Mon Feb 25 12:46:44 2013 -0800 - - Add the number of effective parameters to the final report. - - Here is an example report, obtained by running: - - bin/Debug/bundle_adjuster \ - --input=../ceres-solver/data/problem-16-22106-pre.txt \ - --linear_solver=iterative_schur \ - --num_iterations=1 \ - --alsologtostderr \ - --use_local_parameterization \ - --use_quaternions - - Note that effective parameters is less than parameters by 16, which is the - number of cameras. In this case the local parameterization has a 3 dimensional - tangent space for the 4-dimensional quaternions. - - Ceres Solver Report - ------------------- - Original Reduced - Parameter blocks 22138 22138 - Parameters 66478 66478 - Effective parameters 66462 66462 - Residual blocks 83718 83718 - Residual 167436 167436 - - Minimizer TRUST_REGION - Trust Region Strategy LEVENBERG_MARQUARDT - - Given Used - Linear solver ITERATIVE_SCHUR ITERATIVE_SCHUR - Preconditioner JACOBI JACOBI - Threads: 1 1 - Linear solver threads 1 1 - Linear solver ordering AUTOMATIC 22106, 32 - - Cost: - Initial 4.185660e+06 - Final 7.221647e+04 - Change 4.113443e+06 - - Number of iterations: - Successful 1 - Unsuccessful 0 - Total 1 - - Time (in seconds): - Preprocessor 0.697 - - Residual Evaluations 0.063 - Jacobian Evaluations 27.608 - Linear Solver 13.360 - Minimizer 43.973 - - Postprocessor 0.004 - Total 44.756 - - Termination: NO_CONVERGENCE - - Change-Id: I6b6b8ac24f71bd187e67d95651290917642be74f - -commit 36dc14ddf2fd53238c2ce21f172aa1989b31c0fd -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Mon Feb 25 10:33:10 2013 -0800 - - Fix a clang warning - - Change-Id: I5ef32c6329f1f75efb30b16519b8de146a8339fa - -commit 931c309b2734329ec6e5f0b88ce4a0b488ac47e5 -Author: Sameer Agarwal <sameeragarwal@google.com> -Date: Mon Feb 25 09:46:21 2013 -0800 - - Cleanup based on comments by William Rucklidge - - Change-Id: If269ba8e388965a8ea32260fd6f17a133a19ab9b - -commit df36218c953e05d665df2cc96a6d7625e2307d97 -Author: Taylor Braun-Jones <taylor@braun-jones.org> -Date: Fri Feb 15 18:28:11 2013 -0500 - - Add support for the CMake "LIB_SUFFIX" convention - - Allows `make install` to work correctly on e.g. 64-bit systems where the - native libraries are installed to /usr/lib64 - - Change-Id: I71b4fae7b459c003cb5fac981278c668f2e29779 |