forked from bartvdbraak/blender
c1004b1b77
just to be sure we're dealing with the latest git version when troubleshooting one annoying OSX issue..
674 lines
23 KiB
Plaintext
674 lines
23 KiB
Plaintext
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
commit d3ecd18625ba260e0d00912a305a448b566acc59
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Tue Sep 23 10:12:42 2014 -0700
|
|
|
|
Add an explicit include for local_parameterization.h
|
|
|
|
Thanks to cooordz for reporting this.
|
|
|
|
Change-Id: I7d345404e362a94ff1eb433ad6b9dcc4960ba76d
|
|
|
|
commit 5dd76869cf45122c79579423f09e0de08cf04092
|
|
Author: Alex Stewart <alexs.mac@gmail.com>
|
|
Date: Fri Sep 19 16:08:25 2014 +0100
|
|
|
|
Fix unused-function warning with Eigen < 3.2.2.
|
|
|
|
- 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.
|
|
|
|
Change-Id: I24628ff329f14b087ece66bf2626bdc0de4ba224
|
|
|
|
commit 820cb7b14831aa03eca1e8186000cebfdf0a42f3
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Wed Sep 17 09:46:08 2014 -0700
|
|
|
|
Add solver_utils.cc to Android.mk
|
|
|
|
Change-Id: I358522971711280f4362a1fa39b1568160e21e63
|
|
|
|
commit 092b94970a073f8b47179d96160226fc19095898
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Fri Sep 5 11:56:29 2014 -0700
|
|
|
|
Add GradientProblem and GradientProblemSolver.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
Corresponding to it, a GradientProblemSolver and its associated
|
|
options and summary structs are introduced too.
|
|
|
|
An example that uses the new API to find the minimum of Rosenbrock's
|
|
function is also added.
|
|
|
|
Change-Id: I42bf687540da25de991e9bdb00e321239244e8b4
|
|
|
|
commit 6c45d6b891aac01489b478a021f99081c61792cb
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Sep 11 07:48:30 2014 -0700
|
|
|
|
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.
|
|
|
|
Change-Id: I38356dfa094b2c7eec90651dafeaf3a33c5f5f56
|
|
|
|
commit 6ad9b8e2ae66c9009441d0f9304486ec8dfa9a6a
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Tue Sep 9 14:29:28 2014 -0700
|
|
|
|
Ignore row/column blocks structure when using dynamic sparsity
|
|
|
|
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
|
|
|
|
commit 7e43460d42e20be1ba13121655dbbfd0d1c751ae
|
|
Author: Martin Baeuml <baeuml@gmail.com>
|
|
Date: Mon Sep 8 16:49:06 2014 +0200
|
|
|
|
Fix a few typos in the documentation.
|
|
|
|
Change-Id: I541db56b2b81ae758e233ce850d78c3cbb4b6fa3
|
|
|
|
commit 1aef66eeae7042902655a11b0d6a1a32900abb7b
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Sun Sep 7 21:18:44 2014 -0700
|
|
|
|
Remove errant space.
|
|
|
|
Change-Id: Iedc06960417a9b938d57f623b4beb87a98e3d081
|
|
|
|
commit 89080ab153a33008782759187fa8e9af7d2f83f1
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Sat Sep 6 21:13:48 2014 -0700
|
|
|
|
Add LocalParameterization::MultiplyByJacobian.
|
|
|
|
This is needed to efficiently support LocalParameterization objects
|
|
in GradientProblemSolver.
|
|
|
|
Change-Id: Ic7b715b8be694b099dc95d6707a67474297533e6
|
|
|
|
commit d76da16f49d419ae3664ca1bdc2286c1ea78ebed
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Sun Sep 7 18:42:49 2014 -0700
|
|
|
|
Move some routines to solver_utils.h/cc
|
|
|
|
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.
|
|
|
|
Change-Id: I627b32ad3dc639422aacde78a8e391459d947e99
|
|
|
|
commit cbf03ac292a0c0e9e6b7fcc1b08b67e95965922f
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Sat Sep 6 21:07:08 2014 -0700
|
|
|
|
Make LineSearchMinimizer consistent with TrustRegionMinimizer.
|
|
|
|
Change the logic for how IterationSummary objects are added to
|
|
Summary::iterations to match the one in TrustRegionMinimizer.
|
|
|
|
Change-Id: I57851ad8294e58f83b9115cca9c24695d86ee92a
|
|
|
|
commit f04c32319751e1efd610acd3699bca0a6dd6c6d1
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Sat Sep 6 21:05:41 2014 -0700
|
|
|
|
Fix some obsolete documentation in CostFunction::Evaluate
|
|
|
|
Change-Id: I1d7ee5c596fbf6a4d886dce5b989c8eb18af2dce
|
|
|
|
commit 9263547c02a1807532b159c217e7acd124d3db10
|
|
Author: Johannes Schönberger <hannesschoenberger@gmail.com>
|
|
Date: Sat Sep 6 17:26:15 2014 -0400
|
|
|
|
Fix CG solver options for ITERATIVE_SCHUR, which did not copy min_num_iterations
|
|
|
|
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.
|
|
|
|
numeric_diff_functor.h was removed and does not exist anymore.
|
|
|
|
Change-Id: I07bf04bf81142551e867b95b83a0653e11cad54c
|
|
|
|
commit b7fb6056a717cc3c372cfb7115c527ee8bc05ddb
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Wed Sep 3 11:19:02 2014 -0700
|
|
|
|
Remove NumericDiffFunctor.
|
|
|
|
Its API was broken, and its implementation was an unnecessary
|
|
layer of abstraction over CostFunctionToFunctor.
|
|
|
|
Change-Id: I18fc261fc6a3620b51a9eeb4dde0af03d753af69
|
|
|
|
commit 175fa8ff09049110a8509409f60cee5fd52cdbe6
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Tue Sep 2 06:49:08 2014 -0700
|
|
|
|
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.
|
|
|
|
Thanks to Domink Reitzle for reporting this.
|
|
|
|
Change-Id: I6a6d000a7c5203dd5945a61b4caeda1b8aeb09c9
|
|
|
|
commit 70ace0d5a5601901288974fcf27919754260cf0e
|
|
Author: Johannes Schönberger <hannesschoenberger@gmail.com>
|
|
Date: Sat Aug 30 15:52:34 2014 -0400
|
|
|
|
Fix max. linear solver iterations in ConjugateGradientsSolver
|
|
|
|
Change-Id: Ice0cef46441dbc1c121eeb42113667a46c96936f
|
|
|
|
commit c5d8d0680250f5eb554577d30d28fc805b03fab9
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Fri Aug 29 20:31:19 2014 -0700
|
|
|
|
Fix a unused function error with Eigen version 3.2.1 or less.
|
|
|
|
Thanks to Johannes Schoenberger for reporting this.
|
|
|
|
Change-Id: Ie17d28f2a68734a978a8c95007724bc4055de43a
|
|
|
|
commit 0e1cc2a55488e4cf381833baaa3531c02ce9d69e
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Fri Aug 29 09:16:56 2014 -0700
|
|
|
|
Fix the build on Eigen version 3.2.1 and older.
|
|
|
|
Change-Id: I18f5cb5d42113737d7b8f78a67acee28bd5b3e08
|
|
|
|
commit 5f96c62b56222f27e606f2246a8a16b6942af8d1
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Aug 28 23:06:17 2014 -0700
|
|
|
|
Add Block AMD ordering for SPARSE_SCHUR + EIGEN_SPARSE.
|
|
|
|
Ordering routines for the Schur complement when using EIGEN_SPARSE.
|
|
Also integration into SchurComplementSolver.
|
|
|
|
Part of this CL is also a refactoring of the block jacobian matrix
|
|
construction.
|
|
|
|
Change-Id: I11d665cc7d4867c64190e6fed1118f4d2e13d59b
|
|
|
|
commit 7344626c04d19ca1dc4871c377c4422c744b1bca
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Aug 28 22:03:09 2014 -0700
|
|
|
|
Let EIGEN_SPARSE + SPARSE_NORMAL_CHOLESKY use block AMD.
|
|
|
|
Modify SparseNormalCholeskySolver to use a pre-ordered Jacobian
|
|
matrix.
|
|
|
|
Change-Id: Ib4d725d7a2d7bb94ea76dbb3a9b172784dbc8ea0
|
|
|
|
commit 9f7032369ea4e432f0fb507cb6d2209741ee6946
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Aug 28 21:46:43 2014 -0700
|
|
|
|
Block AMD for SparseNormalCholesky + EIGEN_SPARSE.
|
|
|
|
This is just the reordering routine. The integration with
|
|
SparseNormalCholesky shall happen in a subsequent CL.
|
|
|
|
Change-Id: I39ddc32aa66b11c368faf75404850fa0ae0d2b3a
|
|
|
|
commit b9331cd4077100d645be22a912d5743eeda72878
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Aug 28 14:42:27 2014 -0700
|
|
|
|
Cleanup reorder_program.cc
|
|
|
|
Program::SetParameterOffsetsAndIndex() was being called willy nilly.
|
|
Now the invariant is that any function that actually reorders the
|
|
program, updates the offsets and indices.
|
|
|
|
Also the logic around handling EIGEN_SPARSE has been simplified in
|
|
anticipation of the block AMD code that is forthcoming.
|
|
|
|
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
|
|
|
|
commit 79491a3f4a3939a3cce4644da7a998b7782b963a
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Aug 28 13:57:50 2014 -0700
|
|
|
|
Solver::FullReport now reports build config.
|
|
|
|
The header of Summary::FullReport now looks like
|
|
|
|
Solver Summary (v 1.10.0-suitesparse-cxsparse-lapack-no_openmp)
|
|
|
|
Original Reduced
|
|
Parameter blocks 22122 22122
|
|
Parameters 66462 66462
|
|
Residual blocks 83718 83718
|
|
Residual 167436 167436
|
|
|
|
Change-Id: Id1b81bbf90ba412d19e2dd3687eeb9d372b72c1b
|
|
|
|
commit 48068c753e91d77f6c96ef2d529a27ef8ee3947c
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Aug 28 13:03:40 2014 -0700
|
|
|
|
Lint cleanup from William Rucklidge.
|
|
|
|
Change-Id: Ie0e0aa58440be7a4f67dcd633dbb6f1bb0c051a8
|
|
|
|
commit 6a51b135e6298e8ba44a58cc2b54a170ab61a82f
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Aug 28 10:48:29 2014 -0700
|
|
|
|
Fix solver_test.cc
|
|
|
|
When Eigen is not installed, Solver::IsValid was not detecting
|
|
it correctly.
|
|
|
|
Change-Id: Id285a84d829a9e20bc5de663adfca66ac31e08f3
|
|
|
|
commit 62a8d64453ee41dae56710a4eead3fadf2fe1a4e
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Wed Aug 27 22:54:00 2014 -0700
|
|
|
|
Expand check for lack of a sparse linear algebra library.
|
|
|
|
The LinearSolver factory was creating a NULL linear solver
|
|
if only Eigen's sparse linear algebra backend was available.
|
|
|
|
Thanks to Michael Samples and Domink Reitzle for reporting this.
|
|
|
|
Change-Id: I35e3a6c0fd0da2a31934adb5dfe4cad29577cc73
|
|
|
|
commit 12eb389b4ec4113a2260c1a192a1d3f8d1b6a2d3
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Wed Aug 27 22:18:33 2014 -0700
|
|
|
|
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.
|
|
|
|
Thanks to Dominik Reitzle for reporting this.
|
|
|
|
Change-Id: I99c3eec3558e66ebf4efa51c4dee8ce292ffe0c1
|
|
|
|
commit 6c25185bb1643d8d0f3d8e1a7b82a058156aa869
|
|
Author: Alex Stewart <alexs.mac@gmail.com>
|
|
Date: Thu Aug 28 16:07:51 2014 +0100
|
|
|
|
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.
|
|
|
|
Change-Id: Iaade4f5ed5326b0c59a7014c750c41ee026e1124
|
|
|
|
commit 6f89d850fb4ace0104abccf467c4fe37ad378b79
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Wed Aug 27 11:51:50 2014 -0700
|
|
|
|
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.
|
|
|
|
Change-Id: I8594815fec940c2b30e28eb58ec5d8baacf13dae
|
|
|
|
commit dd596d0f0d6d08951efc2c11a639b546db2080c6
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Wed Aug 27 11:26:50 2014 -0700
|
|
|
|
Fix the broken build.
|
|
|
|
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.
|
|
|
|
1. Fix a build breakage in graph_test.
|
|
2. Respect Solver::Options::min_num_linear_solver_iterations in
|
|
conjugate_gradients_solver.cc
|
|
|
|
Thanks to Johannes Schönberger for reporting these.
|
|
|
|
Change-Id: Ib32e3929bf5d92dd576ae5b53d4d88797095136e
|
|
|
|
commit dab955928c6d0942d6acc5b5f1c4c11260d0767d
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Sun Aug 17 13:14:50 2014 -0700
|
|
|
|
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.
|
|
|
|
This cuts down the cost of building the Hessian graph
|
|
significantly.
|
|
|
|
Change-Id: Id0cfc81dd2c0bb5ff8f63a1b55aa133c53c0c869
|
|
|
|
commit a0c282adbd268c2ad82551fab31fe1cf8d0c4282
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Sun Aug 24 22:19:03 2014 -0700
|
|
|
|
Add EIGEN_STRONG_INLINE annotation to jet.h
|
|
|
|
This improves performance when using MSVC on Windows. On GCC
|
|
there will be no effect.
|
|
|
|
Change-Id: I555a81ff6823c2855d64773073f75af50c48d716
|
|
|
|
commit 20de0a7793c574e964350a623446136889f74632
|
|
Author: Björn Piltz <bjornpiltz@gmail.com>
|
|
Date: Mon Aug 25 17:05:54 2014 +0200
|
|
|
|
Fixed Malformed regex
|
|
|
|
I got the following error with MSVC:
|
|
Syntax error at index 9 in simple regular expression "NumGroups()": '(' is unsupported.
|
|
|
|
Change-Id: Id1952831d81d3eb5d73bbed8c311914c4c8ab51f
|
|
|
|
commit ccf8aea988269841d84d746e52164d5056c67a10
|
|
Author: Björn Piltz <bjornpiltz@gmail.com>
|
|
Date: Mon Aug 25 16:16:01 2014 +0200
|
|
|
|
Fixed MSVC error C2124: divide or mod by zero
|
|
|
|
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".
|
|
|
|
Change-Id: If2bbdab8540595aa2e0079e1eb6b6fed6d4a6ef7
|
|
|
|
commit 8de27be218d42b282d7f15867733ad07058b0887
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Tue Aug 19 08:22:40 2014 -0700
|
|
|
|
Fix a bug in TrustRegionPreprocessor
|
|
|
|
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.
|
|
|
|
And some minor lint cleanup.
|
|
|
|
Change-Id: I18852cfaf1b33fd90b7d8c196f2063c128126658
|
|
|
|
commit 1745dd615b3897a3ef9896acfdba67eee1739bf4
|
|
Author: Sameer Agarwal <sameeragarwal@google.com>
|
|
Date: Thu Jun 5 21:30:13 2014 -0700
|
|
|
|
Refactor SolverImpl.
|
|
|
|
Replace SolverImpl with
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
The call to Solver::Solve() now consists of
|
|
|
|
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.
|
|
|
|
Change-Id: I80f35cfc9f2cbf78f1df4aceace27075779d8a3a
|