The GradientChecker is a utility class written by
William Rucklidge that can be used to check that the
derivatives returned by a cost function match those
returned by numerically differentiating the residuals
returned by the same cost function.
This is useful when developing CostFunction objects
and testing them before plugging them into an optimization
problem.
Change-Id: Ic60f859b48b6246406448555d25556784e097b81
Following the last commit, which extends the number of parameters blocks autodiff can accept, the interface of Problem::AddResidualBlock is extended to accept up to 10 parameter blocks.
Change-Id: I162c3d1b1868fdda32c1522d57e9a211a9c02f90
Supporting only 6 parameters in autodiff was enough for most
cases, but 6 was not always sufficient. This extends the
current implementation to work with up to 10 parameters.
This also increases the number of parameters supported in
SizedCostFunction to 10.
Change-Id: Ic783602f93e6ddf4af24fa34eff37c0a4b775dc1
The NDK build of Ceres was broken; this fixes it and also
disables a useless warning that shows up in NDK 8b.
Change-Id: I54cfb3de7ccea4a0864385f7ffdb55d8f3431f34
Improve the logic with which various corner cases like
constant program, failures to evaluate initial and final
cost etc are handled.
Change-Id: Id43d45ebe46b65918909d47201d6fb7b89ebbd57
Add automatic recursive independent set decomposition.
Clean up the naming and the API for inner iterations.
Change-Id: I3d7d6babb9756842d7367e14b7279d2df98fb724
A non-linear generalization of Ruhe & Wedin's algorithm
for separable non-linear least squares problem. It is implemented
as coordinate descent on an independent subset of the parameter
blocks at the end of every successful Newton step. The resulting
algorithm has much improved convergence at the cost of some
execution time.
Change-Id: I8fdc5edbd0ba1e702c9658b98041b2c2ae705402
The snavely reprojection error is wrong both in the sample code and
in the documentation. It should not multiply by the focal length
before calculating the distortion.
Change-Id: I292af962e634506a7cc57af9ce72b08f81ce3425
The warnings got disabled at some point; this re-enables some of them, and
fixes some of the warnings.
Change-Id: I290a4fdfad18cea85e9177ba57744d97b6856bb2
Using Ceres in your application involves linking several dependent
libraries, depending on how you compiled Ceres. The example makes
it easier for users to leverage Ceres in their applications.
Change-Id: I6331fd9c6e36c3eac464be2a7a6b905cc76ed843
Remove the old ordering API, and modify solver_impl.cc
to use the new API everywhere.
In the process also clean up the linear solver instantion
logic in solver_impl.cc a bit too.
Change-Id: Ia66898abc7f622070b184b21fce8cc6140c4cebf
This causes the release script to abort if the
Ceres version in the headers, command line,
and CMake files don't match.
Change-Id: I38c4f1b4ebf3499d2ba4f698fa3f4936538c3de7
This will make it possible to write code which detects Ceres
versions and does different things with different versions.
Ideally this wouldn't be necessary, but in practice it is
sometimes useful.
Change-Id: I8d9f56d664ef75706e87c9bd7954e709dd7c0278
We have permission from Stefan Roth to use the coefficients from his
Matlab toolbox. They have been added as *.foe files.
Change-Id: Ice529e5cab0302b9f27648dd3c8e5ed7b9662aba
Previously, the return status was ignored, which meant that e.g. a
numerical failure (which returns 0 final error) would be counted as
correct answer (as the final error is at least as good as the certified
error).
Change-Id: Ia627d5fadf9b20100e628519af794ce0c0b195f4