Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/libmv/third_party/ceres/ChangeLog')
-rw-r--r--extern/libmv/third_party/ceres/ChangeLog937
1 files changed, 448 insertions, 489 deletions
diff --git a/extern/libmv/third_party/ceres/ChangeLog b/extern/libmv/third_party/ceres/ChangeLog
index 9c6ec324a24..c9f5b3426bc 100644
--- a/extern/libmv/third_party/ceres/ChangeLog
+++ b/extern/libmv/third_party/ceres/ChangeLog
@@ -1,687 +1,646 @@
-commit 15bf0d5018dfe432ef67e726b248efcf3b58bc4f
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Mon Jan 13 20:38:28 2014 +0600
+commit 8c62487e437b91d3d354cd1ae8957e43fe540732
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Fri May 16 09:44:18 2014 -0700
- Code cleanup: fix no previous declaration warnings
+ Preparations for 1.9.0 release.
- Move internally used functions to an anonymous namespace,
+ Version bump.
+ minor docs update.
- Change-Id: I84c98facf901e64771d131b088e20e2c033cab70
+ Change-Id: I2fbe20ba4af6b2e186fe244c96ce6d6464fe0469
-commit 80a53eebfd28bfc032cedbf7852d5c56eb1d5af5
+commit 0831275a78ab65e4c95979598cb35c54d03d3185
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu Jan 9 12:40:54 2014 -0800
+Date: Fri May 16 08:17:54 2014 -0700
- Faster LBFGS.
-
- 1. Use column major storage for the various matrices used by
- LowRankInverseHessian. Since all the operations are on columns.
-
- 2. Use a circular buffer to keep track of history of the LBFGS updates
- so that an update does not require copying the entire history. This
- makes the updates O(1) rather than O(rank).
+ Documentation update.
- The implementation has been checked against the denoising code
- where it gives numerically identical results. The overhead of the
- LBFGS code is now near negligible as compared to the gradient evaluation.
+ 1. Update iOS build instructions.
+ 2. Update version history.
- On a sample problem
-
- before 1050ms after: 630ms
-
- Change-Id: I537ba506ac35fc4960b304c10d923a8dea2ae031
+ Change-Id: I49d62e86ecff39190b50c050cb12eef4e2773357
-commit f55780063620e7a3dcfe7e018d6488bf6a5b29da
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed Jan 8 10:43:31 2014 -0800
+commit c7c7458625996a20203f1366d11bd701e5fb621b
+Author: Jack Feng <jackfengji@gmail.com>
+Date: Mon May 12 10:23:56 2014 +0800
- Reduce logging verbosity.
+ add support for building for ios
- When user specifies Solver::Options::logging_type = SILENT,
- ensure that the minimizer does not log anything.
+ use ios-cmake to build for ios
- Change-Id: I94e34dae504881ab36d4a66e6adb7a19a227363e
+ Change-Id: I6b17c33339f3121322a4004d79629b22a62f7a94
-commit 85561eee951c91e578984c6d3eecf0073acabb64
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue Jan 7 22:22:14 2014 -0800
+commit 36c2ce87d13b9b7123bd0473b8b45fb3b6ae4271
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Mon Jan 13 21:18:08 2014 +0600
- Use int32 for parameter block sizes.
+ Libmv 2D homography estimation example application
+
+ Add an example application of homography matrix estimation
+ from a 2D euclidean correspondences which is done in two
+ steps:
+
+ - Coarse algebraic estimation
+ - Fine refinement using Ceres minimizer
- CostFunction now uses int32 instead of int16
- to store the size of its parameter blocks.
+ Nothing terribly exciting apart from an example of how to
+ use user callbacks.
- This is an API breaking change.
+ User callback is used here to stop minimizer when average
+ of symmetric geometric distance becomes good enough.
+ This might be arguable whether it's the best way to go
+ (in some cases you would want to stop minimizer when
+ maximal symmetric distance is lower than a threshold) but
+ for a callback usage example it's good enough to stick
+ to current logic.
- Change-Id: I032ea583bc7ea4b3009be25d23a3be143749c73e
+ Change-Id: I60c8559cb10b001a0eb64ab71920c08bd68455b8
-commit a7fda3317b1a97702750bea96ac3ef3d1a2afb49
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Mon Jan 6 10:25:42 2014 +0000
+commit d99a3a961e4a6ff7218d0ab749da57cf1a1677bd
+Author: Björn Piltz <bjornpiltz@gmail.com>
+Date: Wed May 7 14:59:12 2014 +0200
- Fix typos in error messages in line search config checks.
+ Separate PUBLIC and PRIVATE library dependencies
+ Do not propagate 3d party libs through
+ IMPORTED_LINK_INTERFACE_LIBRARIES_[DEBUG/RELEASE] mechanism
+ when building shared libraries. SuiteSparse, lapack & co
+ are considered private. Glog still gets propagated since
+ it is part of the public interface. See documentation of
+ TARGET_LINK_LIBRARIES().
- Change-Id: I3ae2ae58328e996598e3e32c12869d2b10109ef7
+ Change-Id: If0563b0c705b102876f5190e9a86694d10f79283
-commit f695322eb8c5ff118f0d27f68d46d557338e5db1
+commit 1c089e8453583876f417b214f76a5863d7694986
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sat Jan 4 14:28:23 2014 -0800
+Date: Tue May 13 16:58:25 2014 -0700
- Remove a compilation warning on windows.
-
- Only define NOMINMAX if it is not already defined.
-
- Thanks to Pierre Moulon for this fix.
+ Notational fix in modeling.rst by William Rucklidge.
- Change-Id: Ia5dc0f5ff2afe10e4c7e97a57f54297d82052b21
+ Change-Id: Iffa127541380fcc32da13fe4ac474692e1e3d0ec
-commit b811041d78d80518db153ef3030bcbdbaf80df8d
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Thu Jan 2 15:19:17 2014 +0600
+commit 082d9e2a1b43b26a81157a6c711de0ff34c40ba4
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Mon May 12 20:41:27 2014 -0700
- Code cleanup: fix no previous declaration warnings
+ Add iOS.cmake from the ios-cmake project.
- Moved some internally used functions into an anonymous namespace.
+ URL: https://github.com/cristeab/ios-cmake
+ Commit: 86dc085f0d5ed955cd58e2657cc3efc7c1aabbc8
- Change-Id: Ie82df61b0608abac79ccc9f7b14e7f7e04ab733d
+ Change-Id: I8fe6023d4cb6655b5a724e8b695fdae87ce3b685
-commit f14f6bf9b7d3fbd2cab939cf4ad615b317e93c83
+commit a97056c9752fe7223c8560da58862ecb1fd241ad
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu Dec 26 09:50:45 2013 -0800
+Date: Tue May 13 16:45:36 2014 -0700
- Speed up SPARSE_NORMAL_CHOLESKY when using CX_SPARSE.
-
- When using sparse cholesky factorization to solve the linear
- least squares problem:
-
- Ax = b
-
- There are two sources of computational complexity.
-
- 1. Computing H = A'A
- 2. Computing the sparse Cholesky factorization of H.
-
- Doing 1. using CX_SPARSE is particularly expensive, as it uses
- a generic cs_multiply function which computes the structure of
- the matrix H everytime, reallocates memory and does not take
- advantage of the fact that the matrix being computed is a symmetric
- outer product.
+ Various documentation fixes from William Rucklidge.
- This change adds a custom symmetric outer product algorithm for
- CompressedRowSparseMatrix.
-
- It has a symbolic phase, where it computes the sparsity structure
- of the output matrix and a "program" which allows the actual
- multiplication routine to determine exactly which entry in the
- values array each term in the product contributes to.
-
- With these two bits of information, the outer product H = A'A
- can be computed extremely fast without any reasoning about
- the structure of H.
-
- Further gains in efficiency are made by exploiting the block
- structure of A.
-
- With this change, SPARSE_NORMAL_CHOLESKY with CX_SPARSE as the
- backend results in > 300% speedup for some problems.
+ Change-Id: I102e98f41f4b5fe2a84d1224d5ed7517fdfdb022
+
+commit 2f8fb218f0a08102231ace07ef02b34b4aad7336
+Author: Alex Stewart <alexs.mac@gmail.com>
+Date: Tue May 13 20:57:39 2014 +0100
+
+ Adding function to update CMake cache variables and preserve help.
- The symbolic analysis phase of the solver is a bit more expensive
- now but the increased cost is made up in 3-4 iterations.
+ - Previously we were replicating the same two lines to update a cache
+ variable whilst preserving its help string.
+ - This commit adds a function which wraps up this common operation into
+ a single line.
- Change-Id: I5e4a72b4d03ba41b378a2634330bc22b299c0f12
+ Change-Id: Ic78a5adf5d59262bbbcec1e353ded7620391e862
-commit d79f886eb87cb064e19eb12c1ad3d45bbed92198
+commit 8f4dcb25f1be74a8c12c0f9eeb67b6b0755563f5
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Mon Dec 30 07:39:10 2013 -0800
+Date: Tue Apr 29 21:40:57 2014 -0700
- Refactor line search error checking code.
+ Documentation update.
- Move the error checking code into its own function
- so that it can be used in upcoming changes.
+ Update modeling.rst and solving.rst to reflect
+ changes to the API.
- Change-Id: Icf348e5a8bbe8f8b663f04fb8cfc9a2149b12f22
+ Change-Id: Id1a8adfed1486f08e5fd67c5af2d29708a26490c
-commit 2b16b0080b6e673eaaf9ed478c9e971d9fcd65de
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Fri Dec 20 15:22:26 2013 -0800
+commit d48e7050225730f61eaef851def5b43bc439e991
+Author: Alex Stewart <alexs.mac@gmail.com>
+Date: Sat May 10 08:58:58 2014 +0100
- CompressedRowSparseMatrix::AppendRows and DeleteRows bugfix.
+ Configure config.h and include it from the build directory.
- CompressedRowSparseMatrix can store the row and column block structure
- but the AppendRows and DeleteRows methods did not pay attention to them.
- This meant that it was possible to get to a CompressedRowSparseMatrix
- whose block structure did not match the contents of the matrix.
+ - Previously we overwrote the default (empty) config.h in the source
+ tree with a configured config.h, generated using the current compile
+ options.
+ - This was undesirable as it could lead to inadvertant commits of the
+ generated config.h.
- This change fixes this problem.
+ - This patch moves the default config.h to <src>/config/ceres/internal,
+ separate from the other headers, thus if Ceres is compiled without
+ CMake this directory will now also have to be included. This
+ directory is _not_ added to the CMake include directories for Ceres
+ (thus the default config.h is never used when compiling with CMake).
+ - When using CMake, the generated config.h is now placed in
+ <build>/config/ceres/internal, which is in turn added to the include
+ directories for Ceres when it is compiled, and the resulting config.h
+ is copied to ceres/internal when installed.
- Change-Id: I1b3c807fc03d8c049ee20511e2bc62806d211b81
+ Change-Id: Ib1ba45e66e383ade2ebb08603af9165c1df616f2
-commit 27bb4a8589c47a65b5ea2c01872a903043d0ef74
+commit 11c496164ffe9809306945c2b81276efcd51533d
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed Dec 18 13:06:58 2013 -0800
+Date: Fri May 9 16:27:03 2014 -0700
- Handle empty problems consistently.
-
- Until now Ceres was inconsistent in the way it handled a solve
- call on an "empty" Problem. If the problem did not contain
- any residual or parameter blocks, it failed. However, if after
- constructing the reduced program, the problem was found to not
- contain any modifiable parameter blocks, it was considered a valid
- problem which had a constant objective function value.
+ Fix 80cols violation in local_parameterization.h
- When creating problems automatically, it is often the case that
- an empty problem is a corner case. This change makes handling this
- corner case consistent with the rest of Ceres logic.
-
- Change-Id: Ia9da09fbf5d5cd7eae6b39a92c1976b8645db9fe
+ Change-Id: I07f59baa9e4aba7c5ae028f0c144ea9ad153d49a
-commit dcee120bac04911bf01d8365bddca87c74ce2af9
+commit af3154422b63b7792ecd23b00ca1a0c003764dae
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sat Dec 7 21:48:56 2013 -0800
+Date: Fri May 9 05:45:03 2014 -0700
- Consolidate SolverTerminationType enum.
+ Add Alex Stewart as a maintainer.
- 1. Rename SolverTerminationType to TerminationType.
- 2. Consolidate the enum as
- a. CONVERGENCE - subsumes FUNCTION_TOLERANCE, PARAMETER_TOLERANCE and GRADIENT_TOLERANCE
- b. NO_CONVERGENCE
- c. FAILURE - captures all kinds of failures including DID_NOT_RUN.
- d. USER_SUCCESS
- e. USER_FAILURE
- 3. Solver::Summary::error is renamed to be Solver::Summary::message, to both
- reduce confusion as well as capture its true meaning.
+ Update contributing.rst to mention Alex
+ as one of the people who can be added
+ as a reviewer.
- Change-Id: I27a382e66e67f5a4750d0ee914d941f6b53c326d
+ Change-Id: I30ff3e635e8c419e11e8f20394aaea5f284a10d5
-commit d1cf320bb4f032cb14b20114a29ce2d867307492
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Thu Nov 28 23:11:11 2013 +0600
+commit ea765850685f1ff0431da5212656378fc20d3673
+Author: Alex Stewart <alexs.mac@gmail.com>
+Date: Wed May 7 20:46:17 2014 +0100
- Made collections port compatible with MSVC2008
+ Adding autogenerated Ceres config.h to #define Ceres compile options.
- The issue was caused by the fact that in this version
- of MSVC unordered_map class is defined in <unordered_map>
- header file, but this file declares the class int std::tr1
- namespace.
+ - Previously we passed all compile options to Ceres via add_definitions
+ in CMake. This was fine for private definitions (used only by Ceres)
+ but required additional work for public definitions to ensure they
+ were correctly propagated to clients via CMake using
+ target_compile_definitions() (>= 2.8.11) or add_definitions().
+ - A drawback to these approaches is that they did not work for chained
+ dependencies on Ceres, as in if in the users project B <- A <- Ceres,
+ then although the required Ceres public compile definitions would
+ be used when compiling A, they would not be propagated to B.
- This confused existing assumption that if there's an
- existing <unordered_map> file then class is declared
- in std namespace.
+ - This patch replaces the addition of compile definitions via
+ add_definitions() with an autogenerated config.h header which
+ is installed with Ceres and defines all of the enabled Ceres compile
+ options.
+ - This removes the need for the user to propagate any compile
+ definitions in their projects, and additionally allows post-install
+ inspect of the options with which Ceres was compiled.
- Added an extra check to CMake which detects whether
- it's std or std::tr1 which actually contains class
- of unordered_map.
-
- Change-Id: Ic5cf41913895a6ce8e791cc7602d7cf5492c34de
+ Change-Id: Idbdb6abdad0eb31e7540370e301afe87a07f2260
-commit 324eccb5f6ce2a1a0061ec9f3c40778a029a2d97
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue Dec 3 09:28:14 2013 -0800
+commit cbf955474acf8f275b272da6ff5acd3a629cc806
+Author: Björn Piltz <bjornpiltz@gmail.com>
+Date: Wed May 7 17:10:15 2014 +0200
- Restore the state of the Problem after a call to Evaluate.
-
- Calling Problem::Evaluate mutates the state of the parameter blocks.
- In particular, depending on the set and order of parameter blocks
- passed to the evaluate call, it will change the internal indexing
- used by the Program object used by ProblemImpl. This needs to be
- undone before Evaluate returns, otherwise the Problem object
- is in an invalid state.
+ Fixes swapped verboselevel and condition.
- To help with testing and debugging in the future, a new method
- Program::IsValid has been added which checks whether the problem
- has its parameter and residual blocks in the right state.
+ Change-Id: I296d86e6bbf415be4bfd19d6a0fe0963e3d36d74
+
+commit 3209b045744ea31f38d74bd9e9c8f88e605e7f76
+Author: Björn Piltz <bjornpiltz@gmail.com>
+Date: Wed May 7 17:02:27 2014 +0200
+
+ Fixed warning : 'va_copy' : macro redefinition
+ MSVC 2013 has got va_copy
+ Compare
+ http://msdn.microsoft.com/en-us/library/kb57fad8(v=vs.110).aspx
+ and
+ http://msdn.microsoft.com/en-us/library/kb57fad8.aspx.
- Thanks to Stefan Leutenegger for reporting this.
+ Change-Id: If0937c76e8d250cde4b343844f3d35c980bf0921
+
+commit 1df2f0f5d704f0cc458cf707e2602d495979e3c6
+Author: Björn Piltz <bjornpiltz@gmail.com>
+Date: Wed May 7 11:10:30 2014 +0200
+
+ Removed MSVC warnings
+ These are warnings which show up when using Ceres.
- Change-Id: I209b486a31433f0cbb58b570047649eca6d42b56
+ Change-Id: Id1f382f46b8a60743f0b12535b5b3cdf46f988e0
-commit 3b1ad31a1fe89fe0bd78e1fffdf22d47d43faaf5
+commit eca7e1c635581834c858794e09c1e876323b7775
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Mon Dec 2 15:43:20 2013 -0800
+Date: Tue May 6 10:16:19 2014 -0700
- Fix build breakage on old versions of SuiteSparse.
+ Remove BlockRandomAccessCRSMatrix.
+
+ It is not used anywhere.
- Change-Id: I2a061615fc374abef2ed323c298359002a6fc5f1
+ Change-Id: I2a8ebbdacf788582f21266825ead3f76646da29e
-commit 5fd480692b0a0c87e2af2f5a8754042a14f5f089
+commit 7088a08f5d9e04e75a5a4c3823ef7927e13ff0e4
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Mon Dec 2 12:16:53 2013 -0800
+Date: Mon May 5 09:02:05 2014 -0700
- Add more documentation to the linear solver enums.
+ Fix some 80col violations and reflow the comments in cmake.in file.
- Change-Id: Id57f76f73fa38043c0b6729972b1de8578ad7ede
+ Change-Id: I4c65c89b794845aeef69159a03350c727e2ee812
-commit d73acd035359886dfa1c5762b01c6f6449edcab8
+commit 95cce0834d5a2d72568e6d2be968a51c244c2787
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Mon Dec 2 12:02:03 2013 -0800
+Date: Mon May 5 08:54:50 2014 -0700
- Lint cleanup from William Rucklidge.
+ Remove some errant tabs.
- Change-Id: I8abcfd369f41b895ce746a21a35f250fe05c39d1
+ Change-Id: Ie1f7051e99bcb15ad068711b68a9d8f317b12ed7
-commit 3faac6a28cec4c99c41421d3f585f3786be443b3
+commit a536ae76dfa2dbe2bc487900b98cf6c15276c649
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu Nov 28 07:13:26 2013 -0800
+Date: Sun May 4 21:18:42 2014 -0700
- More lint cleanups and breakage fixes.
+ Lazily initialize the bounds arrays in ParameterBlock.
+
+ Problems that do not use bounds do not have to pay the
+ price of storing bounds constraints.
- The previous CL was a premature submit due to lack of coffee.
+ Also replace the raw pointer access to the upper and
+ lower bounds arrays with accessors which hides the
+ lazy initialization from the user.
- Change-Id: Id425d0ef332f569a954f0413e6b1ae6087f40f30
+ Change-Id: I0325a35de9c29f853559f891e32e7c777686e537
-commit ed92366592a951041bd0367c24006101ef7b6286
+commit 633b50b7af9841607c07133f585e131fba7de177
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu Nov 28 06:50:43 2013 -0800
+Date: Fri May 2 22:46:20 2014 -0700
- Lint cleanup from William Rucklidge.
+ Add the (2,4,8) template specialization.
- Change-Id: I745810f5496a1b93263b20ff140f8883da61995e
+ Change-Id: I058bcebdd1725031d573404133b184d6f27dc005
-commit 34b6359f39884683f2bbf06c93040afd42ae135d
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date: Thu Nov 28 18:51:34 2013 +0600
+commit 5ffe06019a6c741ee7edc940ffeeceaaeabfa05d
+Author: Alex Stewart <alexs.mac@gmail.com>
+Date: Thu May 1 12:06:46 2014 +0100
- Fix compilation error after recent enum rename in 33e01b9
+ Export Ceres compile definitions to targets compiled against Ceres.
- Change-Id: I920aa4754df6b013e86f0e77c61338d7a80e7f45
-
-commit 33e01b9c5e1416fe29c55ac0332cdca21c053c83
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed Nov 27 10:24:03 2013 -0800
-
- Rename LinearSolverTerminationType enums.
+ - Previously all Ceres compile definitions were private to Ceres, that
+ is they were not exported to users via the CMake export mechanism.
+ - Now that we use compile definitions in public (installed) Ceres
+ headers, we need to export the Ceres compile definitions.
+ - If we did not do this, then the client's code 'see's' a different
+ version of the Ceres headers to those which were in fact compiled,
+ or in the case of shared_ptr, may not find the required header.
- This increases clarity, drops redundant enums and makes things
- cleaner all around.
+ - This patch makes use of the new, in CMake 2.8.11, function:
+ target_compile_definitions() to export all of the Ceres compile
+ definitions using CMake's export functionality.
+ - For CMake versions < 2.8.11, we have to use the blunter instrument of
+ calling add_definitions() in CeresConfig.cmake (invoked by a call to
+ find_package(Ceres)). This is messy because it ends up adding the
+ Ceres compile definitions to any target declared in the user's code
+ after the call to find_package(Ceres). Although this should do no
+ harm as all of our defines are prefaced with CERES_, so any
+ unintentional name clashes are unlikely.
- Change-Id: I761f195ddf17ea6bd8e4e55bf5a72863660c4c3b
+ Change-Id: I5dea80949190eaf4fb08ea4ac568ce28c32dd4e0
-commit 068437eb89d495d905465544ccd442efef457b04
+commit 0e811b0881f1f21df0ae04fd745ae4ba5189cac1
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed Nov 27 07:05:57 2013 -0800
+Date: Thu May 1 07:54:12 2014 -0700
- Pipe minimizer termination messages to Solver::Summary.
+ Fix a bug in Minimizer::RunCallbacks.
- All minimizer termination messages are now available as
- Solver::Summary::error.
+ Solver::Summary::message was not being updated when the solver
+ terminated because of a user's iteration callback indicating
+ success or failure.
- This is part of the ongoing refactoring or
+ Thanks to Sergey Sharybin for reporting this.
- Change-Id: I4514c3c042645bbd1471bcde9bd3dbf81d9ee8b0
+ Change-Id: I27e6e5eed086920ddf765461b0159417ac79d7b3
-commit 89a592f410fb6f80c03dea84b6b9f1a10bea36c1
+commit 31b503792611d2119bb1acb3528fc8d58c5bd029
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue Nov 26 11:35:49 2013 -0800
+Date: Wed Apr 30 15:02:38 2014 -0700
- LinearSolver::Summary::status -> LinearSolver::Summary::message.
-
- And a bunch of minor lint cleanups as they showed up.
+ Lint cleanup from William Rucklidge.
- Change-Id: I430a6b05710923c72daf6a5df4dfcd16fbf44b3a
+ Change-Id: If545f114c1a2b07edd660a3c71ecfc16ffa25e43
-commit b16e118b96c55451c0d8556f3c5b52ad36b69cac
+commit 15c1210a8bdf3e936b4ef600d75f0fbb70878fb5
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Mon Nov 25 05:47:43 2013 -0800
+Date: Tue Apr 29 08:12:19 2014 -0700
- Better error checking and reporting for linear solvers.
-
- A lot of error checking cruft has accumulated over the years
- in the various linear solvers. This change makes the error reporting
- more robust and consistent across the various solvers.
-
- Preconditioners are not covered by this change and will be the
- subject of a future change.
+ Lint cleanup from Jim Roseborough.
- Change-Id: Ibeb2572a1e67758953dde8d12e3abc6d1df9052d
+ Change-Id: I53f4e0d020602443b397387b8c5908f25649403d
-commit 5794d41be2d8d6a67dcdfe607e66050f0ac04c55
+commit b1668067f1c97520d5d28eecf2c11d2afc1b01b3
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Mon Nov 25 13:37:02 2013 -0800
+Date: Tue Apr 29 08:12:19 2014 -0700
- Remove overzealous checks in Summary::FullReport.
+ Variety of changes to documentation and example code.
- Thanks to sebi.koch@gmail.com for reporting this.
+ 1. Update version history.
+ 2. Minor changes to the tutorial to reflect the bounds constrained
+ problem.
+ 3. Added static factory methods to the SnavelyReprojectionError.
+ 4. Removed relative gradient tolerance from types.h as it is
+ not true anymore.
- Change-Id: I1ba9b375e5cf66639e292ba37b34a90446f13162
+ Change-Id: I8de386e5278a008c84ef2d3290d2c4351417a9f1
-commit 40ef90304ac200bb948549e8e3748e487d27dc53
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Mon Nov 25 16:36:40 2013 +0000
+commit 658407dacc351a999206980fbb3265099e50e7a3
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Mon Apr 28 13:25:17 2014 -0700
- Adding VLOG output to line search.
+ Add missing template specializations to the NDK build.
- - Previously line search was sparse in terms of debug orientated VLOG
- output which made debugging failure cases difficult.
+ Change-Id: I42bb6c3bd47648050298472af80333aa900e79bf
+
+commit 5d7eed87b47871bc882af765188fa4fbca976855
+Author: Björn Piltz <bjornpiltz@gmail.com>
+Date: Wed Apr 23 22:13:37 2014 +0200
+
+ Suppport for MSVC DLLs.
- Change-Id: Idfabf74d2b3f7b8256f79dff8c6b7fcdc2fcf4d3
+ Change-Id: Ibbcc4ba4e59f5bbf1cb91fe81c7d3b9042d03493
-commit 1284a5141426597f3ca1e29ae8548c9b4c43c9c1
+commit c830820a5c2be0d0cecb0822f2cff8b4ffe88f36
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sun Nov 24 15:09:43 2013 -0800
+Date: Mon Apr 28 10:28:24 2014 -0700
- Use explicit formula to solve quadratic polynomials.
-
- polynomial.cc implements a companion matrix base method for solving
- polynomials. This is both expensive and numerically sensitive.
+ Add missing files to Android.mk
- This change adds a quadratic equation solver. Instead of using the
- usual quadratic formula, it uses the formula suggested by BKP Horn
- for improved numerical stability.
-
- Change-Id: I476933ce010d81db992f1c580d2fb23a4457eb3e
+ Change-Id: Ibdf577c592bcde0fe5c2ce343ed8e9028b82af8f
-commit a9334d67d7973c0f56e65f12ae897dd53504ef0d
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed Nov 20 10:12:23 2013 -0800
+commit ceb7a3beaad140762b499f9a306fd7230715941a
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Mon Apr 28 13:50:09 2014 +0600
- Fix constant parameter handling in inner iterations.
+ Fix compilation error when using G++ compiler
- There was a bug in the way RemoveFixedBlocksFromProgram was working.
- It only removed the constant parameter blocks from the
- linear_solver_ordering, it was not even aware of the
- inner_iteration_ordering.
+ This compiler defines shared_ptr in std::tr1 namespace, but
+ for this <tr1/memory> is to be included. Further, this compiler
+ also does have <memory> header which confused previous shared
+ pointer check.
- This change fixes this bug. The code for RemoveFixedBlocksFromProgram
- is also cleaned up and made more readable and the test have been updated.
+ Simplified logic around defines now, so currently we've got:
+ - CERES_TR1_MEMORY_HEADER defined if <tr1/memory> is to be
+ used for shared_ptr, otherwise <memory> is to be used.
+ - CERES_TR1_SHARED_PTR defined if shared_ptr is defined in
+ std::tr1 namespace, otherwise it's defined in std namespace.
- Thanks to Mikael Persson for reporting this.
+ All the shared_ptr checks are now moved to own file FindSharedPtr
+ which simplifies main CMakeLists.
- Change-Id: I454fa89f9b6f4f6320b02d5235e6f322cc15ff51
+ Change-Id: I558a74793baaa0bd088801910a356be4ef17c31b
-commit 331ff090dcae7096cea50144047b71cab2d3e819
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Mon Nov 25 13:44:53 2013 +0000
+commit 02db9414fb6739857a37e268500083a0546cd0a3
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Mon Apr 28 08:32:51 2014 -0700
- Downgrading log status of BFGS secant condition messages.
+ Fix the documentation for RandNormal.
- - These messages were originally VLOG(2) and were mistakenly upgraded to
- WARNINGs when the tolerances were reduced.
+ As pointed out by Jim Roseborough, this is the Marsaglia Polar
+ method and not the Box-Muller method.
- Change-Id: I89dee666a09bc82cfa89b793dc0907268662f95e
+ Change-Id: Id5332bcd4b4c23a3885cc296729b44eaa5edd0a8
-commit 9697a08a2bf29531671526b49df73bfbc0d7d237
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Sat Nov 23 10:03:37 2013 +0000
+commit 32530788d08c53f8d2c8a5f9bd61aa60a23d6e03
+Author: Richard Stebbing <richie.stebbing@gmail.com>
+Date: Sat Apr 26 07:42:23 2014 +0100
- Defining CERES_FOUND in addition to Ceres_FOUND in CeresConfig.
+ Add dynamic_sparsity option.
- - Previously we relied on FindPackage() to define Ceres_FOUND when
- find_package(Ceres) was called.
- - This is fine, but users might legitimately expect the variable to be
- CERES_FOUND given the form of CERES_INCLUDE_DIRS/LIBRARIES.
- - As there is an inconsistency in the CMake recommended names when
- FindPackage() is called in Module vs Config form, we now explicltly
- define both.
+ The standard sparse normal Cholesky solver assumes a fixed
+ sparsity pattern which is useful for a large number of problems
+ presented to Ceres. However, some problems are symbolically dense
+ but numerically sparse i.e. each residual is a function of a
+ large number of parameters but at any given state the residual
+ only depends on a sparse subset of them. For these class of
+ problems it is faster to re-analyse the sparsity pattern of the
+ jacobian at each iteration of the non-linear optimisation instead
+ of including all of the zero entries in the step computation.
- Change-Id: I54bce9aa112b684d26b60a9ae4d11eb7925a6ee5
+ The proposed solution adds the dynamic_sparsity option which can
+ be used with SPARSE_NORMAL_CHOLESKY. A
+ DynamicCompressedRowSparseMatrix type (which extends
+ CompressedRowSparseMatrix) has been introduced which allows
+ dynamic addition and removal of elements. A Finalize method is
+ provided which then consolidates the matrix so that it can be
+ used in place of a regular CompressedRowSparseMatrix. An
+ associated jacobian writer has also been provided.
+
+ Changes that were required to make this extension were adding the
+ SetMaxNumNonZeros method to CompressedRowSparseMatrix and adding
+ a JacobianFinalizer template parameter to the ProgramEvaluator.
+
+ Change-Id: Ia5a8a9523fdae8d5b027bc35e70b4611ec2a8d01
-commit 66e15b41d80b155f333f099a0278d50312cdaa15
+commit 2569076ff0bf8ffb3938da8b5df7edc4883aa053
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Fri Nov 22 07:59:23 2013 -0800
+Date: Fri Apr 25 23:54:48 2014 -0700
- Lint cleanup from Jim Roseborough.
+ More NDK fixes.
+
+ Fix variable names in port.h and fix fpclassify when
+ using gnustl. This was tested by switching to gnustl
+ in the JNI build.
- Change-Id: I6ddbf5c3d66595d27f7967a309768e5f5dd7e1fd
+ Thanks to Carlos Hernandez for suggesting the gnustl fixes.
+
+ Change-Id: I690b73caf495ccc79061f45288e416da1604cc72
-commit 79bde35f29291cf464b59f3dc2dd9f1fa88776a9
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu Nov 21 21:33:51 2013 -0800
-
- SuiteSparse errors do not cause a fatal crash.
-
- 1. Move LinearSolverTerminationType to ceres::internal.
- 2. Add FATAL_ERROR as a new enum to LinearSolverTerminationType.
- 3. Pipe SuiteSparse errors via a LinearSolverTerminationType so
- to distinguish between fatal and non-fatal errors.
- 4. Update levenberg marquardt and dogleg strategies to deal
- with FATAL_ERROR.
- 5. Update trust_region_minimizer to terminate when FATAL_ERROR
- is encountered.
- 6. Remove SuiteSparse::SolveCholesky as it screws up the error
- handling.
- 7. Fix all clients calling SuiteSparse to handle the result of
- SuiteSparse::Cholesky correctly.
- 8. Remove fatal failures in SuiteSparse when symbolic factorization
- fails.
- 9. Fix all clients of SuiteSparse to deal with null symbolic factors.
-
- This is a temporary fix to deal with some production problems. A more
- extensive cleanup and testing regime will be put in place in a
- subsequent CL.
-
- Change-Id: I1f60d539799dd95db7ecc340911e261fa4824f92
-
-commit a674e0f8534ea6948f70a72fe9718e07b3d039ff
+commit e55596f8860a09b12b5e1f949237f15357c1ac59
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu Nov 21 22:12:15 2013 -0800
+Date: Fri Apr 25 16:17:19 2014 -0700
- Fix corrector_test.cc.
+ Change the defaults for shared_ptr.
- Fix two death tests dealing with the sign of the gradient.
+ By default shared_ptr is now assumed to be
+ in the standard <memory> header and in the
+ std namespace.
- Change-Id: Ic91d54a64cc509307c94fce6d1fca083078936e2
-
-commit a8006af3110e98d64fb369e958fc00ec88d771a3
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Wed Nov 20 19:56:06 2013 +0000
-
- Adding threads libraries to exported dependencies if using OpenMP.
+ Previously the way the ifdefs were structured if the appropriate
+ variable was not defined, it would default to <t1/memory>.
- - Previously we were only adding the flags to the link flags for the
- Ceres project, which resulted in them not being exported. Thus
- projects importing Ceres (if using OpenMP) would have to manually
- specify them in addition to CERES_LIBRARIES.
+ The new defaults are more future proof.
- Change-Id: If0354cc07e84dbebfc870a8862e1a8ca64659791
+ Change-Id: If457806191196be2b6425b8289ea7a3488a27445
-commit 6c0d96424e2c27326757936a3738f9efc37c6c24
+commit bb05be341b8436f611e4b69954a529edcca5b577
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed Nov 20 11:52:01 2013 -0800
+Date: Sun Apr 13 14:22:19 2014 -0700
- Minor documentation fix.
+ Solver::Options uses shared_ptr to handle ownership.
- Thanks to Satya Mallick.
+ Solver::Options::linear_solver_ordering and
+ Solver::Options::inner_iteration_ordering
+ were bare pointers even though Solver::Options took ownership of these
+ objects.
- Change-Id: I556f1c141bf16739d54450351b0f29fd4ea40014
-
-commit 7747bb0e6b0e54366933ed75c1bcafe6a1109c3d
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed Nov 20 11:29:22 2013 -0800
-
- Minor corrections to the documentation.
+ This lead to buggy user code and the inability to copy Solver::Options
+ objects around.
+
+ With this change, these naked pointers have been replaced by a
+ shared_ptr object which will managed the lifetime of these objects. This
+ also leads to simplification of the lifetime handling of these objects
+ inside the solver.
- Thanks to Satya Mallick for reporting these.
+ The Android.mk and Application.mk files have also been updated
+ to use a newer NDK revision which ships with LLVM's libc++.
- Change-Id: Ia52e08a7e21d5247dc475cfbf10bf57265aa118f
+ Change-Id: I25161fb3ddf737be0b3e5dfd8e7a0039b22548cd
-commit 3fca2c4b2fae9abcaa9611f2bd3885ce6b11963b
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Mon Nov 18 10:26:49 2013 +0000
+commit 8e0991381ea3a2baddea017cd07b333f0c5de595
+Author: Joydeep Biswas <joydeep.biswas@gmail.com>
+Date: Tue Apr 22 10:40:47 2014 -0400
- Decreasing update threshold for BFGS as per L-BFGS.
+ Added a simplified robotics example for DynamicAutoDiffCostFunction.
- - Improves performance of BFGS on NIST, as per L-BFGS.
- - Adding explanation of origin and purpose of Secant condition
- tolerance check for Hessian update in (L)BFGS.
+ Change-Id: I9520e0a9a8d9743285c5114523fbafa6ffa5b0bd
+
+commit cc9d3bba1008066e51502cabd956985c6bdedfe8
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Fri Apr 18 22:58:09 2014 -0700
+
+ Remove a comment from conf.py
- Change-Id: If57b9957d31d8629c772c19a069e1e56e727b350
+ Change-Id: I675f7e8fc5dd2143eab74901bc7241e02e37285f
-commit 54fcbf893852272ba2158d6a56572a2eb3ccc41f
+commit c4cd29dd7c80ade5b3ac7a1f6ee7df22c8869ab5
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue Nov 19 10:12:05 2013 -0800
+Date: Wed Apr 16 23:40:12 2014 -0700
- Relax the requirements on loss functiond derivatives.
+ Merge landing page with introduction.
- We now require that the first derivative of the loss function
- be positive only if the second derivative is non-zero. This is
- because when the second derivative is non-positive, we do not use
- the second order correction suggested by BANS and instead use
- a simpler first order strategy which does not use a division by
- the gradient of the loss function.
+ The existing introduction was a bit redundant and also
+ was not really an introduction. Also updated the build
+ instructions to reflect the new reality on Mac OSX.
- Change-Id: I3d65713f152611998e196ff389a7081acfdfd8c1
+ Also updated the beginning of the tutorial to be a bit
+ gentler and updated the history to be more consistent
+
+ Change-Id: Ife38c1949252cf9f4c6301856957f2d38365f313
-commit db98425b94c9eff9b125bf4a854545162e8c1aec
+commit 46ccfb376ac52ac159f9187e0f7384ef68c1cbdd
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Fri Nov 15 14:14:09 2013 -0800
+Date: Sat Apr 12 21:56:51 2014 -0700
- Small bugfix to logging.h from Scott Ettinger.
+ Cleanup block_structure.h/cc
+
+ 1. Remove obsolete Proto conversion functions.
+ 2. Fix a strict weak ordering bug.
- Change-Id: Ie6d51e7883adf36c6fc7a78ff95afab6a78e488b
+ Change-Id: I1ce6d4b06e29cf475df1d5bd37c79f66f20f8d93
-commit 4d0e626b55f36ab8f44a4acc8157b85cfecd4673
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Fri Nov 15 13:53:44 2013 +0000
+commit 7d489fdb073937ac05c0693c1902fbcb9eeb7dfc
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Mon Apr 7 11:14:51 2014 -0700
- Fixing gflags HINTS variable names (adding missing “_DIR”).
+ Refactor the landing page to be a bit more compact.
- - The HINTS variables for gflags were incorrectly used as
- GFLAGS_[INCLUDE/LIBRARY]_HINTS when they should have been
- GFLAGS_[INCLUDE/LIBRARY]_DIR_HINTS as per the docs.
- - Also removing a completed TODO in the main CMakeLists.
- - Updating method of extracting current directory in CeresConfig.cmake
- to avoid use of CMAKE_CURRENT_LIST_DIR, which was not present in
- CMake =< v2.8.3.
+ Also minor changes to the introduction.
- Change-Id: I42ae696e3b785febe48688d912f0f343e8947cb0
+ Change-Id: Iaa71f576b95c869f075d6837dbb60ba4bb608ee7
-commit bf4c1b76e4926c738fc805e9ff4be0ed584d9eee
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Thu Nov 14 21:27:20 2013 +0000
+commit 406ac7816730c15425db20d994ac0d60d932ab6c
+Author: Keir Mierle <mierle@gmail.com>
+Date: Mon Apr 7 08:36:07 2014 +0000
- Decreasing threshold at which L-BFGS Hessian is updated.
+ Rework Ceres documentation as new website
- - Decreasing threshold at which L-BFGS Hessian is updated from 1e-10
- to 1e-14 results in a very significant improvement in NIST scores
- (43 -> 53 for CUBIC).
- - Adding comment in FindPolynomialRoots() explaining why behaviour
- is correct.
+ This reworks the Ceres Sphinx documentation such that it can
+ function as the main Ceres website, now hosted at
+ ceres-solver.org. This also changes to the theme sphinx_rtd_theme
+ used by Read The Docs; this theme has strong mobile support and is
+ well enough designed.
- Change-Id: If668e087e7a86d29659aa74e8528b192b604c841
+ Change-Id: I63232d985859a6dac94ff58f08bf81eb2b9e7f99
-commit 7124c3474cd201134c3a3350b46aca468f1edafa
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Thu Nov 7 16:10:02 2013 +0000
-
- Fixes for some line search bugs & corner cases.
-
- - Increase precision of numeric values output in error messages to
- allow for easier debugging.
- - Ensure termination after Wolfe search bracketing phase if bracket
- width has been shrunk to below tolerance.
- - Cleaned up return value for BracketingPhase(), now false iff
- optimisation should stop, true otherwise.
- - Fix bug whereby we would mark a step size as satisfying the Wolfe
- conditions when it did not due to numerical issues in the cost
- function.
- - Adding explanation of a subtlety in which a zoom could still be
- acceptably invoked with bracket_low.f > bracket_high.f.
- - Replacing hard check of a pre-condition of ZoomPhase() with a
- conditional return if not satisfied to address issue whereby a
- bracket could be incorrectly identified due to inconsistent values
- & gradients returned from the cost function.
- - Adding missing check for step size validity in line search minimizer.
- - Adding ToDebugString() for FunctionSample.
-
- Change-Id: Iad98e635749877f80c079ebad126bf022d82232d
-
-commit 54fc9423673886ac9ed3fe329a80f07544aeea70
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Thu Nov 14 11:42:00 2013 +0000
+commit 3e60a998ac970da659d590bac2ff892ee619aa1b
+Author: Richard Bowen <rsbowen@google.com>
+Date: Tue Apr 1 16:22:49 2014 -0700
- Removing incorrect specialisation of install dirs on Windows.
-
- - Previously on Windows the leaf include & lib install directories
- passed to CeresConfig.cmake.in when configured where capitalised on
- Windows.
- - This capitalisation was incorrect, as the actual paths used are
- specified in the install() statements and are always in the standard
- lower-case form.
- - This likely did not cause any issues previously as although NTFS is
- case sensitive, the Win32 API is not, and most applications access
- files through the Win32 API, and are thus not case-sensitive.
+ Added support and tests: row and column blocks for sparse matrix
+ transpose.
- Change-Id: I335b6e2d10a1c64f320c2a1a68eeda1b22344e73
+ Change-Id: Ife641b08a9e86826478521a405f21ba60667f0e8
-commit fcbbb11e37386097b1427dc3aa89f264d6951ded
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Wed Nov 13 22:22:30 2013 +0000
+commit 5ecb1c3f1dfde6e8ed4b493eafef7b43dad19e72
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Tue Apr 1 09:20:35 2014 -0700
- Ensure build paths for dependencies are searched in FindPackage(Ceres)
+ Add Problem::IsParameterBlockPresent.
- - Append to hint locations used by FindPackage scripts for public
- dependencies (glog & Eigen) the locations of the dependencies when
- Ceres was built.
- - This means that the user should not have to supply them again when
- using find_package(Ceres) even if they are installed in a
- non-standard location.
+ This allows the user to query the Problem to see if a
+ parameter block is already present or not.
- Change-Id: I9550de91025ba47f01f1ea3c3fefe80fe38d14ff
+ Change-Id: If786f6c008cc644f3398597901d718d12a6d865d
-commit 7899e45d378f589a67ad8e042bf6a7cb7e15df00
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Wed Nov 13 21:08:27 2013 +0000
+commit 75e2232b29ff2ea42c8406c9d45b138a7e7a0048
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Fri Mar 28 11:21:02 2014 -0700
- Fixing a documentation typo, DIRS -> DIR in HINTS variables.
+ Fix spacing in building.rst
- Change-Id: I42b75a5e0b8a451c3a43ab29d0c14856e4b86ab8
+ Change-Id: I4c68d732c80d7ff2bdbc812bf0b7c7fb98c43957
-commit 1a041c35b780e60c3b497eb096b72ad20f47960e
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue Nov 12 14:17:52 2013 -0800
+commit b555b489b8447434294a8a6676272289140d6a1d
+Author: Richard Bowen <rsbowen@google.com>
+Date: Thu Mar 27 15:51:28 2014 -0700
- Update to 1.8.0.
+ Changes documentation to reflect changes in output format.
- Change-Id: Id42e594f03e3575d06e18c1ef66df64f43d86839
+ Change-Id: Ic0ba234283e791edcad29aec067905dcb2130813
-commit 36b26139296060511718b3ef0da03a52706db481
-Author: Alex Stewart <alexs.mac@gmail.com>
-Date: Thu Nov 7 16:57:36 2013 +0000
+commit 1cfb600bfc3be8342f85f155b2b219a595ee58da
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Wed Mar 26 12:55:11 2014 -0700
- Fix ordering of ParseCommandLineFlags() & InitGoogleTest() for Windows.
+ Add the (2,4,9) template specialization for PartitionedMatrixView
+ and SchurEliminator.
- - On Windows gtest passes additional non-gflags command line flags
- for death-tests, to avoid gflags invoking an error for these flags
- InitGoogleTest() must be called before ParseCommandLineFlags() to
- handle and remove them before gflags parses the remaining flags.
+ Also update the comment inside generate_partitioned_matrix_view_specializations.py
- Change-Id: I0c705ecd3aa029b70a2589b592e6a2c192745c0e
+ Change-Id: I99a7ab4256091b1da48553da3076e5996a5757ed
-commit 8c155d51fab099ee7bf64f4bdbfeda82881925a5
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Fri Nov 8 08:04:44 2013 -0800
+commit 195e49351b386ffc23020d406883eaa6511e29b3
+Author: Alex Stewart <alexs.mac@gmail.com>
+Date: Wed Mar 26 11:36:11 2014 +0000
- Speed up the application of robust loss functions.
+ Check validity of residual block before removal in RemoveResidualBlock.
- Since we added special handling for the case for rho[2] < 0,
- the bulk of CorrectJacobian is pointless in the common case.
- So add a simple one dimensional loop which rescales the Jacobian.
- This speeds up this method immensely.
+ - Breaking change: Problem::Options::enable_fast_parameter_block_removal
+ is now Problem::Options::enable_fast_removal, as it now controls
+ the behaviour for both parameter and residual blocks.
- The robustification of a Jacobian gets speeded up by > 50%.
+ - Previously we did not check that the specified residual block to
+ remove in RemoveResidualBlock actually represented a valid residual
+ for the problem.
+ - This meant that Ceres would die unexpectedly if the user passed an
+ uninitialised residual_block, or more likely attempted to remove a
+ residual block that had already been removed automatically after
+ the user removed a parameter block upon on which it was dependent.
+ - RemoveResidualBlock now verifies the validity of the given
+ residual_block to remove. Either by checking against a hash set of
+ all residuals maintained in ProblemImpl iff enable_fast_removal
+ is enabled. Or by a full scan of the residual blocks if not.
- Change-Id: I97c4e897ccbb5521c053e1fb931c5d0d32f542c7
+ Change-Id: I9ab178e2f68a74135f0a8e20905b16405c77a62b
-commit 58792dc8ee0e4b56331f33f753f1b1932c5c2960
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed Nov 6 09:42:46 2013 -0800
+commit 74762b60332d4a1c08ec5aef75ec718da9d305a2
+Author: Alex Stewart <alexs.mac@gmail.com>
+Date: Thu Mar 20 14:50:25 2014 +0000
- Update to 1.8.0rc2.
+ Allow construction of an AutoDiffLocalParameterization with a functor.
- Change-Id: Ifbf5312377bf1791a29aefd3edc3a765999c5824
+ - Previously AutoDiffLocalParameterization would internally instantiate
+ a functor instance whenever one was required. This prohibits the
+ user passing arguments to the constructor of the functor.
+ - Now AutoDiffLocalParameterization can take over ownership of an
+ allocated functor which the user created. This mimics the behaviour
+ of AutoDiffCostFunction.
+
+ Change-Id: I264e1face44ca5d5e71cc20c77cc7654d3f74cc0
-commit af04d7f18740faf452e9171af530aa1bdead44bb
+commit 4f603fb0d82317a53fa9d96abe6a97b2e69bff36
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue Nov 5 13:47:30 2013 -0800
+Date: Wed Mar 19 17:16:43 2014 -0700
- Remove DCHECK_GE checks from fixed_array.h
-
- This triggers -Wtype-limits warnings on comparisons
- which are always true, since the test being done is
- n >= 0, where n is of type size_t, which is always
- true.
-
- This causes problems when compiling Ceres on linux
- with miniglog.
+ Grammer fixes from William Rucklidge.
- Change-Id: Ia1d1d1483e03469c71fde029b62ca6d84e9b27e0
+ Change-Id: Ia40df7a1d141eb2552694510453d1431bb0c8dce