blender/extern/libmv/third_party/ceres/ChangeLog

685 lines
25 KiB
Plaintext
Raw Normal View History

commit 33e01b9c5e1416fe29c55ac0332cdca21c053c83
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Nov 27 10:24:03 2013 -0800
Rename LinearSolverTerminationType enums.
This increases clarity, drops redundant enums and makes things
cleaner all around.
Change-Id: I761f195ddf17ea6bd8e4e55bf5a72863660c4c3b
commit 068437eb89d495d905465544ccd442efef457b04
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Nov 27 07:05:57 2013 -0800
Pipe minimizer termination messages to Solver::Summary.
All minimizer termination messages are now available as
Solver::Summary::error.
This is part of the ongoing refactoring or
Change-Id: I4514c3c042645bbd1471bcde9bd3dbf81d9ee8b0
commit 89a592f410fb6f80c03dea84b6b9f1a10bea36c1
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Nov 26 11:35:49 2013 -0800
LinearSolver::Summary::status -> LinearSolver::Summary::message.
And a bunch of minor lint cleanups as they showed up.
Change-Id: I430a6b05710923c72daf6a5df4dfcd16fbf44b3a
commit b16e118b96c55451c0d8556f3c5b52ad36b69cac
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Nov 25 05:47:43 2013 -0800
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.
Change-Id: Ibeb2572a1e67758953dde8d12e3abc6d1df9052d
commit 5794d41be2d8d6a67dcdfe607e66050f0ac04c55
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Nov 25 13:37:02 2013 -0800
Remove overzealous checks in Summary::FullReport.
Thanks to sebi.koch@gmail.com for reporting this.
Change-Id: I1ba9b375e5cf66639e292ba37b34a90446f13162
commit 40ef90304ac200bb948549e8e3748e487d27dc53
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Nov 25 16:36:40 2013 +0000
Adding VLOG output to line search.
- Previously line search was sparse in terms of debug orientated VLOG
output which made debugging failure cases difficult.
Change-Id: Idfabf74d2b3f7b8256f79dff8c6b7fcdc2fcf4d3
commit 1284a5141426597f3ca1e29ae8548c9b4c43c9c1
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Nov 24 15:09:43 2013 -0800
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.
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
commit a9334d67d7973c0f56e65f12ae897dd53504ef0d
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Nov 20 10:12:23 2013 -0800
Fix constant parameter handling in inner iterations.
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 change fixes this bug. The code for RemoveFixedBlocksFromProgram
is also cleaned up and made more readable and the test have been updated.
Thanks to Mikael Persson for reporting this.
Change-Id: I454fa89f9b6f4f6320b02d5235e6f322cc15ff51
commit 331ff090dcae7096cea50144047b71cab2d3e819
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Nov 25 13:44:53 2013 +0000
Downgrading log status of BFGS secant condition messages.
- These messages were originally VLOG(2) and were mistakenly upgraded to
WARNINGs when the tolerances were reduced.
Change-Id: I89dee666a09bc82cfa89b793dc0907268662f95e
commit 9697a08a2bf29531671526b49df73bfbc0d7d237
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sat Nov 23 10:03:37 2013 +0000
Defining CERES_FOUND in addition to Ceres_FOUND in CeresConfig.
- 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.
Change-Id: I54bce9aa112b684d26b60a9ae4d11eb7925a6ee5
commit 66e15b41d80b155f333f099a0278d50312cdaa15
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Nov 22 07:59:23 2013 -0800
Lint cleanup from Jim Roseborough.
Change-Id: I6ddbf5c3d66595d27f7967a309768e5f5dd7e1fd
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
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Nov 21 22:12:15 2013 -0800
Fix corrector_test.cc.
Fix two death tests dealing with the sign of the gradient.
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 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.
Change-Id: If0354cc07e84dbebfc870a8862e1a8ca64659791
commit 6c0d96424e2c27326757936a3738f9efc37c6c24
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Nov 20 11:52:01 2013 -0800
Minor documentation fix.
Thanks to Satya Mallick.
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.
Thanks to Satya Mallick for reporting these.
Change-Id: Ia52e08a7e21d5247dc475cfbf10bf57265aa118f
commit 3fca2c4b2fae9abcaa9611f2bd3885ce6b11963b
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Nov 18 10:26:49 2013 +0000
Decreasing update threshold for BFGS as per L-BFGS.
- 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: If57b9957d31d8629c772c19a069e1e56e727b350
commit 54fcbf893852272ba2158d6a56572a2eb3ccc41f
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Nov 19 10:12:05 2013 -0800
Relax the requirements on loss functiond derivatives.
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.
Change-Id: I3d65713f152611998e196ff389a7081acfdfd8c1
commit db98425b94c9eff9b125bf4a854545162e8c1aec
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Nov 15 14:14:09 2013 -0800
Small bugfix to logging.h from Scott Ettinger.
Change-Id: Ie6d51e7883adf36c6fc7a78ff95afab6a78e488b
commit 4d0e626b55f36ab8f44a4acc8157b85cfecd4673
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Fri Nov 15 13:53:44 2013 +0000
Fixing gflags HINTS variable names (adding missing “_DIR”).
- 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.
Change-Id: I42ae696e3b785febe48688d912f0f343e8947cb0
commit bf4c1b76e4926c738fc805e9ff4be0ed584d9eee
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Thu Nov 14 21:27:20 2013 +0000
Decreasing threshold at which L-BFGS Hessian is updated.
- 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.
Change-Id: If668e087e7a86d29659aa74e8528b192b604c841
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
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.
Change-Id: I335b6e2d10a1c64f320c2a1a68eeda1b22344e73
commit fcbbb11e37386097b1427dc3aa89f264d6951ded
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Wed Nov 13 22:22:30 2013 +0000
Ensure build paths for dependencies are searched in FindPackage(Ceres)
- 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.
Change-Id: I9550de91025ba47f01f1ea3c3fefe80fe38d14ff
commit 7899e45d378f589a67ad8e042bf6a7cb7e15df00
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Wed Nov 13 21:08:27 2013 +0000
Fixing a documentation typo, DIRS -> DIR in HINTS variables.
Change-Id: I42b75a5e0b8a451c3a43ab29d0c14856e4b86ab8
commit 1a041c35b780e60c3b497eb096b72ad20f47960e
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Nov 12 14:17:52 2013 -0800
Update to 1.8.0.
Change-Id: Id42e594f03e3575d06e18c1ef66df64f43d86839
commit 36b26139296060511718b3ef0da03a52706db481
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Thu Nov 7 16:57:36 2013 +0000
Fix ordering of ParseCommandLineFlags() & InitGoogleTest() for Windows.
- 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.
Change-Id: I0c705ecd3aa029b70a2589b592e6a2c192745c0e
commit 8c155d51fab099ee7bf64f4bdbfeda82881925a5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Nov 8 08:04:44 2013 -0800
Speed up the application of robust loss functions.
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.
The robustification of a Jacobian gets speeded up by > 50%.
Change-Id: I97c4e897ccbb5521c053e1fb931c5d0d32f542c7
commit 58792dc8ee0e4b56331f33f753f1b1932c5c2960
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Nov 6 09:42:46 2013 -0800
Update to 1.8.0rc2.
Change-Id: Ifbf5312377bf1791a29aefd3edc3a765999c5824
commit af04d7f18740faf452e9171af530aa1bdead44bb
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Nov 5 13:47:30 2013 -0800
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.
Change-Id: Ia1d1d1483e03469c71fde029b62ca6d84e9b27e0
commit b5be6b9c065a02158337ee7eacfdb8be811dec7f
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Tue Nov 5 13:10:27 2013 +0000
Cleaning up messages output when SuiteSparse is not found.
- Automatically generated failure message now provides more
information as to which sub-modules are missing.
Change-Id: I6eed94af49263540b8f87917b75c41b8f49658a0
commit 9ba0b352a282f08b1b6368a5690434407d7c81af
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Nov 5 13:04:56 2013 -0800
Lint and other cleanups from William Rucklidge
Change-Id: I7fb23c2db85f0f121204560b79f1966f3d584431
commit 69bd65ff4368ce2841519f00ff48c5284c1743a3
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Nov 4 23:01:14 2013 +0000
Downgrading warning messages when optional deps are not found.
- Now when find_package() is called for a dependency without the
REQUIRED or QUIET qualifiers, we emit no priority (above STATUS, but
below WARNING) messages and continue.
Change-Id: I8cdeda7a8f6c91d45fb7f24fb366244c6c9b66e1
commit b0a8731fcdde31e6c37a54e8c1e1c00f853c0d5c
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Nov 4 20:32:40 2013 +0000
Removing duplicate SuiteSparse found message.
- Also flipping ordering of variables in
find_package_handle_standard_args() so that the automatically
generated message prints the include directories, not TRUE.
Change-Id: I2bf62eacd5c96f27152e9542b9a74651243a584e
commit 6fed9fe0de9d1737095c24e19ad8df9735b7e572
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Nov 4 18:33:05 2013 +0000
Fix FindPackage scripts to emit warnings, not errors if not found.
- Previously we used message priority: SEND_ERROR when a package was
not found and find_package() was called without QUIET or REQUIRED,
which emits an error message, and prevents generation, but continues
configuration.
- The fact SEND_ERROR induces an error message was confusing for users
as it implies that something bad has happened and they cannot
continue, when in fact we were disabling the option in question
and were thus able to continue, all they had to do was re-configure.
- This commit also reorders the search lists for includes/libraries
so that we always search user installed locations (e.g. /usr/local)
before system installed locations. Thus we will now always prefer
a user install to a system install if both are available, which is
likely to be the users desired intention.
Change-Id: Ide84919f27d3373f31282f70c685720cd77a6723
commit cada337149cbc4b9e6f2bae14593b87ecf8f1a5c
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Nov 4 18:08:24 2013 +0000
Fixing CXSparse include directories statement.
- Reported as issue #135:
https://code.google.com/p/ceres-solver/issues/detail?id=135.
- CXSPARSE_INCLUDE was the legacy include directory variable, since
the buildsystem updates we now use the CMake standard:
CXSPARSE_INCLUDE_DIRS.
Change-Id: Iab0c2de14d524bb9e9da230bc574b5e6f09e1f31
commit c71085ed326239dc2d318d848ded9a99e4e3c107
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Oct 31 13:56:38 2013 -0700
Update to 1.8.0rc1.
Change-Id: Iaa10fd5a20be2ef84aca0119306c44669d87cc5d
commit 88a703f44ff0d6d5d4601584fa77f5ce853025f4
Author: Petter Strandmark <petter.strandmark@gmail.com>
Date: Thu Oct 31 21:13:48 2013 +0100
Fix compilation in Visual C++ 2013.
I had to fix the following things to make Ceres compile in 2013:
* Not link to 'm' (GNU math library).
* Excplicitly convert an std::ostream to bool.
* Include <algorithm> for std::max.
Change-Id: I3ff65413baf8711364360d46dd71fd553fa63e72
commit f06b9face5bfbbc2b338aa2460bee2298a3865c5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Oct 27 21:38:13 2013 -0700
Add support for multiple visibility clustering algorithms.
The original visibility based preconditioning paper and
implementation only used the canonical views algorithm.
This algorithm for large dense graphs can be particularly
expensive. As its worst case complexity is cubic in size
of the graph.
Further, for many uses the SCHUR_JACOBI preconditioner
was both effective enough while being cheap. It however
suffers from a fatal flaw. If the camera parameter blocks
are split between two or more parameter blocks, e.g,
extrinsics and intrinsics. The preconditioner because
it is block diagonal will not capture the interactions
between them.
Using CLUSTER_JACOBI or CLUSTER_TRIDIAGONAL will fix
this problem but as mentioned above this can be quite
expensive depending on the problem.
This change extends the visibility based preconditioner
to allow for multiple clustering algorithms. And adds
a simple thresholded single linkage clustering algorithm
which allows you to construct versions of CLUSTER_JACOBI
and CLUSTER_TRIDIAGONAL preconditioners that are cheap
to construct and are more effective than SCHUR_JACOBI.
Currently the constants controlling the threshold above
which edges are considered in the single linkage algorithm
are not exposed. This would be done in a future change.
Change-Id: I7ddc36790943f24b19c7f08b10694ae9a822f5c9
commit 5a161a2b9653489ee9040f054b24df971e6b9bbc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Oct 29 22:08:15 2013 -0700
Template specializations for PartitionedMatrixView.
This speeds up the matrix vector products in the
IterativeSchurSolver by upto 40%.
Change-Id: Ib5e8d77c7269cf5ffdd2d161893734bb6d38215d
commit e5ce1170bc9993085c81a788e16eb48f1b2fdb97
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Oct 29 07:40:51 2013 -0700
Minor bug fix to autodiff.h
Change-Id: Ib41050a2f2ba1898c71ff19d74f8eca2496212c0
commit 9e9a7d6ca0e75727293f94452d602f02b56d10ba
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Oct 29 06:54:44 2013 -0700
Documentation update.
Add documentation for the new methods added to Problem.
Fix a bunch of ReST bugs.
Change-Id: I8a79a84040cfa8a679cc5355baccbe6d69bc9e70
commit c6bafdd02c33ec0ccb705578d83e4f601ddeedea
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Oct 28 19:38:08 2013 -0700
Comments from Jim Roseborough.
1. Fix the tolerance on the rotation matrix conversion test.
2. Fix some out of date comments.
Change-Id: I65e80da1f96d7b4d9ac0630ad8cb708c41739840
commit fda69b52130955479591e8f03f97b1cfceca369f
Author: Keir Mierle <mierle@gmail.com>
Date: Thu Oct 10 00:25:24 2013 -0700
Export the structure of a problem to the public API
This adds three new public methods to ceres::Problem:
Problem::GetResidualBlocks()
Problem::GetParameterBlocksForResidualBlock()
Problem::GetResidualBlocksForParameterBlock()
These permit access to the underlying graph structure of the problem.
Change-Id: I55a4c7f0e5f325f140cb4830e7a7070554594650
commit 63bcdffa7d188b8d8c5309a62c255ba33f061764
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Oct 27 21:34:13 2013 -0700
Add the 2_d_d SchurEliminator specialization.
This occurs far too often in bundle adjustment problems to be ignored.
Change-Id: Ib137f1566acf5fffa63e50a55fe8e78ea9eb1c14
commit 602096c91363a0b9384f887a15c82e2dac1fb923
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Oct 27 05:09:38 2013 -0700
Move CERES_HASH_NAMESPACE macros to collections_port.h
Now that we have a clearer understanding of the naming rules
there is no need for these macro definitions to be done in
the cmake file.
This cleans up the compilation command line.
Change-Id: Idc8fc7a7c9376e021dc4790af66e599105351917
commit f6b67df54ad6daa7036f5b6619243f722d678892
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Oct 25 06:24:19 2013 -0700
Fix handling of unordered_map/unordered_set on OSX 10.9.0.
Depending on the compiler + standard library combination,
unordered_map/set may or may not be available. If available
they maybe in the std or the std::tr1 namespaces.
Apple switched to using libc++ with 10.9.0 which places
unordered_map in std, breaking our assumptions about the
platform.
This change refactors our logic for dealing with the namespace
switching, making it a three state thing rather than two. There
are three defines now, CERES_NO_UNORDERED_MAP, CERES_STD_UNORDERED_MAP
and CERES_TR1_UNORDERED_MAP. Earlier the first two were conflated
into one, leading to the breakage.
Change-Id: I904fe8c49529169bdefa9f2ee6d629e7eab0b855
commit 21d6a99fe68e99fa51db32d55f587b42ef9a476c
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Oct 25 10:20:24 2013 -0700
Fix AngleAxisToRotationMatrix near zero.
The Taylor series approximation had its sign flipped and the
tests did not catch it since we were switching exactly at zero,
which was not getting triggered.
This changes modifies the tolerance, adds a test that triggers
and fixes the bug.
Thanks to Michael Samples for reporting this.
Change-Id: I6f92f6348e5d4421ffe194fba92c04285449484c
commit 0e2743e24d013b25109396cfa0d8d0f1e8e84964
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Oct 23 14:51:07 2013 -0700
Add BlockRandomAccessDiagonalMatrix.
This class is used in the SchurJacobiPreconditioner for
storing the preconditioner matrix. Using it speeds up
the computation of the preconditioner by ~15% due to
the elimination of a hash table lookup.
Change-Id: Iba2b34aad0d9eb9bcb7f6e6fad16aa416aac0d2a
commit 6a2bcaa1d55d38bc10d043f1458657caac2be7a7
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Wed Oct 23 14:06:44 2013 +0100
Adding explicit link to libm for pure-C curve fitting example.
- Any pure-C program #including <math.h> will need to link against
libm, some compilers will let an indirect link slide (via Ceres in
this case) but some won't.
Change-Id: I6890702fa0d2c3fbb747f0f81fc3fa3631839de4