2014-10-09 09:29:20 +00:00
|
|
|
commit 0435246de5f45e69b2c97d244ed61bedd340215a
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Oct 8 18:12:53 2014 -0700
|
|
|
|
|
|
|
|
Add seene to users.rst
|
|
|
|
|
|
|
|
Change-Id: If40726775a3d4b234b6e10517fe9943d122a3384
|
|
|
|
|
|
|
|
commit fdf32b315f39553639f0becf078ad4eec763a10e
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Oct 8 16:04:32 2014 -0700
|
|
|
|
|
|
|
|
Fix some errant tabs.
|
|
|
|
|
|
|
|
Change-Id: Iaf1906eaade49467ba282656cf0a10879d258b1f
|
|
|
|
|
|
|
|
commit 6768b3586a027bb850c0a50e2a27380f5d80142a
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Oct 8 12:48:16 2014 -0700
|
|
|
|
|
|
|
|
Minor cleanups in preparation for a release.
|
|
|
|
|
|
|
|
1. Fix the release script to ignore the version.h checking.
|
|
|
|
2. Fix some ceres documentation formatting errors.
|
|
|
|
|
|
|
|
Change-Id: I3fd6b85e771b242f463d6a36c3efd8d691f9242f
|
|
|
|
|
|
|
|
commit 7b6bd1cd31aa0b8cb7fb97600c1b9999846e3152
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Thu Oct 2 16:16:26 2014 -0700
|
|
|
|
|
|
|
|
Documentation update.
|
|
|
|
|
|
|
|
1. Complete restructuring of the documentation to account for
|
|
|
|
GradientProblemSolver.
|
|
|
|
2. Update the version history to account for changes since 1.9.0.
|
|
|
|
3. Add links and document the various examples that ship with ceres.
|
|
|
|
4. Documentation for GradientProblem GradientProblemSolver.
|
|
|
|
|
|
|
|
Change-Id: If3a18f2850cbc98be1bc34435e9ea468785b8b27
|
|
|
|
|
|
|
|
commit b7d321f505e936b6c09aeb43ae3f7b1252388a95
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Fri Oct 3 15:47:59 2014 -0700
|
|
|
|
|
|
|
|
Relax the warning/error handing in GCC.
|
|
|
|
|
|
|
|
Thanks to Matthew Woehlke for suggesting this.
|
|
|
|
|
|
|
|
Change-Id: Iae754465c086b0841a7816df1a36781371d0dc9a
|
|
|
|
|
|
|
|
commit 94c6e7d27b5d48d81ab54ed9cdcbc55c3c099311
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Oct 1 15:55:13 2014 -0700
|
|
|
|
|
|
|
|
Improve multithreading when using inner iterations.
|
|
|
|
|
|
|
|
Inner iterations by default would use problems where the evaluator
|
|
|
|
was configured to use exactly one thread for doing the evaluation.
|
|
|
|
This is fine when there are multiple inner iteration problems
|
|
|
|
being executed concurrently, but every now and then there are
|
|
|
|
problem decompositions where there is just one parameter block
|
|
|
|
in the current independent set and it touches every single
|
|
|
|
residual block. In such cases it is essential that the evaluator
|
|
|
|
be configured to use multiple threads.
|
|
|
|
|
|
|
|
We now pay attention to the size of the independent set and
|
|
|
|
dynamically configure the number of threads being used by the
|
|
|
|
outer loop and the evaluator loop.
|
|
|
|
|
|
|
|
Thanks to William Rucklidge for reporting this issue and providing
|
|
|
|
a test problem to debug.
|
|
|
|
|
|
|
|
Change-Id: Iaff9a4ab6d2658cf7b61ea213575d23aab604e3b
|
|
|
|
|
2014-09-30 08:49:34 +00:00
|
|
|
commit 9e11cd16d09403b9270e621e839d5948b6a74b8d
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Mon Sep 29 14:27:58 2014 -0700
|
|
|
|
|
|
|
|
Faster BlockRandomAccessSparseMatrix::SymmetricRightMultiply.
|
|
|
|
|
|
|
|
Trade a small amount of memory to improve the cache coherency of
|
|
|
|
the SymmetricRightMultiply operation.
|
|
|
|
|
|
|
|
The resulting code leads to a 10-20% speedup in the linear solver
|
|
|
|
end to end.
|
|
|
|
|
|
|
|
Change-Id: I8ab2fe152099e849b211b5b19e4ef9f03d8e7f1c
|
|
|
|
|
|
|
|
commit 46b8461fd010c1e7ffce6bb2bdf8a84b659d5e09
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Mon Sep 29 15:10:58 2014 -0700
|
|
|
|
|
|
|
|
Various minor fixes from William Rucklidge.
|
|
|
|
|
|
|
|
Change-Id: Ibe731d5db374ad8ee148d62a9fdd8d726b607a3f
|
|
|
|
|
2014-09-29 18:39:45 +00:00
|
|
|
commit b44cfdef25f6bf0917a23b3fd65cce38aa6a3362
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Mon Sep 29 07:53:54 2014 -0700
|
|
|
|
|
|
|
|
Let ITERATIVE_SCHUR use an explicit Schur Complement matrix.
|
|
|
|
|
|
|
|
Up till now ITERATIVE_SCHUR evaluates matrix-vector products
|
|
|
|
between the Schur complement and a vector implicitly by exploiting
|
|
|
|
the algebraic expression for the Schur complement.
|
|
|
|
|
|
|
|
This cost of this evaluation scales with the number of non-zeros
|
|
|
|
in the Jacobian.
|
|
|
|
|
|
|
|
For small to medium sized problems there is a sweet spot where
|
|
|
|
computing the Schur complement is cheap enough that it is much
|
|
|
|
more efficient to explicitly compute it and use it for evaluating
|
|
|
|
the matrix-vector products.
|
|
|
|
|
|
|
|
This changes implements support for an explicit Schur complement
|
|
|
|
in ITERATIVE_SCHUR in combination with the SCHUR_JACOBI preconditioner.
|
|
|
|
|
|
|
|
API wise a new bool Solver::Options::use_explicit_schur_complement
|
|
|
|
has been added.
|
|
|
|
|
|
|
|
The implementation extends the SparseSchurComplementSolver to use
|
|
|
|
Conjugate Gradients.
|
|
|
|
|
|
|
|
Example speedup:
|
|
|
|
|
|
|
|
use_explicit_schur_complement = false
|
|
|
|
|
|
|
|
Time (in seconds):
|
|
|
|
Preprocessor 0.585
|
|
|
|
|
|
|
|
Residual evaluation 0.319
|
|
|
|
Jacobian evaluation 1.590
|
|
|
|
Linear solver 25.685
|
|
|
|
Minimizer 27.990
|
|
|
|
|
|
|
|
Postprocessor 0.010
|
|
|
|
Total 28.585
|
|
|
|
|
|
|
|
use_explicit_schur_complement = true
|
|
|
|
|
|
|
|
Time (in seconds):
|
|
|
|
Preprocessor 0.638
|
|
|
|
|
|
|
|
Residual evaluation 0.318
|
|
|
|
Jacobian evaluation 1.507
|
|
|
|
Linear solver 5.930
|
|
|
|
Minimizer 8.144
|
|
|
|
|
|
|
|
Postprocessor 0.010
|
|
|
|
Total 8.791
|
|
|
|
|
|
|
|
Which indicates an end-to-end speedup of more than 3x, with the linear
|
|
|
|
solver being sped up by > 4x.
|
|
|
|
|
|
|
|
The idea to explore this optimization was inspired by the recent paper:
|
|
|
|
|
|
|
|
Mining structure fragments for smart bundle adjustment
|
|
|
|
L. Carlone, P. Alcantarilla, H. Chiu, K. Zsolt, F. Dellaert
|
|
|
|
British Machine Vision Conference, 2014
|
|
|
|
|
|
|
|
which uses a more complicated algorithm to compute parts of the
|
|
|
|
Schur complement to speed up the matrix-vector product.
|
|
|
|
|
|
|
|
Change-Id: I95324af0ab351faa1600f5204039a1d2a64ae61d
|
|
|
|
|
|
|
|
commit 4ad91490827f2ebebcc70d17e63ef653bf06fd0d
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Sep 24 23:54:18 2014 -0700
|
|
|
|
|
|
|
|
Simplify the Block Jacobi and Schur Jacobi preconditioners.
|
|
|
|
|
|
|
|
1. Extend the implementation of BlockRandomAccessDiagonalMatrix
|
|
|
|
by adding Invert and RightMultiply methods.
|
|
|
|
|
|
|
|
2. Simplify the implementation of the Schur Jacobi preconditioner
|
|
|
|
using these new methods.
|
|
|
|
|
|
|
|
3. Replace the custom storage used inside Block Jacobi preconditioner
|
|
|
|
with BlockRandomAccessDiagonalMatrix and simplify its implementation
|
|
|
|
too.
|
|
|
|
|
|
|
|
Change-Id: I9d4888b35f0f228c08244abbdda5298b3ce9c466
|
|
|
|
|
|
|
|
commit 8f7be1036b853addc33224d97b92412b5a1281b6
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Mon Sep 29 08:13:35 2014 -0700
|
|
|
|
|
|
|
|
Fix a formatting error TrustRegionMinimizer logging.
|
|
|
|
|
|
|
|
Change-Id: Iad1873c51eece46c3fdee1356d154367cfd7925e
|
|
|
|
|
|
|
|
commit c99872d48e322662ea19efb9010a62b7432687ae
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Sep 24 21:30:02 2014 -0700
|
|
|
|
|
|
|
|
Add BlockRandomAccessSparseMatrix::SymmetricRightMultiply.
|
|
|
|
|
|
|
|
Change-Id: Ib06a22a209b4c985ba218162dfb6bf46bd93169e
|
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit d3ecd18625ba260e0d00912a305a448b566acc59
|
2014-05-01 23:52:56 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Tue Sep 23 10:12:42 2014 -0700
|
2014-01-13 19:17:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Add an explicit include for local_parameterization.h
|
2014-01-13 19:17:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Thanks to cooordz for reporting this.
|
2014-01-13 19:17:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I7d345404e362a94ff1eb433ad6b9dcc4960ba76d
|
2014-01-13 19:17:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 5dd76869cf45122c79579423f09e0de08cf04092
|
|
|
|
Author: Alex Stewart <alexs.mac@gmail.com>
|
|
|
|
Date: Fri Sep 19 16:08:25 2014 +0100
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix unused-function warning with Eigen < 3.2.2.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
- CreateBlockJacobian() is only ever used when Eigen >= 3.2.2 is
|
|
|
|
detected, but was previously defined whenever CERES_USE_EIGEN_SPARSE
|
|
|
|
was defined with no check on the Eigen version.
|
|
|
|
- This resulted in an unused-function compile warning that became an
|
|
|
|
error due to -Werror, preventing compilation when using Eigen < 3.2.2.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I24628ff329f14b087ece66bf2626bdc0de4ba224
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 820cb7b14831aa03eca1e8186000cebfdf0a42f3
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Sep 17 09:46:08 2014 -0700
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Add solver_utils.cc to Android.mk
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I358522971711280f4362a1fa39b1568160e21e63
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 092b94970a073f8b47179d96160226fc19095898
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Fri Sep 5 11:56:29 2014 -0700
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Add GradientProblem and GradientProblemSolver.
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
The line search minimizer in Ceres does not require that the
|
|
|
|
problems that is solving is a sum of squares. Over the past
|
|
|
|
year there have been multiple requests to expose this algorithm
|
|
|
|
on its own so that it can be used to solve unconstrained
|
|
|
|
non-linear minimization problems on its own.
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
With this change, a new optimization problem called
|
|
|
|
GradientProblem is introduced which is basically a thin
|
|
|
|
wrapper around a user defined functor that evaluates cost
|
|
|
|
and gradients (FirstOrderFunction) and an optional LocalParameterization.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Corresponding to it, a GradientProblemSolver and its associated
|
|
|
|
options and summary structs are introduced too.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
An example that uses the new API to find the minimum of Rosenbrock's
|
|
|
|
function is also added.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I42bf687540da25de991e9bdb00e321239244e8b4
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 6c45d6b891aac01489b478a021f99081c61792cb
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Thu Sep 11 07:48:30 2014 -0700
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Add more inspection methods to Problem.
|
|
|
|
|
|
|
|
Problem::GetCostFunctionForResidualBlock
|
|
|
|
Problem::GetLossFunctionForResidualBlock
|
|
|
|
|
|
|
|
are added, so that users do not have to maintain this mapping
|
|
|
|
outside the Problem.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I38356dfa094b2c7eec90651dafeaf3a33c5f5f56
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 6ad9b8e2ae66c9009441d0f9304486ec8dfa9a6a
|
2014-01-13 13:11:08 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Tue Sep 9 14:29:28 2014 -0700
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Ignore row/column blocks structure when using dynamic sparsity
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
The row/column blocks can be huge when using dynamic sparsity. This
|
|
|
|
can result in very large memory usage when augmenting the jacobian
|
|
|
|
with the LM diagonal.
|
|
|
|
|
|
|
|
Thanks to Mingsong Dou for reporting this.
|
|
|
|
|
|
|
|
Change-Id: I6aa140ceefa98389ae17958f89ca76e0c76f95b8
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 7e43460d42e20be1ba13121655dbbfd0d1c751ae
|
|
|
|
Author: Martin Baeuml <baeuml@gmail.com>
|
|
|
|
Date: Mon Sep 8 16:49:06 2014 +0200
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix a few typos in the documentation.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I541db56b2b81ae758e233ce850d78c3cbb4b6fa3
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 1aef66eeae7042902655a11b0d6a1a32900abb7b
|
2014-01-13 13:11:08 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Sun Sep 7 21:18:44 2014 -0700
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Remove errant space.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Iedc06960417a9b938d57f623b4beb87a98e3d081
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 89080ab153a33008782759187fa8e9af7d2f83f1
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Sat Sep 6 21:13:48 2014 -0700
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Add LocalParameterization::MultiplyByJacobian.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
This is needed to efficiently support LocalParameterization objects
|
|
|
|
in GradientProblemSolver.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Ic7b715b8be694b099dc95d6707a67474297533e6
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit d76da16f49d419ae3664ca1bdc2286c1ea78ebed
|
2014-01-13 13:11:08 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Sun Sep 7 18:42:49 2014 -0700
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Move some routines to solver_utils.h/cc
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
This moves a couple of routines from solver.cc into solver_utils.h/cc
|
|
|
|
so that they can also be used by the upcoming GradientProblemSolver.
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I627b32ad3dc639422aacde78a8e391459d947e99
|
2014-01-13 13:11:08 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit cbf03ac292a0c0e9e6b7fcc1b08b67e95965922f
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Sat Sep 6 21:07:08 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Make LineSearchMinimizer consistent with TrustRegionMinimizer.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change the logic for how IterationSummary objects are added to
|
|
|
|
Summary::iterations to match the one in TrustRegionMinimizer.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I57851ad8294e58f83b9115cca9c24695d86ee92a
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit f04c32319751e1efd610acd3699bca0a6dd6c6d1
|
2013-12-29 10:59:15 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Sat Sep 6 21:05:41 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix some obsolete documentation in CostFunction::Evaluate
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I1d7ee5c596fbf6a4d886dce5b989c8eb18af2dce
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 9263547c02a1807532b159c217e7acd124d3db10
|
|
|
|
Author: Johannes Schönberger <hannesschoenberger@gmail.com>
|
|
|
|
Date: Sat Sep 6 17:26:15 2014 -0400
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix CG solver options for ITERATIVE_SCHUR, which did not copy min_num_iterations
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: If31bc53b49ec20426fd438b79b8fa1f69d11e861
|
|
|
|
|
|
|
|
commit b41f048256d1a8184cbe874b5a96dffa7fa4630d
|
|
|
|
Author: Martin Baeuml <baeuml@gmail.com>
|
|
|
|
Date: Fri Sep 5 15:03:32 2014 +0200
|
|
|
|
|
|
|
|
Remove obsolete include of numeric_diff_functor.h.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
numeric_diff_functor.h was removed and does not exist anymore.
|
|
|
|
|
|
|
|
Change-Id: I07bf04bf81142551e867b95b83a0653e11cad54c
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit b7fb6056a717cc3c372cfb7115c527ee8bc05ddb
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Sep 3 11:19:02 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Remove NumericDiffFunctor.
|
|
|
|
|
|
|
|
Its API was broken, and its implementation was an unnecessary
|
|
|
|
layer of abstraction over CostFunctionToFunctor.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I18fc261fc6a3620b51a9eeb4dde0af03d753af69
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 175fa8ff09049110a8509409f60cee5fd52cdbe6
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Tue Sep 2 06:49:08 2014 -0700
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
CostFunctionToFunctor allows dynamic number of residuals.
|
|
|
|
|
|
|
|
The code itself was perfectly capable of handling residuals, but there
|
|
|
|
was an overly strict runtime check that had to be removed.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Thanks to Domink Reitzle for reporting this.
|
|
|
|
|
|
|
|
Change-Id: I6a6d000a7c5203dd5945a61b4caeda1b8aeb09c9
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 70ace0d5a5601901288974fcf27919754260cf0e
|
|
|
|
Author: Johannes Schönberger <hannesschoenberger@gmail.com>
|
|
|
|
Date: Sat Aug 30 15:52:34 2014 -0400
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix max. linear solver iterations in ConjugateGradientsSolver
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Ice0cef46441dbc1c121eeb42113667a46c96936f
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit c5d8d0680250f5eb554577d30d28fc805b03fab9
|
2013-12-29 10:59:15 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Fri Aug 29 20:31:19 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix a unused function error with Eigen version 3.2.1 or less.
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Thanks to Johannes Schoenberger for reporting this.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Ie17d28f2a68734a978a8c95007724bc4055de43a
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 0e1cc2a55488e4cf381833baaa3531c02ce9d69e
|
2013-12-29 10:59:15 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Fri Aug 29 09:16:56 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix the build on Eigen version 3.2.1 and older.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I18f5cb5d42113737d7b8f78a67acee28bd5b3e08
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 5f96c62b56222f27e606f2246a8a16b6942af8d1
|
2013-12-29 10:59:15 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Thu Aug 28 23:06:17 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Add Block AMD ordering for SPARSE_SCHUR + EIGEN_SPARSE.
|
|
|
|
|
|
|
|
Ordering routines for the Schur complement when using EIGEN_SPARSE.
|
|
|
|
Also integration into SchurComplementSolver.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Part of this CL is also a refactoring of the block jacobian matrix
|
|
|
|
construction.
|
|
|
|
|
|
|
|
Change-Id: I11d665cc7d4867c64190e6fed1118f4d2e13d59b
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 7344626c04d19ca1dc4871c377c4422c744b1bca
|
2013-12-29 10:59:15 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Thu Aug 28 22:03:09 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Let EIGEN_SPARSE + SPARSE_NORMAL_CHOLESKY use block AMD.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Modify SparseNormalCholeskySolver to use a pre-ordered Jacobian
|
|
|
|
matrix.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Ib4d725d7a2d7bb94ea76dbb3a9b172784dbc8ea0
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 9f7032369ea4e432f0fb507cb6d2209741ee6946
|
2013-12-29 10:59:15 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Thu Aug 28 21:46:43 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Block AMD for SparseNormalCholesky + EIGEN_SPARSE.
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
This is just the reordering routine. The integration with
|
|
|
|
SparseNormalCholesky shall happen in a subsequent CL.
|
|
|
|
|
|
|
|
Change-Id: I39ddc32aa66b11c368faf75404850fa0ae0d2b3a
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit b9331cd4077100d645be22a912d5743eeda72878
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Thu Aug 28 14:42:27 2014 -0700
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Cleanup reorder_program.cc
|
2013-12-29 10:59:15 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Program::SetParameterOffsetsAndIndex() was being called willy nilly.
|
|
|
|
Now the invariant is that any function that actually reorders the
|
|
|
|
program, updates the offsets and indices.
|
2013-09-05 10:48:44 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Also the logic around handling EIGEN_SPARSE has been simplified in
|
|
|
|
anticipation of the block AMD code that is forthcoming.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Last but not the least, num_eliminate_blocks, which is a rather
|
|
|
|
cryptic name to begin with has been replaced by the more meaningful
|
|
|
|
size_of_first_elimination_group.
|
|
|
|
|
|
|
|
Change-Id: I77e684f699a93b53e76aa406d64f40f8704df813
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 79491a3f4a3939a3cce4644da7a998b7782b963a
|
2013-04-22 09:25:37 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Thu Aug 28 13:57:50 2014 -0700
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Solver::FullReport now reports build config.
|
|
|
|
|
|
|
|
The header of Summary::FullReport now looks like
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Solver Summary (v 1.10.0-suitesparse-cxsparse-lapack-no_openmp)
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Original Reduced
|
|
|
|
Parameter blocks 22122 22122
|
|
|
|
Parameters 66462 66462
|
|
|
|
Residual blocks 83718 83718
|
|
|
|
Residual 167436 167436
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Id1b81bbf90ba412d19e2dd3687eeb9d372b72c1b
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 48068c753e91d77f6c96ef2d529a27ef8ee3947c
|
2013-11-28 13:06:35 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Thu Aug 28 13:03:40 2014 -0700
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-05-01 23:52:56 +00:00
|
|
|
Lint cleanup from William Rucklidge.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Ie0e0aa58440be7a4f67dcd633dbb6f1bb0c051a8
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 6a51b135e6298e8ba44a58cc2b54a170ab61a82f
|
2013-04-22 09:25:37 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Thu Aug 28 10:48:29 2014 -0700
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix solver_test.cc
|
|
|
|
|
|
|
|
When Eigen is not installed, Solver::IsValid was not detecting
|
|
|
|
it correctly.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Id285a84d829a9e20bc5de663adfca66ac31e08f3
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 62a8d64453ee41dae56710a4eead3fadf2fe1a4e
|
2013-04-22 09:25:37 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Wed Aug 27 22:54:00 2014 -0700
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Expand check for lack of a sparse linear algebra library.
|
2013-11-28 13:06:35 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
The LinearSolver factory was creating a NULL linear solver
|
|
|
|
if only Eigen's sparse linear algebra backend was available.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Thanks to Michael Samples and Domink Reitzle for reporting this.
|
|
|
|
|
|
|
|
Change-Id: I35e3a6c0fd0da2a31934adb5dfe4cad29577cc73
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 12eb389b4ec4113a2260c1a192a1d3f8d1b6a2d3
|
2014-05-01 23:52:56 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Wed Aug 27 22:18:33 2014 -0700
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix Eigen Row/ColMajor bug in NumericDiffCostFunction.
|
|
|
|
|
|
|
|
If the parameter block size is 1, asking Eigen to create
|
|
|
|
a row-major matrix triggers a compile time error. Previously
|
|
|
|
we were handling the case where the number of rows in the
|
|
|
|
jacobian block was known statically, but the problem is present
|
|
|
|
when the nummber of rows is dynamic.
|
|
|
|
|
|
|
|
This CL fixes this problem.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Thanks to Dominik Reitzle for reporting this.
|
|
|
|
|
|
|
|
Change-Id: I99c3eec3558e66ebf4efa51c4dee8ce292ffe0c1
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 6c25185bb1643d8d0f3d8e1a7b82a058156aa869
|
|
|
|
Author: Alex Stewart <alexs.mac@gmail.com>
|
|
|
|
Date: Thu Aug 28 16:07:51 2014 +0100
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix crash in Covariance if # threads > 1 requested without OpenMP.
|
|
|
|
|
|
|
|
- Previously if options.num_threads > 1 was given to Covariance compiled
|
|
|
|
without OpenMP, a CHECK() would be triggered in program_evalutor.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Iaade4f5ed5326b0c59a7014c750c41ee026e1124
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 6f89d850fb4ace0104abccf467c4fe37ad378b79
|
2013-04-22 09:25:37 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Wed Aug 27 11:51:50 2014 -0700
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Further build breakage fixes.
|
|
|
|
|
|
|
|
1. Allow the minimum number of linear solver iterations to be zero.
|
|
|
|
2. Fix conjugate gradients solver's iteration loop to be sane again.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I8594815fec940c2b30e28eb58ec5d8baacf13dae
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit dd596d0f0d6d08951efc2c11a639b546db2080c6
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Wed Aug 27 11:26:50 2014 -0700
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix the broken build.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I083cf1cca1bf4cca956193022d450364e73f833a
|
|
|
|
|
|
|
|
commit d906afae22b05b9b9a9a2657924f4c0bf1a9b5ea
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Mon Aug 25 22:32:38 2014 -0700
|
|
|
|
|
|
|
|
A number of bug fixes.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
1. Fix a build breakage in graph_test.
|
|
|
|
2. Respect Solver::Options::min_num_linear_solver_iterations in
|
|
|
|
conjugate_gradients_solver.cc
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Thanks to Johannes Schönberger for reporting these.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Ib32e3929bf5d92dd576ae5b53d4d88797095136e
|
2013-11-28 13:06:35 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit dab955928c6d0942d6acc5b5f1c4c11260d0767d
|
2014-05-01 23:52:56 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Sun Aug 17 13:14:50 2014 -0700
|
2013-11-28 13:06:35 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Add an unweighted graph.
|
|
|
|
|
|
|
|
Rename Graph -> WeightedGraph.
|
|
|
|
Add a new Graph class, which is cheaper to construct and
|
|
|
|
work with if the weights are not needed.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
This cuts down the cost of building the Hessian graph
|
|
|
|
significantly.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Id0cfc81dd2c0bb5ff8f63a1b55aa133c53c0c869
|
2013-11-28 13:06:35 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit a0c282adbd268c2ad82551fab31fe1cf8d0c4282
|
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
|
|
Date: Sun Aug 24 22:19:03 2014 -0700
|
2013-11-28 13:06:35 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Add EIGEN_STRONG_INLINE annotation to jet.h
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
This improves performance when using MSVC on Windows. On GCC
|
|
|
|
there will be no effect.
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I555a81ff6823c2855d64773073f75af50c48d716
|
|
|
|
|
|
|
|
commit 20de0a7793c574e964350a623446136889f74632
|
|
|
|
Author: Björn Piltz <bjornpiltz@gmail.com>
|
|
|
|
Date: Mon Aug 25 17:05:54 2014 +0200
|
|
|
|
|
|
|
|
Fixed Malformed regex
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
I got the following error with MSVC:
|
|
|
|
Syntax error at index 9 in simple regular expression "NumGroups()": '(' is unsupported.
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: Id1952831d81d3eb5d73bbed8c311914c4c8ab51f
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit ccf8aea988269841d84d746e52164d5056c67a10
|
|
|
|
Author: Björn Piltz <bjornpiltz@gmail.com>
|
|
|
|
Date: Mon Aug 25 16:16:01 2014 +0200
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fixed MSVC error C2124: divide or mod by zero
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Alternatively, if quiet_NaN is not available on all platforms a workaround would be:
|
|
|
|
volatile double zero = 0.0;
|
|
|
|
double x = 1.0/zero;
|
|
|
|
The 'volatile' is needed to shut up "warning C4723: potential divide by 0".
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: If2bbdab8540595aa2e0079e1eb6b6fed6d4a6ef7
|
2013-04-22 09:25:37 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 8de27be218d42b282d7f15867733ad07058b0887
|
2013-04-08 17:05:48 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Tue Aug 19 08:22:40 2014 -0700
|
2013-04-08 17:05:48 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Fix a bug in TrustRegionPreprocessor
|
2013-04-08 17:05:48 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
TrustRegionPreprocessor was not setting Minimizer::Options::is_constrained.
|
|
|
|
This meant that the line search for bounds constraints was not being
|
|
|
|
invoked for bounds constrained problems.
|
2013-04-08 17:05:48 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
And some minor lint cleanup.
|
2013-04-08 17:05:48 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I18852cfaf1b33fd90b7d8c196f2063c128126658
|
2013-04-08 17:05:48 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
commit 1745dd615b3897a3ef9896acfdba67eee1739bf4
|
2013-04-05 09:22:54 +00:00
|
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
2014-09-24 11:10:02 +00:00
|
|
|
Date: Thu Jun 5 21:30:13 2014 -0700
|
2013-04-05 09:22:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Refactor SolverImpl.
|
2013-04-05 09:22:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Replace SolverImpl with
|
2013-11-28 13:06:35 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
a. A minimizer specific preprocessor class.
|
|
|
|
b. A generic Solve function inside solver.cc
|
|
|
|
c. Presummarize and Postsummarize functions to handle
|
|
|
|
updates to the summary object.
|
2014-05-01 23:52:56 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
The existing SolverImpl class was a mixture of the above three
|
|
|
|
things and was increasingly complicated code to follow. This change,
|
|
|
|
breaks it into its three separate constituents, with the aims of
|
|
|
|
better separation of concerns and thus better testability and
|
|
|
|
reliability.
|
2013-04-05 09:22:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
The call to Solver::Solve() now consists of
|
2013-04-05 09:22:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
1. Presummarize - summarize the given state of the problem and solver
|
|
|
|
options.
|
|
|
|
2. Preprocess - Setup everything that is needed to call the minimizer.
|
|
|
|
This includes, removing redundant parameter and residual blocks,
|
|
|
|
setting up the reordering for the linear solver, creating the
|
|
|
|
linear solver, evaluator, inner iteration minimizer etc.
|
|
|
|
3. Minimize.
|
|
|
|
4. Post summarize - summarize the result of the preprocessing and the
|
|
|
|
solve.
|
2013-04-05 09:22:54 +00:00
|
|
|
|
2014-09-24 11:10:02 +00:00
|
|
|
Change-Id: I80f35cfc9f2cbf78f1df4aceace27075779d8a3a
|