blender/extern/libmv/third_party/ceres/ChangeLog
Sergey Sharybin 4228463caa Update Ceres to 1.7.0 release
For Blender this release is interesting because of:

- Covariance estimation (not used in Blender yet, but now we
  might use it for keyframe selection instead of havingown
  implementation).

- Significant performance improvements to loss function and
  dense linear solvers and automatic differentiation.

  Unfortunately, didn't notice speedup of tracking itself,
  but camera reconstruction now happens around 2 times faster
  on my laptop,

- Better inner iteration step acceptance and stopping.
2013-09-05 10:48:44 +00:00

639 lines
23 KiB
Plaintext

commit 682cd3c27864ba6d67ca81890760a5f697f21d63
Author: Keir Mierle <mierle@gmail.com>
Date: Tue Sep 3 14:28:32 2013 -0700
Update version history with shared libs changes
Change-Id: Iafd55087bc5eef4c15c3b544222147aa99df7690
commit 340d7c1415f144ca335ec1e87832c3f41d5d515b
Author: Keir Mierle <mierle@gmail.com>
Date: Tue Sep 3 13:50:03 2013 -0700
Update version history with miniglog fix
Change-Id: Ic69f4994259e05fa88548b957146a1aac73b7af7
commit ac061c0f2334868e671f26d24e34a14c77fac716
Author: Keir Mierle <mierle@gmail.com>
Date: Tue Sep 3 13:03:28 2013 -0700
Cleanups in logging.h
Thanks to Scott Ettinger for the patch this is based off of,
which restores the NDK build.
Change-Id: I8036dc1388438a4940e6f4ae297162902afd8d3a
commit 0338f9a8e69582a550ef6d128e447779536d623c
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Sep 2 22:28:40 2013 -0700
ITERATIVE_SCHUR works with no f-blocks.
When the Schur complement is of size zero,
i.e. none of the parameter blocks interact
with each other, the ITERATIVE_SCHUR linear
solver crashes due to some checks that are
triggered in the SCHUR_JACOBI preconditioner.
This patch adds logic to detect this condition
and to deal with it and adds tests that verify
the fix.
Thanks to Soohyun Bae for reporting this bug.
Change-Id: If29ddf32463cbb1960414fff0e29bbf0d2ee7989
commit 263de47419167786c9ab6d93fa2f3e32e8e75fe1
Author: Taylor Braun-Jones <taylor@braun-jones.org>
Date: Thu Aug 29 10:33:29 2013 -0400
Incorporate RHEL build fixes from Brian Pitts
CMake build fixed so that versioned shared libraries are installed
(along with .so symlinks)
Change-Id: Ibbaea9d37d17754cb8c3cd36fc17d015ca7d2a57
commit 6b4131993ec0db6c850bb2ae07ba8793dbab3e39
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Aug 26 00:02:50 2013 -0700
Update spec file
Change-Id: Id6426d7cad41cde2cbab411964ac013d724a066c
commit c24a4ec6fb6202d1f6a576f211b99fbe9c9906ef
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Aug 23 06:49:22 2013 -0700
Cmake refactoring
1. Use CMake FindLAPACK and FindBLAS Modules.
2. Remove SEARCH_HEADERS and SEARCH_LIBS and replace them with
CMAKE variables. This leads to simplification of the FIND_LIBRARY
and FIND_PATH calls.
3. Make miniglog a fallback when glog is not present and the
user indicates MINIGLOG=OFF.
4. Add time.h to miniglog.
5. Remove shared library building.
Change-Id: I8a97156d3d7cf645fbbfe8e571761bc16c89f43f
commit 48e9cd31db0bf7223beb83cdc90e3cd2b5aad054
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Aug 21 10:55:16 2013 -0700
Add a test name
Change-Id: I06dfc9cad2c54ef6078342766577eab92645283f
commit 126dfbe27df9c5b9f41cf7cc92b75c1219518283
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Aug 20 22:34:34 2013 -0700
Fix how Ceres calls CAMD.
CAMD requires that the id of the largest numbered elimination
group be less than the number of columns in the matrix.
This patch ensures that this is the case. Without this,
in certain cases its possible for CAMD to silently fail
while doing out of bounds access and then causing Ceres to fail.
Also add some logging about the problem size before and after
the reduced program has been created.
Change-Id: I0ea3c6572a7c29cbbf09afec9ba5b4f4d4b21a9b
commit 69af5d8b4d7c48b2efa3c61e51c86cfa1b380b8a
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Aug 20 13:58:59 2013 -0700
Add comments to trust_region_minimizer.cc.
trust_region_minimizer.cc now contains a comment that explains
the reasoning behind he inner iteration step acceptance change.
Change-Id: I4eaa69d6bab92c543bba3f119c09f44625d393bd
commit e45db9d05aaa26b1ddffa44c9190a1018aa2655f
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Aug 19 23:13:29 2013 -0700
Improve inner iteration step acceptance.
Normally, in a trust region algorithm the quality of a trust region step
is measured by the ratio
nonlinear_cost_change
r = ---------------------
model_cost_change
All the change in the nonlinear objective is due to the trust region step
so this ratio is a good measure of the quality of the trust region radius.
However, when inner iterations are being used, nonlinear_cost_change
includes the contribution of the inner iterations and its not fair to
credit it all to the trust region algorithm. So we change the ratio to be
nonlinear_cost_change
r = ------------------------------------------------
(model_cost_change + inner_iteration_cost_change)
In most cases this is fine, but it can be the case that the
change in solution quality due to inner iterations is so large
and the trust region step is so bad, that this ratio can become
quite small.
This can cause the trust region loop to reject this step.
This change, fixes this problem by looking at the inner_iteration_cost_change
explicitly and accepting a step if the inner iterations led to a net
decrease in the objective function value.
Along the way it also fixes the way model_cost_change is computed.
Changing to a more numerically robust way of computing it.
The last and final change is to ensure that inner iterations and the
non-monotonic version of the trust region algorithm interact correctly.
This addresses part 2 of
https://code.google.com/p/ceres-solver/issues/detail?id=115
As an illustration of the change.
Before this change
[master] build: ./bin/bundle_adjuster --input ~/Downloads/problem-245-198739-pre.txt -num_iterations 10 -translation_sigma 0.01 -rotation_sigma 0.001 -point_sigma 0.1 -inner_iterations -num_threads 4
0: f: 7.731660e+15 d: 0.00e+00 g: 3.51e+12 h: 0.00e+00 rho: 0.00e+00 mu: 1.00e+04 li: 0 it: 5.87e-01 tt: 9.37e+00
1: f: 7.731660e+15 d: 7.73e+15 g: 0.00e+00 h: 1.20e+10 rho: 2.43e-11 mu: 5.00e+03 li: 1 it: 1.41e+01 tt: 2.35e+01
2: f: 7.731660e+15 d: 7.73e+15 g: 0.00e+00 h: 1.25e+10 rho: 1.70e-07 mu: 1.25e+03 li: 1 it: 1.86e+01 tt: 4.22e+01
3: f: 7.731660e+15 d:-2.39e+40 g: 0.00e+00 h: 3.53e+10 rho:-2.63e-13 mu: 1.56e+02 li: 1 it: 3.35e+01 tt: 7.57e+01
4: f: 7.731660e+15 d:-1.66e+39 g: 0.00e+00 h: 1.21e+11 rho:-6.58e-15 mu: 9.77e+00 li: 1 it: 3.86e+01 tt: 1.14e+02
5: f: 7.731660e+15 d:-3.57e+55 g: 0.00e+00 h: 5.00e+12 rho:-1.89e-14 mu: 3.05e-01 li: 1 it: 3.84e+01 tt: 1.53e+02
6: f: 7.731660e+15 d:-2.26e+35 g: 0.00e+00 h: 3.82e+12 rho:-1.77e-20 mu: 4.77e-03 li: 1 it: 3.45e+01 tt: 1.87e+02
7: f: 7.731660e+15 d:-5.31e+19 g: 0.00e+00 h: 1.22e+11 rho:-9.96e-21 mu: 3.73e-05 li: 1 it: 2.77e+01 tt: 2.15e+02
8: f: 1.784990e+08 d: 7.73e+15 g: 4.13e+07 h: 1.20e+10 rho: 1.00e+00 mu: 1.12e-04 li: 1 it: 1.13e+01 tt: 2.26e+02
9: f: 1.524025e+08 d: 2.61e+07 g: 5.81e+10 h: 2.41e+08 rho: 1.00e+00 mu: 3.35e-04 li: 1 it: 1.13e+01 tt: 2.37e+02
10: f: 1.488524e+08 d: 3.55e+06 g: 2.79e+09 h: 5.01e+08 rho: 1.00e+00 mu: 1.01e-03 li: 1 it: 1.09e+01 tt: 2.48e+02
After this change
[inner] build: ./bin/bundle_adjuster --input ~/Downloads/problem-245-198739-pre.txt -num_iterations 10 -translation_sigma 0.01 -rotation_sigma 0.001 -point_sigma 0.1 -inner_iterations -num_threads 4
0: f: 7.731660e+15 d: 0.00e+00 g: 3.51e+12 h: 0.00e+00 rho: 0.00e+00 mu: 1.00e+04 li: 0 it: 5.66e-01 tt: 9.31e+00
1: f: 5.941477e+09 d: 7.73e+15 g: 1.20e+18 h: 1.20e+10 rho: 2.43e-11 mu: 5.00e+03 li: 1 it: 1.38e+01 tt: 2.32e+01
2: f: 3.341986e+08 d: 5.61e+09 g: 1.42e+14 h: 1.37e+09 rho: 9.38e-08 mu: 2.50e+03 li: 1 it: 1.30e+01 tt: 3.61e+01
3: f: 3.241492e+08 d: 1.00e+07 g: 3.64e+13 h: 8.26e+08 rho: 6.12e-08 mu: 1.25e+03 li: 1 it: 1.15e+01 tt: 4.77e+01
4: f: 3.152280e+08 d: 8.92e+06 g: 2.02e+13 h: 2.95e+08 rho: 1.56e-05 mu: 6.25e+02 li: 1 it: 1.11e+01 tt: 5.88e+01
5: f: 3.078535e+08 d: 7.37e+06 g: 9.72e+12 h: 4.57e+08 rho: 6.55e-09 mu: 3.13e+02 li: 1 it: 1.16e+01 tt: 7.04e+01
6: f: 3.025353e+08 d: 5.32e+06 g: 1.33e+13 h: 2.14e+08 rho: 7.21e-01 mu: 3.42e+02 li: 1 it: 1.14e+01 tt: 8.18e+01
7: f: 2.908298e+08 d: 1.17e+07 g: 5.97e+12 h: 7.25e+08 rho: 5.73e-01 mu: 3.43e+02 li: 1 it: 1.08e+01 tt: 9.26e+01
8: f: 2.803927e+08 d: 1.04e+07 g: 1.07e+12 h: 9.72e+07 rho: 5.27e-01 mu: 3.43e+02 li: 1 it: 1.03e+01 tt: 1.03e+02
9: f: 2.767074e+08 d: 3.69e+06 g: 2.10e+11 h: 7.35e+07 rho: 7.37e-01 mu: 3.84e+02 li: 1 it: 1.03e+01 tt: 1.13e+02
10: f: 2.744282e+08 d: 2.28e+06 g: 2.17e+11 h: 1.23e+08 rho: 3.11e-01 mu: 3.64e+02 li: 1 it: 9.61e+00 tt: 1.23e+02
Change-Id: I7c3b132f7ce62719795bfa489ec2276d0455cc97
commit 3e6ef29be6f3cd672a73cefb52838832a49e5427
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Aug 20 09:53:54 2013 -0700
Update version history to reflect API changes
Change-Id: I5ce744d72b991abba17b5cf9c6a1e1f158693151
commit 1918453aeeae629be1f02eb333e91c4f728ace12
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Aug 19 14:15:48 2013 -0700
Fix build breakage on old SuiteSparse.
Errant semi colon is to blame.
Thanks to Timothy Langlois for reporting this.
Change-Id: I57bb1cd69d78ab1897ead3627539a0da11b97455
commit 8f33332c598d8209df73eb1c729e0abe2c890468
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Aug 18 23:25:00 2013 -0700
Documentation update for 1.7.0rc2
Change-Id: I6b0c19bed57b51a0f6591c60a4ae0d849c62451b
commit ad2819a1afa94990022999a96eb158add68419e0
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sat Aug 17 23:44:09 2013 -0700
Fix breakage on old versions of SuiteSparse.
Thanks to Fisher Yu for reporting this.
Change-Id: Iefa89816cbb60e3512338a7c2a65655c017877ac
commit 880cba0939b2caa2641a5752373ffd47b64edd0f
Author: Petter Strandmark <petter.strandmark@gmail.com>
Date: Fri Aug 16 20:05:30 2013 +0200
Fix warning C4373 in Visual Studio
The warning occurs because an overridden function added a const
to one argument.
Change-Id: Idd24f7c6ab60064747104bfc75ae9bf112f61b3e
commit d61b68aaac3fa51b8fca8b1a268e83b0d5da01ea
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Aug 16 17:02:56 2013 -0700
Lint cleanups from William Rucklidge
Change-Id: Ia4756ef97e65837d55838ee0b30806a234565bfd
commit b22d063075ec545a59a25abd5d83e4642dc329c2
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Aug 15 22:55:23 2013 -0700
Reduce memory usage in covariance estimation.
When using the SPARSE_QR algorithm, now a Q-less
factorization is used. This results in significantly
less memory usage.
The inversion of the semi-normal equations is now
threaded using openmp. Indeed if one has SuiteSparse
compiled with TBB, then both the factorization
and the inversion are completely threaded.
Change-Id: Ia07591e48e7958d427ef91ff9e67662f6e982c21
commit f258e4624f5bd86105ea28b9b92dd70a3f4a3a44
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Thu Aug 15 14:50:08 2013 +0600
Move most of suitesparse/cxsparse ifdef code to their headers
Main purpose of this is to make implementation files free from
endless ifdef blocks every time this libraries are needed to be
included. This would hopefully prevent compilation errors in
the future caused by missing ifdef around header include.
This also includes some stubs added to suitesparse/cxsparse
headers to make code even more free from ifdefs.
Change-Id: Ic8554e7df31d8c4751583fe004b99e71b3c9087b
commit dc60d9c4519b5eb5e2cff8741680fecf4d6eb2c5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Aug 15 10:13:45 2013 -0700
Fix broken android build.
Change-Id: I6f27e3ef9bd678f7393c9f573491064978e9c368
commit 367b65e17a541a9f29b9ea63682fe6f6b5b54074
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Aug 9 10:35:37 2013 -0700
Multiple dense linear algebra backends.
1. When a LAPACK implementation is present, then
DENSE_QR, DENSE_NORMAL_CHOLESKY and DENSE_SCHUR
can use it for doing dense linear algebra operations.
2. The user can switch dense linear algebra libraries
by setting Solver::Options::dense_linear_algebra_library_type.
3. Solver::Options::sparse_linear_algebra_library is now
Solver::Options::sparse_linear_algebra_library_type to be consistent
with all the other enums in Solver::Options.
4. Updated documentation as well as Solver::Summary::FullReport
to reflect these changes.
Change-Id: I5ab930bc15e90906b648bc399b551e6bd5d6498f
commit 080d1d04bdf722c3f602833c4c07ac1c5d26fcc0
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Aug 12 16:28:37 2013 -0700
Use more performant, less conservative Eigen solvers.
colPivHouseholderQR -> householderQR
ldlt -> llt.
The resulting performance differences are significant enough
to justify switching.
LAPACK's dgels routine used for solving linear least squares
problems does not use pivoting either.
Similarly, we are not actually using the fact that the matrix
being factorized can be indefinite when using LDLT factorization, so
its not clear that the performance hit is worth it.
These two changes result in Eigen being able to use blocking
algorithms, which for Cholesky factorization, brings the performance
closer to hardware optimized LAPACK. Similarly for dense QR
factorization, on intel there is a 2x speedup.
Change-Id: I4459ee0fc8eb87d58e2b299dfaa9e656d539dc5e
commit fb465a03b83fad2dceaea091ee3763c3dc6e83d2
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Mon Aug 5 22:35:14 2013 -0700
Fix compilation error caused by missing suitesparse headers
Covariance implementation file used to unconditionally include
SuiteSparseQR.hpp which caused compilation error in cases you
don't have SuiteSuite installed to the system
Moved the include to #ifdef block.
Change-Id: I3a52c0f81711b2b70ae625fe80b758ecb0817cc6
commit 2460bf0733b4070e52d68a4a85046c1b20913e2c
Author: Steven Lovegrove <stevenlovegrove@gmail.com>
Date: Sun Jul 21 13:13:11 2013 -0400
Check GCC Version before adding -fast compiler option on OSX.
-fast compiler option is only supported using Apple's GCC packaged with XCode.
Other GCC versions will fail when this flag is enabled. This commit checks the
GCC version on OSX and only enables this flag when < 4.3. Apple's GCC is
currently 4.2.1 and a user is unlikely to install a non-apple version this old
on OSX.
Change-Id: Ifca9149625c065cd16559d7e30c218a322cf79aa
commit c5bcfc01af37b4f667be075c3c58dc024f3c7f06
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Jul 19 15:50:27 2013 -0700
Lint fixes from Jim Roseborough.
Change-Id: If93e1972041b36410225a509e3c8c7c818f92124
commit 16924168ce0b3e29d9b1e16a08d2b3d2930e017a
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Jul 18 12:52:35 2013 -0700
Update version from 1.6.0 -> 1.7.0rc1.
Change-Id: I420a8907142bffad0e3aa6c7196541ca2309c099
commit 588228bdadcc0a1ffc55442a0672998241e53e09
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Jul 18 11:29:19 2013 -0700
Add the ability to turn shared library compilation on and off
Change-Id: Ib9eacfbc894bb2b66aafff3b930c63e2ad8a555e
commit 6d93450cb563dc992cbc29ca069c886bf24bb458
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Jul 18 11:08:07 2013 -0700
Fix build breakage on old versions of SuiteSparse.
SuiteSparse_long is only defined in recent versions of SuiteSparse
as the index variable type for large matrices. In older versions
UF_long was used. Ubuntu still ships with an older version of
SuiteSparse, so an ifdef is needed to fix the build.
This patch has been tested on mac and on linux with older and
newer versions of SuiteSparse.
Change-Id: I4ada86d7973784a79bde4afec13ce3ca4e8dc225
commit 42be9cafe6203745fb09d611773305433c117396
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Jul 18 08:02:08 2013 -0700
Update documentation for Covariance
Change-Id: Ia4a7347ef8267b7107698d85fcbfc986111958dc
commit 5a974716e111e4aa87a4840902b957060bd644fc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Jun 7 22:38:30 2013 -0700
Covariance estimation using SuiteSparseQR.
Change-Id: I70d1686e3288fdde5f9723e832e15ffb857d6d85
commit 719889b8b7a3ef6712516d169a4ce3a33d272fda
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Jul 17 11:31:08 2013 -0700
Minor fixes
1. Typo in c_api.h
2. The stream operator for FunctionSample is now in the ceres::internal namespace.
Change-Id: Id927a7a49c47d8903505535749ecca78cd2e83b3
commit 12cc164f79bb8a31e0eb3946e6f4898ac3c21c55
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Wed Jul 17 12:08:33 2013 +0100
Minor fix to reject a line search config with negative L-BFGS rank.
Change-Id: Iad4c678efe574ef6696c34bd2a0ce61a504c7344
commit 9aa0e3cf7243a2e837bbfa22d4677010463f6a4e
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Fri Jul 5 20:22:37 2013 +0100
Adding Wolfe line search algorithm and full BFGS search direction options.
Change-Id: I9d3fb117805bdfa5bc33613368f45ae8f10e0d79
commit 51c772c843ccecca006c706a9f64b8cbaf5416f9
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Jul 16 16:42:52 2013 -0700
householderQR -> colPivHouseholderQR.
Change-Id: Ida623e853711f665e7a9d3b140a93e861591f96d
commit c2c6411d16db95cde0cc3a7a80bac87266234bb7
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sat Jul 13 18:47:49 2013 -0700
DENSE_QR solver now uses non pivoting QR decomposition.
Change-Id: I9099221448ccf71d0de20b9f652405009a6c24c5
commit 3c2ad4018c8d2271434b9ff2bd05437b96f4927c
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Jul 15 08:09:38 2013 -0700
Speed up Automatic differentiation by 7%.
1. Templatize Make1stOrderPerturbation.
2. Convert a hard CHECK into DCHECK.
Change-Id: I02cd67f2b87bc5722f1a090057d55f23e98d2c3b
commit 0a07fbf8731adcdce98c8e73127d379199341132
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Jul 10 11:57:35 2013 -0700
Use ATLAS as the example BLAS in building.rst
OpenBLAS has subtle issues releated to threading. It
conflicts with the use of threads in the other parts of
the application.
Careful users can still use it by disabling threads via
an environment variable, but by default we want to use
a BLAS/LAPACK that does not suffer from these problems.
Change-Id: I8c1c0ed0b526453564c5f9ea69b646fac32fe027
commit aee5597acf9c2c064977e937f52689254ebd1a39
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Jul 9 23:30:07 2013 -0700
Minor fix to curve_fitting.c
Change-Id: Ib3669a5c4c73178b088dc1e80141f844f807b179
commit bd82f82c3afeb3c57fa03f61fdbb0388f9ed8b02
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Jul 9 23:19:09 2013 -0700
More CMake file cleanup.
Reduce the verbosity of the Cmake file. All the "Checking for"
messages have been removed since we log both success and failures.
Further, UFConfig is only searched for if SuiteSparse_config cannot
be found.
Change-Id: I601a6ffc808e566ff78ce232c86519ef413f0b33
commit 9f4552b6475616df7e60681e60cd5afebb45a4ea
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Jul 9 00:10:08 2013 -0700
Stop CMake from trying to detect OpenMP when using Clang.
Change-Id: Ie14c6466475b401ba35dbf13adc2e8701999c969
commit 6e8bd501b25dc308df7b1a5eed16edfd8442002e
Author: Keir Mierle <mierle@gmail.com>
Date: Thu May 23 01:49:08 2013 -0700
Extend the C API to support loss functions
This extends the C API to support loss functions. Both
user-supplied cost functions as well as the stock Ceres cost
functions (Cauchy, Huber, etc) are supported. In addition, this
adds a simple unit test for the C API.
Supporting loss functions required changing the signature of the
ceres_add_residual_block() function to also take a thunk for the
loss function.
Change-Id: Iefa58cf709adbb8f24588e5eb6aed9aef46b6d73
commit 1ab7fde626c3d3ac02664183f21fedd397785bea
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Jul 8 10:03:49 2013 -0700
Update gmock and gtest to the latest svn versions.
This fixes a variety of mac/clang/c++11 issues.
Change-Id: I52e76d733cd53c9bb2fda125e51a6b58a90e41b3
commit eeedd2e191f5ce404453c735061ad13bd45b939b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Jul 7 23:04:31 2013 -0700
Rationalize some of the variable names in Solver::Options.
lm_max_diagonal -> max_lm_diagonal
lm_min_diagonal -> min_lm_diagonal
linear_solver_max_num_iterations -> max_linear_solver_iterations
linear_solver_min_num_iterations -> min_linear_solver_iterations
This follows the pattern for the other parameters in Solver::Options
where, the max/min is the first word followed by the name of the
parameter.
Change-Id: I0893610fceb6b7983fdb458a65522ba7079596a7
commit 7a8f79792467e56012d43b5f9aa7aefce14d5ee9
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Jul 3 09:03:55 2013 -0700
Lint fixes
Change-Id: Ic453597488ef92723a81a224e7443e8f454b25da
commit 67ccb7379e7eab709480e227323ea48ea91e7ccc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Jul 3 06:28:34 2013 -0700
Fix broken build.
Change-Id: Ieb122bb96d5776f962fff6d6e9345dfc855bfed7
commit 4f010b2db02f22cee8243ed83a49e63a305dbb76
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Jul 1 08:01:01 2013 -0700
Improve Summary::FullReport when line search is used.
Disable reporting of preconditioner when direct factorization
is being used.
Change-Id: Id264d2292c5cab608724a6a8fab5d588db950468
commit 09244015e304b0ebfb2f2399edd2d97e3b9dcd8f
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Jun 30 14:33:23 2013 -0700
Expose line search parameters in Solver::Options.
Change-Id: Ifc52980976e7bac73c8164d80518a5a19db1b79d
commit 1c70ae9aa626e591cda987a970c240dd40d23a69
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Jun 30 12:50:43 2013 -0700
Fix Solver::Summary when line search is used.
Also enable line search in bundle_adjuster.
Change-Id: Ic4343a4334b9f5a6fdeab38d4e3e1f6932bbc601
commit 70b06c89c7491d7749957c8454769bfcb0108a97
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Jun 30 18:49:56 2013 +0100
Fix update of L-BFGS history buffers after they become full.
Previously there was an assignment dimension mismatch in the
history update; thus, over time, the history would contain
(only) replicated copies of the (max_num_corrections_ -1)-th
update and the most recent update.
Change-Id: I26203acf689686d41a5029c675ebbe001fe05d90
commit a427c877f968d951b3cdcb5f5298deaf84647830
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Jun 24 17:50:56 2013 -0700
Lint cleanup.
Change-Id: Ie489f1ff182d99251ed8c0728cc6ea8e1c262ce0