Commit Graph

80 Commits

Author SHA1 Message Date
Sameer Agarwal f68321e7de Update version history
Change-Id: I8a1ad5051f7654dfdead0a225fa9263c02643914
2022-03-28 07:02:35 -07:00
Sergiu Deitsch c0c14abca2 Fix version history item numbering
The last item in the 'New Features' section restarts the enumeration
because the indention of the previous subitem is one space short.

Change-Id: Ifa2873d3e2ddd6bac5034b48207775019ef1c462
2022-03-26 23:33:26 +01:00
Sameer Agarwal ff57c2e91e Update version history for 2.1.0rc2
Change-Id: If107c2cc356ff402d743d8393c2a1f49a0720c28
2022-03-21 09:34:42 -07:00
Sergiu Deitsch f0f8f93bbc Fix docs inconsistencies
Change-Id: Ie3f767d537206ed4c326c7a504825cc751817c61
2022-03-02 14:05:39 +01:00
Sameer Agarwal e40391efa3 Update version history in preparation for 2.1.0
Change-Id: I3771d5d289bbb9982eeec2ae3701246dd25eaac1
2022-03-01 09:35:20 -08:00
Noah Snavely 20ad431f77 Fixing a typo in the version history
Change-Id: Ib0b344112373dd947cedd70808f02f573bf60bc8
2021-07-13 22:25:42 -04:00
Sameer Agarwal a0ec5c32af Update version history for 2.0.0RC2
Change-Id: I75b7515fbf9880bd8eaea6ecd5e72ce1ae4a3a86
2020-10-18 15:20:36 -07:00
Sameer Agarwal 242c703b50 Minor fixes to the documentation
Change-Id: I65e6f648d963b8aa640078684ce02dcde6acb87d
2020-08-04 21:02:11 -07:00
Sameer Agarwal 79bbf95103 Add changelog for 2.0.0
Change-Id: I8acad62bfe629454ae5032732693e43fe37b97ff
2020-08-04 18:26:02 -07:00
Kuang Fangjun 0d3a84fce5 Fix typos in doc and errors in the demo code.
Change-Id: I237402958ed8747ae438643132fcab90113ac27d
2018-09-22 12:01:20 +08:00
Sameer Agarwal c2f5cd10e7 Update docs and code in preparation for 1.14.0
Change-Id: I81b430fbff62fb5e3f4c75945f6d40361d546918
2018-03-13 10:10:13 -07:00
Sameer Agarwal 19333b0f55 Update version history & installation.rst
Update docs in preparation for 1.13.0.

Change-Id: I3d66f4094fe83c7d29b3ea4003c00ee158c6f9ac
2017-08-03 00:09:36 -07:00
Sameer Agarwal 87f823617e Fix dynamic_sparsity_test.
Skip the test in dynamic_sparsity_test when there are no sparse
linear algebra libraries available.

Also fix a minor typo in version_history.rst

Change-Id: Ie7cc14e655c58b6bd9625ce9f9025f94d0624d2d
2017-07-10 11:32:27 -07:00
Sameer Agarwal b704612888 Update version history.
Update the version history in preparation for 1.13.0RC1 and
also reformat older parts of the version history file.

Change-Id: I133e5966629e8277631ec5d407165ad188efa1e1
2017-07-07 12:14:35 -07:00
Sameer Agarwal d55fa69292 Fix a minor typographical error in the version history.
Change-Id: I9648aaf218321f9e144de20ef5e512385a6cfe34
2016-12-05 08:06:54 -08:00
Sameer Agarwal 029799d757 Update Version History
Change-Id: I385fa095c86232f2b58f9d0a1a5f9d959aeade49
2016-12-05 07:42:48 -08:00
Sameer Agarwal 7cb5d9cca3 Update changelog
Change-Id: Ib284990fd819c71411617c3d995178181af9fc4d
2016-11-21 06:24:28 -08:00
Sameer Agarwal 0f80f018ff Update changelog
Change-Id: I36db7e705ad520321335ff2f438cba54d914bb5c
2016-11-20 12:13:56 -08:00
Sameer Agarwal 717417512b Update changelog
Change-Id: I1c8bef059adc57476b5e75310fd7d983b8229bf7
2016-11-11 10:48:51 -08:00
Sameer Agarwal 5690b447de Fix documentation source for templated functions in rotation.h
Change-Id: Ic1b2e6f0e6eb9914f419fd0bb5af77b66252e57c
2016-10-13 09:52:02 -07:00
Sameer Agarwal 2f8f98f7e8 Prepare for 1.12.0RC1
Change-Id: I23eaf0b46117a01440143001b74dacfa5e57cbf0
2016-10-13 09:35:18 -07:00
Sameer Agarwal e6ffe26671 Update the version history.
Change-Id: I9a57b0541d6cebcb695ecb364a1d4ca04ea4e06c
2016-10-10 22:47:08 -07:00
Sameer Agarwal a36693f83d Update version history
Change-Id: Ib2f0138ed7a1879ca3b2173e54092f7ae8dd5c9d
2016-09-17 16:31:41 -07:00
Alex Stewart 41455566ac Remove link-time optimisation (LTO).
- On GCC 4.9+ although GCC supports LTO, it requires use of the
  non-default gcc-ar & gcc-ranlib.  Whilst we can ensure Ceres is
  compiled with these, doing so with GCC 4.9 causes multiple definition
  linker errors of static ints inside Eigen when compiling the tests
  and examples when they are not also built with LTO.
- On OS X (Xcode 6 & 7) after the latest update to gtest, if LTO
  is used when compiling the tests (& examples), two tests fail
  due to typeinfo::operator== (things are fine if only Ceres itself is
  compiled with LTO).
- This patch disables LTO for all compilers. It should be revisited when
  the performance is more stable across our supported compilers.

Change-Id: I17b52957faefbdeff0aa40846dc9b342db1b02e3
2015-10-05 18:54:11 +01:00
Alex Stewart 89c40005bf Only use LTO when compiling Ceres itself, not tests or examples.
- If Ceres is built as a shared library, and LTO is enabled for Ceres
  and the tests, then type_info::operator==() incorrectly returns false
  in gtests' CheckedDowncastToActualType() in the following tests:
-- levenberg_marquardt_strategy_test.
-- gradient_checking_cost_function_test.
  on at least Xcode 6 & 7 as reported here:
  https://github.com/google/googletest/issues/595.
- This does not appear to be a gtest issue, but is perhaps an LLVM bug
  or an RTTI shared library issue.  Either way, disabling the use of
  LTO when compiling the test application resolves the issue.
- Allow LTO to be enabled for GCC, if it is supported.
- Add CMake function to allow easy appending to target properties s/t
  Ceres library-specific compile flags can be iteratively constructed.

Change-Id: I923e6aae4f7cefa098cf32b2f8fc19389e7918c9
2015-09-28 15:08:39 +01:00
Sameer Agarwal 0794f41cca Documentation updates.
1. Fix a typo in the Trust Region algorithm.
2. Add ARL in the list of users.
3. Update the version history.

Change-Id: Ic286e8ef1a71af07f3890b7592dd3aed9c5f87ce
2015-09-26 14:14:20 -07:00
Sameer Agarwal a66d89dcda Get ready for 1.11.0RC1
Update version numbers.
Drop CERES_VERSION_ABI macro.

Change-Id: Ib3eadabb318afe206bb196a5221b195d26cbeaa0
2015-09-08 14:55:28 -07:00
Sameer Agarwal 1ac3dd223c Fix a bug in CompressedRowSparseMatrix::AppendRows
The test for CompressedRowSparseMatrix::AppendRows tries to add
a matrix of size zero, which results in an invalid pointer deferencing
even though that pointer is never written to.

Change-Id: I97dba37082bd5dad242ae1af0447a9178cd92027
2015-09-05 15:56:14 -07:00
Sameer Agarwal 5742b7d0f1 Improve performance of SPARSE_NORMAL_CHOLESKY + dynamic_sparsity
The outer product computation logic in SparseNormalCholeskySolver
does not work well with dynamic sparsity. The overhead of computing
the sparsity pattern of the normal equations is only amortized if
the sparsity is constant. If the sparsity can change from call to call
SparseNormalCholeskySolver will actually be more expensive.

For Eigen and for CXSparse we now explicitly compute the normal
equations using their respective matrix-matrix product routines and solve.
Change-Id: Ifbd8ed78987cdf71640e66ed69500442526a23d4
2015-09-05 14:31:52 -07:00
Alex Stewart a1b3fce9e0 Add optional export of Ceres build directory to new features list.
Change-Id: I6f1e42b41957ae9cc98fd9dcd1969ef64c4cd96f
2015-08-31 14:14:56 +01:00
Alex Stewart e46777d8df Credit reporters of buildsystem bugs in version history.
Change-Id: I16fe7973534cd556d97215e84268ae0b8ec4e11a
2015-08-31 12:41:54 +01:00
Sameer Agarwal 01548282cb Update the version history.
Change-Id: I29873bed31675e0108f1a44f53f7bc68976b7f98
2015-08-30 22:34:04 -07:00
Sameer Agarwal d9790e7789 Add ProductParameterization
Often a parameter block is the Cartesian product of a number of
manifolds. For example, a rigid transformation SE(3) = SO(3) x R^3
In such cases, where you have the local parameterization
of the individual manifolds available,
ProductParameterization can be used to construct a local
parameterization of the cartesian product.

Change-Id: I4b5bcbd2407a38739c7725b129789db5c3d65a20
2015-07-27 13:37:10 -07:00
Sameer Agarwal a6971f6c29 Documentation changes.
1. Add documentation for cubic_interpolation.h
2. Remove the list of publications. It is an incomplete list which is
   a pain to maintain.
3. Add a note about the interaction between manifolds and
   NumericDiffCostFunction.
4. Fix some of the comments in cubic_interpolation.h to better reflect reality.
5. Updated the version history.

Change-Id: I0b4a5a6f3361d3fc85f1b4aec685cd80540934f1
2015-03-21 10:42:29 -07:00
Sameer Agarwal 207879a935 Update version history.
Change-Id: I1b6afb1a8509b3b20d3f28887c88bf15d33dbcf7
2015-01-28 19:23:24 +00:00
Sameer Agarwal ba28d3a3db 1.10.0 Final.
Update version history.

Change-Id: I1b73749ba10679396369e2af0a37699181b125fb
2014-12-05 15:45:16 -08:00
Sameer Agarwal 68222eb819 Lint cleanup from Jim Roseborough
Change-Id: Ic55b8e48110bc651ae942d34fe5402a6e0422fe3
2014-12-01 12:31:46 -08:00
Sameer Agarwal 2bdc0208c0 Get ready for 1.10.0rc2.
Update the version history.

Change-Id: I5de006c7c75b26d8c421bf1eeb525964121d2029
2014-11-30 14:13:03 -08:00
Sameer Agarwal 0484fabab8 Lint and documentation update.
Change-Id: I05f40983f267dd1534e3eee8c0fc038e4429abed
2014-11-13 23:08:30 -08:00
Sameer Agarwal cd358c760f Fix RotationMatrixToAngleAxis near Pi.
Use Eigen's much more complicated conversion routine
when we encounter cases where the angle of rotation is
close to Pi.

Along the way also fix the way angle_axis vectors are
compared by making the matcher more robust.

Thanks to Tobias Strauss for reporting this.

Change-Id: Ia7e65dafad92c48d29d5f3cd22c4d6534789c183
2014-11-12 22:56:38 -08:00
Sameer Agarwal 39e397b793 Prepare for 1.10.0 release.
1. Add information about homebrew/science to the docs.
2. Update version history.
3. Update RPM spec file.

Change-Id: I800b81f9f2c8733a8add338cc0a205b7b8bc8573
2014-11-12 08:30:04 -08:00
Sameer Agarwal 7b6bd1cd31 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
2014-10-08 08:47:34 -07:00
Sameer Agarwal b7fb6056a7 Remove NumericDiffFunctor.
Its API was broken, and its implementation was an unnecessary
layer of abstraction over CostFunctionToFunctor.

Change-Id: I18fc261fc6a3620b51a9eeb4dde0af03d753af69
2014-09-03 16:53:53 -07:00
Sameer Agarwal 1745dd615b 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
2014-08-18 13:31:31 -07:00
Sameer Agarwal 060a850602 Remove SPARSE_CHOLESKY based covariance estimation.
Sparse Cholesky factorization is not rank revealing. Therefore
this algorithm cannot reliably tell when the Jacobian matrix is
rank deficient or so poorly conditioned that the covariance matrix
cannot be estimated.

Making things worse, this algorithm works on the normal equations,
which makes the conditioning problem much worse.

This change, deletes the SPARSE_CHOLESKY algorithm in the covariance
estimation code. Also to make the naming consistent, it renames

SPARSE_QR -> SUITE_SPARSE_QR

so that it parallels EIGEN_SPARSE_QR.

Also, since we now have EIGEN_SPARSE_QR, we can default to using
it when SuiteSparse is not available instead of DENSE_SVD, which
generally speaking should only be used by folks who are dealing
with small rank deficient jacobians.

Change-Id: I8b134c7e8a2e86ca374371f185b19f1c3e74349c
2014-07-20 07:35:35 -07:00
Sameer Agarwal 1693645a67 Add Solver::Options::IsValid.
This provides a user visible way to validate the Solver::Options
before calling Solve.

Change-Id: Ife84fd33532ab2ccb7ac95abe22735843db51fde
2014-05-30 13:00:18 -07:00
Sameer Agarwal b766177bab Remove support for Solver::Options::solver_log.
This is not really used and if needed can be implemented
in user code.

Change-Id: I56328d51c9d3788f90c751ff9c3a5937989f6ee0
2014-05-29 21:59:37 +00:00
Sameer Agarwal 451e71c6b7 Prepare for version 1.9.0
1. Update ceres-solver.spec with version bump
   and a new package description.
2. Update the docs to refer to 1.9.0
3. Update version history.
4. Change build requirements for Android to be r9d.

Change-Id: Ibab27976b214a11549cb2688b91f791a6388b0b5
2014-05-27 11:39:07 -07:00
Sameer Agarwal 0831275a78 Documentation update.
1. Update iOS build instructions.
2. Update version history.

Change-Id: I49d62e86ecff39190b50c050cb12eef4e2773357
2014-05-16 08:32:23 -07:00
Sameer Agarwal 8f4dcb25f1 Documentation update.
Update modeling.rst and solving.rst to reflect
changes to the API.

Change-Id: Id1a8adfed1486f08e5fd67c5af2d29708a26490c
2014-05-13 12:31:30 -07:00