tornavis/extern/ceres/ChangeLog

588 lines
22 KiB
Plaintext

commit e39d9ed1d60dfeb58dd2a0df4622c683f87b28e3
Author: Carl Dehlin <carl@dehlin.com>
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 <carl@dehlin.com>
Date: Mon Jun 15 20:01:18 2020 +0200
Reformulate some sentences
Change-Id: I4841aa8e8522008dd816261d9ad98e5fb8ad1758
commit 8ac6655ce85a4462f2882fcb9e9118a7057ebe09
Author: Carl Dehlin <carl@dehlin.com>
Date: Mon Jun 15 19:10:12 2020 +0200
Fix documentation formatting issues
Change-Id: Iea3a6e75dc3a7376eda866ab24e535a6df84f8ea
commit 7ef83e07592ead74eeacc227b642df1959d2a246
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sat May 30 11:30:01 2020 +0100
Update minimum required C++ version for Ceres to C++14
- Removes all workarounds for pre-C++14 versions
- Removes '11' qualifier from C++ threading option and associated
defines.
- Fix missing inclusion of 'Multithreading' in reported Ceres components
when C++ threading model is enabled.
- Update Sphinx documentation to specify C++14 as minimum requirement.
Change-Id: I706c8b367b3221e3c4d1a0aaf669a8f9c911e438
commit 1d75e7568172dc5a4dc97937dcf66e0f5d28272c
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon May 25 18:09:50 2020 -0700
Improve documentation for LocalParameterization
Change-Id: I63fa81206e67bfac56cc42bf2bb4915a3a11332b
commit 763398ca4ed56952f48c48df6a98e277e3e05381
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon May 25 12:12:03 2020 -0700
Update the section on Preconditioners
Re-organize the section, add some more references and details for
existing preconditioners and add documentation for the SUBSET
precondition.
https://github.com/ceres-solver/ceres-solver/issues/490
Change-Id: I93d0af819c160f5e4ce48b18202f629ddb92ca7b
commit a614f788a34ea86dd9f679b779ffbf920db45aa6
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri May 22 13:52:53 2020 -0700
Call EvaluationCallback before evaluating the fixed cost.
Fixe a subtle bug in Program::RemoveFixedBlocks, where we call
ResidualBlock::Evaluate on residual blocks with all constant parameter
blocks without paying attention to the presence of an
EvaluationCallback.
In the process also run clang-format on some of the files touched by
this change.
https://github.com/ceres-solver/ceres-solver/issues/482
Change-Id: I342b66f6f975fdee2eef139a31f24d4a3e568e84
commit 70308f7bb9cac560db250262079c0f8b030b9d6b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue May 26 06:12:13 2020 -0700
Simplify documentation generation.
1. The MathJax font configuration is moved into conf.py and removed
from make_docs.py along with better font sizing.
2. Remove the bread crumb replacement as it is not working anymore.
3. Fix a parsing error in nnls_modeling.rst which the new version of
sphinx barfed on.
Change-Id: Ia3c2e732323a8b5cabafe851ac5ca0f0c82da071
commit e886d7e65368e73e9d35c2ead895d81ced677977
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon May 25 13:09:39 2020 -0700
Reduce the number of minimizer iterations in evaluation_callback_test.cc
This should reduce the probability of the test heuristic failing due
to floating point issues.
https://github.com/ceres-solver/ceres-solver/issues/562
https://github.com/ceres-solver/ceres-solver/issues/392
Change-Id: I8ccf4164a8d595f5930d378f464313d4a2cae419
commit 9483e6f2f57bf51bad7cefd155cd5b48ca672c63
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue May 12 05:16:32 2020 -0700
Simplify DynamicCompressedRowJacobianWriter::Write
Change-Id: I67aa2959bd479909b5cada79359c5cfdb8a37ef7
commit 323cc55bb92a513924e566f487b54556052a716f
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon May 25 10:38:35 2020 -0700
Update the version in package.xml to 2.0.0.
Change-Id: Ibac053916520e8c597c875a8c7f5668bb35b6ba1
commit 303b078b50bd3311a9c86fc256be3e9f2f334411
Author: Bayes Nie <niebayes@gmail.com>
Date: Sun May 24 16:08:52 2020 +0800
Fix few typos and alter a NULL to nullptr.
Fix typos in docs/source/features.rst and examples/helloworld.cc. Alter a NULL to nullptr in include/ceres/autodiff_cost_function.h
Change-Id: Ibcf00b6ef665ad6be9af14b3add2dd4f3852e7e6
commit cca93fed63dd4117f3d6dd5339131fc7674e6e0a
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun May 24 18:05:05 2020 +0100
Bypass Ceres' FindGlog.cmake in CeresConfig.cmake if possible
- If the version of glog detected and used to build Ceres was built with
CMake (i.e. Config mode) then we now use Config mode directly in
CeresConfig.cmake and do not install Ceres' FindGlog.cmake module.
- This has the benefit of removing any hard-coded paths from
CeresConfig.cmake provided that all dependencies were also built with
CMake.
Change-Id: I85af8a953fd6d300e8bc0cdeb0b3636fec182f68
commit 77fc1d0fc4159ebb3a0a84a16651564eb2ce3c9d
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun May 24 19:07:26 2020 +0100
Use build_depend for private dependencies in Catkin package.xml
Change-Id: If0c0569e7ebbf37c0d8e8daaf7765e20a6282531
commit a09682f00d8e50ada3c7ed16f8c48fa71a423f60
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun May 24 16:49:28 2020 +0100
Fix MSVC version check to support use of clang-cl front-end
- Raised as issue: #521
Change-Id: Iaea6b43484b90ec8789bda0447c8a90759974ec1
commit b70687fcc86624c7d5520d25734938fa95d2af73
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun May 24 20:28:12 2020 +0100
Add namespace qualified Ceres::ceres CMake target
- This reflects modern CMake style, and also provides a measure of
protection against missing find_package() imports in downstream
clients resulting in linker errors when 'ceres' matches the compiled
library and not the imported target.
- The original 'ceres' target remains, as a local imported interface
target created by CeresConfig for backwards compatibility.
Change-Id: Ie9ed8de9b7059bc0cae1ae5002bb94d8fe617188
commit 99efa54bdb4e14c3f4382a166baf6772113f74a8
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun May 24 19:18:38 2020 +0100
Replace type aliases deprecated/removed in C++17/C++20 from FixedArray
- Raised as issue #551
- Also adds C++20 to the set of ALLOWED_CXX_STANDARDS, although this
will require a version of CMake >= 3.12.
Change-Id: I0f13c72e93a35391fd2d18590b4243a329a2322c
commit adb973e4a337c372aa81ca1a4f3bb704068c08b7
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu May 21 14:45:28 2020 -0700
NULL -> nullptr
Change-Id: Iaeea2ef7912d328653a76b65976adc8025a5be35
commit 27b717951b58c134b3a5a9f664a66c7480364d6c
Author: Alastair Harrison <aharrison24@gmail.com>
Date: Fri May 15 10:10:12 2020 +0100
Respect FIND_QUIETLY flag in cmake config file
Ensure that Ceres does not print any log messages when somebody has
used 'find_package(Ceres QUIET)' in their CMake project.
Change-Id: Id6b68859cc8a5857f3fa78f29736cb82fd5a0943
commit 646959ef118a1f10bf93741d97cf64265d42f8c6
Author: huangqinjin <huangqinjin@gmail.com>
Date: Sat Apr 25 02:03:11 2020 +0800
Do not export class template LineParameterization
For MSVC, instantiating a dllimport class template will cause error C2491:
definition of dllimport function not allowed.
Change-Id: Icc7f7ea84598df0a5436f48ffc2bab5cfab93921
commit 1f128d070a24224d12eb901bc74ba393ccdbd0c3
Author: huangqinjin <huangqinjin@gmail.com>
Date: Mon Mar 4 13:14:43 2019 +0800
Change the type of parameter index/offset to match their getter/setter
Change-Id: If28b795e792f39db9775ada105e9038570195329
commit 072c8f070e16cb32f211473c40196c6b5618d5a9
Author: huangqinjin <huangqinjin@gmail.com>
Date: Sat Apr 25 00:04:58 2020 +0800
Initialize integer variables with integer instead of double
Change-Id: I652aca4ceb3129706a5d5e38afe9f16b61200a5b
commit 8c36bcc81fbd4f78a2faa2c914ef40af264f4c31
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Apr 27 18:33:25 2020 +0100
Use inline & -inlinehint-threshold in auto-diff benchmarks
- This results in the same performance as the original solution of
increasing -inline-threshold, but this approach is more viable to
incorporate in a large code base as its effects are more targeted.
Change-Id: Id798dbca7d3050de0ea847a5ecc69484ac78a2cf
commit 57cf20aa5d3c1b2f25d255814f4fff5260db81c6
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Apr 21 10:10:01 2020 -0700
static const -> static constexpr where we can.
Change-Id: I8a6d26a89c4377dd440fa6dcf23513b7556533fc
commit 40b27482a202c8b0a5f9e8f2b4be0192d34195f5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Apr 21 09:35:30 2020 -0700
Add std::numeric_limit specialization for Jets
This allows users to use std::numeric_limits on templated functors.
Change-Id: I403cec5c9826033ce7dfd6047deb64f66c35f806
commit e751d6e4f0daa9f691c5ed25ca8dc564875d8bef
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Wed Apr 8 10:43:53 2020 +0200
Remove AutodiffCodegen
- Remove Codegen files
- Revert Jet and Rotation
Change-Id: I005c5f98f2b6dfa5c7fd88d998b6aa83e47dab60
commit e9eb76f8ef9835940659cfb3a312ed6822c48152
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Mon Apr 6 11:11:43 2020 +0200
Remove AutodiffCodegen CMake integration
Change-Id: I403597540df8429378336626b8f748b7821fe6f5
commit 9435e08a7a7c903897e18e1dc24d801caf4f62a4
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Apr 3 11:50:09 2020 -0700
More clang-tidy and wjr@ comment fixes
Change-Id: I5736ae482f736fc56c00d21c659b1f8d41da68e9
commit d93fac4b7ab670a936ce821284a0b9d099b4688c
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Fri Apr 3 09:33:17 2020 +0200
Remove AutodiffCodegen Tests
Change-Id: Icd194db7b22add518844f1b507d0fdd3e0fe17fe
commit 2281c6ed24d2c12f133fa6039f224b3da18cebe3
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Apr 2 16:43:42 2020 -0700
Fixes for comments from William Rucklidge
Change-Id: I64fcc25532cc66dc4cb7e2ea7ccfb220b0cb7e1f
commit d797a87a4091af6ae0063e3c8291429c15318bdc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Apr 2 13:57:56 2020 -0700
Use Ridders' method in GradientChecker.
Using Ridders' method gives orders of magnitude more accuracy compared
to central differences. This will make things slower, but this is
primarily a testing/debugging feature and the speed hit is not a
concern. This should also reduce the false positive rates when users
enable check_gradients. This is reflected the increased sensitivity of
the tests for GradientChecker.
https://github.com/ceres-solver/ceres-solver/issues/554
Change-Id: I6b871c72df55be1c31175ba062cf3c1e94e4b662
commit 41675682dc9df836bf15845064cfe1087619c79d
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Apr 2 07:28:38 2020 -0700
Fix a MSVC type deduction bug in ComputeHouseholderVector
A recent change made this function templated and MSVC 16 has trouble
doing automatic argument deduction, so the type of the template is
simplified and all callsites are explicitly annotated with the type
of the arguments.
Change-Id: I83cd0269e6e82c4a8f4e391f5fc03b92c942f74d
commit 947ec0c1fa0f67c89e21daaf8d1648822ae5293a
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Thu Apr 2 09:52:53 2020 +0200
Remove AutodiffCodegen autodiff benchmarks
Change-Id: If1eaad31710cc91d40323ea6cae7cabe6fa64b1f
commit 27183d661ecae246dbce6d03cacf84f39fba1f1e
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Jul 11 16:30:59 2019 +0200
Allow LocalParameterizations to have zero local size.
Local parameterizations with zero tangent/local size will cause the
corresponding parameter block to be treated as constant.
https://github.com/ceres-solver/ceres-solver/issues/347
Change-Id: I554a2acc420f5dd9d0cc7f97b691877eb057b2c0
commit 7ac7d79dca2ac6b482da50fd9ad0227ba8d6c632
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Wed Apr 1 14:51:12 2020 +0200
Remove HelloWorldCodegen example
Change-Id: I2584f41d591a5d648b4832385c2a779bb25fc04d
commit 8c8738bf832f0fc27f0d4a9585fc59b2eaa6a828
Author: Nikolaus Demmel <nikolaus@nikolaus-demmel.de>
Date: Sun Mar 29 13:29:02 2020 +0200
Add photometric and relative-pose residuals to autodiff benchmarks
Change-Id: Id100ff2656ab63bb4fd19a51b95e78281cfd8b4a
commit 9f7fb66d62014ed62ba6aa617364e8591211c797
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Wed Mar 25 11:41:39 2020 +0100
Add a constant cost function to the autodiff benchmarks
The constant cost function is run with a variable number of
parameters to test at which point, different compilers fail
to optimize the autodiff code.
Clang achieves expected performance which fails at >50 parameters.
G++ fails already at 20 parameters
Change-Id: I75d8c683ef0011d813ec6d966d7ad58f86530f44
commit ab0d373e465f46ce483db640d0fb2f244f48702d
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Mar 24 12:30:46 2020 -0700
Fix a comment in autodiff.h
Change-Id: I613e537c834e3f29cd92808c65ddb74f112974cc
commit 27bb997144d00dd4494d440627f1e782bf4adf43
Author: Johannes Beck <Jodebo_Beck@gmx.de>
Date: Tue Mar 24 08:05:43 2020 +0100
Change SVD algorithm in covariance computation.
Switch from JacobiSVD to BDCSVD in
ComputeCovarianceValuesUsingDenseSVD. This should increase
the performance for larger covariance matrices. See
https://eigen.tuxfamily.org/dox/classEigen_1_1BDCSVD.html
Change-Id: Icde4dec89f506b638b0f9f1aee3b7cfc9e4d72fc
commit 84fdac38e033c8f9a63c6e6fca7b44219110f7df
Author: Johannes Beck <Jodebo_Beck@gmx.de>
Date: Tue Mar 24 08:02:21 2020 +0100
Add const to GetCovarianceMatrix*
This CL adds const to the functions GetCovarianceMatrix and
GetCovarianceMatrixInTangentSpace.
Change-Id: Ibe2cafebede47977a9aabcac8d245f30af184fd1
commit 6bde61d6be9d81a2cd759a6bbb4a8cd3c24a529c
Author: Johannes Beck <Jodebo_Beck@gmx.de>
Date: Sat Dec 28 13:29:19 2019 +0100
Add line local parameterization.
This CL adds a local parameterization for a n-dimensional
line, which is represented as an origin point and a direction.
The line direction is updated in the same way as a
homogeneous vector and the origin point is updated
perpendicular to the line direction.
Change-Id: I733f395e5cc4250abf9778c26fe0a5ae1de6b624
commit 2c1c0932e9d3f91691e5c5fce46b4440e181a8bc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Mar 23 11:15:32 2020 -0700
Update documentation in autodiff.h
Change-Id: Icc2753b4f5be95022ffd92e479cdd3d9d7959d4c
commit 8904fa4887ed7b3e6d110ad5a98efbc2df48595e
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Mon Mar 23 14:59:26 2020 +0100
Inline Jet initialization in Autodiff
Inlining the Jet initialzation is mandatory for good performance
in autodiff, because all the constants in the dual part can be
propagated into the cost functor.
This patch unrolls the initialization loop with templates and adds
EIGEN_ALWAYS_INLINE to the constructors.
Change-Id: Ic89d645984f3e1df6c63948236da823ba60d9620
commit 18a464d4e566e17930005876af19e32cc8796fa3
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Mar 23 07:12:12 2020 -0700
Remove an errant CR from local_parameterization.cc
Change-Id: Iff98a96f06de5755062a1c79523604dca78b298e
commit 5c85f21799804d39cbfd20ec451aa219511e4212
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Mon Mar 23 10:12:00 2020 +0100
Use ArraySelector in Autodiff
The class ArraySelector is now used in autodiff to store the
parameters and residuals. This reduces overhead of FixedArray
for fixed-sized residuals and allows more optimizations due
to inlining and unrolling.
Change-Id: Ibadc5644e64d672f7a555e250fb1f8da262f9d4f
commit 80477ff073ab7af03cfb248cab4ef41a87f913d0
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Fri Mar 20 16:26:55 2020 +0100
Add class ArraySelector
The ArraySelector selects the best array implementation based on
template arguments.
Change-Id: I93c6db1a638e924b85292e63bca9525610ec2e2f
commit e7a30359ee754057f9bd7b349c98c291138d91f4
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Fri Mar 20 15:50:37 2020 +0100
Pass kNumResiduals to Autodiff
The compile-time constant kNumResiduals is now passed to the
autodiff functions as a template parameter. This will be used
by future patches to optimize autodiff performance.
Change-Id: Ia2b2cc99b88752e8f12f4ce2542b1963bda552f5
commit f339d71dd64e4d871cc883f278a153f212f0d1f0
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Mar 19 12:08:28 2020 -0700
Refactor the automatic differentiation benchmarks.
1. Merge them into a single binary.
2. All benchmarks now do the Residual and the Residual + Jacobian
evaluation.
3. Re-organize and simplify the CMake file in this directory.
4. Fix a bug in the file where the Clang compiler was not being matched.
autodiff_benchmarks
---------------------------------------------------------------------------
Benchmark Time CPU Iterations
---------------------------------------------------------------------------
BM_Linear1CodeGen/0 3.02 ns 3.01 ns 233870456
BM_Linear1CodeGen/1 3.02 ns 3.01 ns 233059100
BM_Linear1AutoDiff/0 3.78 ns 3.77 ns 185791712
BM_Linear1AutoDiff/1 14.0 ns 13.8 ns 53927875
BM_Linear10CodeGen/0 5.10 ns 5.10 ns 126745007
BM_Linear10CodeGen/1 29.1 ns 29.1 ns 23949310
BM_Linear10AutoDiff/0 6.50 ns 6.49 ns 107516972
BM_Linear10AutoDiff/1 169 ns 169 ns 4153218
BM_Rat43AutoDiff/0 52.7 ns 51.2 ns 16444586
BM_Rat43AutoDiff/1 91.8 ns 91.5 ns 7302316
BM_SnavelyReprojectionCodeGen/0 38.0 ns 36.2 ns 21131501
BM_SnavelyReprojectionCodeGen/1 113 ns 112 ns 5627779
BM_SnavelyReprojectionAutoDiff/0 34.4 ns 34.3 ns 20476937
BM_SnavelyReprojectionAutoDiff/1 242 ns 240 ns 2930611
BM_BrdfCodeGen/0 53.9 ns 53.7 ns 11950083
BM_BrdfCodeGen/1 507 ns 505 ns 1396732
BM_BrdfAutoDiff/0 58.3 ns 57.8 ns 12220670
BM_BrdfAutoDiff/1 2034 ns 1999 ns 257003
autodiff_benchmarks_fast_math
---------------------------------------------------------------------------
Benchmark Time CPU Iterations
---------------------------------------------------------------------------
BM_Linear1CodeGen/0 3.19 ns 3.16 ns 215313065
BM_Linear1CodeGen/1 2.78 ns 2.76 ns 201497994
BM_Linear1AutoDiff/0 3.27 ns 3.26 ns 206154598
BM_Linear1AutoDiff/1 13.2 ns 13.1 ns 57257840
BM_Linear10CodeGen/0 5.70 ns 5.51 ns 121849325
BM_Linear10CodeGen/1 33.9 ns 33.3 ns 21829295
BM_Linear10AutoDiff/0 6.85 ns 6.78 ns 106813153
BM_Linear10AutoDiff/1 173 ns 171 ns 3849877
BM_Rat43AutoDiff/0 44.8 ns 44.2 ns 15577017
BM_Rat43AutoDiff/1 96.2 ns 94.6 ns 7374864
BM_SnavelyReprojectionCodeGen/0 33.9 ns 33.5 ns 20508373
BM_SnavelyReprojectionCodeGen/1 89.7 ns 88.4 ns 7620624
BM_SnavelyReprojectionAutoDiff/0 36.5 ns 35.8 ns 20546176
BM_SnavelyReprojectionAutoDiff/1 257 ns 252 ns 3044325
BM_BrdfCodeGen/0 61.1 ns 58.5 ns 11334013
BM_BrdfCodeGen/1 265 ns 265 ns 2625459
BM_BrdfAutoDiff/0 52.5 ns 52.5 ns 12938763
BM_BrdfAutoDiff/1 1560 ns 1560 ns 440909
Change-Id: I2d1a4293d3245a50f73af6cf5e5138084321ae6f
commit d37b4cb150c4af65268f9ce5739d1c67e73cb358
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Mar 19 07:36:58 2020 -0700
Fix some include headers in codegen/test_utils.cc/h
Change-Id: I769029ce2797eba0de6c7baeb76dc3f2782b6305
commit 550766e6da49dca895a6e2056b0872c557157c5b
Author: Darius Rueckert <darius.rueckert@fau.de>
Date: Wed Mar 18 20:09:20 2020 +0100
Add Autodiff Brdf Benchmark
The disney brdf is a good benchmark cost functor, because it has
- 28 parameters in 7 blocks
- 3 residuals
- Lots of low-level arithmetic
Change-Id: I62c8a717d0aecb64639158f971bdccf6afdfae36