mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 08:34:37 +08:00
Add changelog for 2.0.0
Change-Id: I8acad62bfe629454ae5032732693e43fe37b97ff
This commit is contained in:
@@ -9,7 +9,7 @@ Getting the source code
|
||||
.. _section-source:
|
||||
|
||||
You can start with the `latest stable release
|
||||
<http://ceres-solver.org/ceres-solver-1.14.0.tar.gz>`_ . Or if you want
|
||||
<http://ceres-solver.org/ceres-solver-2.0.0.tar.gz>`_ . Or if you want
|
||||
the latest version, you can clone the git repository
|
||||
|
||||
.. code-block:: bash
|
||||
@@ -163,10 +163,10 @@ We are now ready to build, test, and install Ceres.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
tar zxf ceres-solver-1.14.0.tar.gz
|
||||
tar zxf ceres-solver-2.0.0.tar.gz
|
||||
mkdir ceres-bin
|
||||
cd ceres-bin
|
||||
cmake ../ceres-solver-1.14.0
|
||||
cmake ../ceres-solver-2.0.0
|
||||
make -j3
|
||||
make test
|
||||
# Optionally install Ceres, it can also be exported using CMake which
|
||||
@@ -180,7 +180,7 @@ dataset [Agarwal]_.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
bin/simple_bundle_adjuster ../ceres-solver-1.14.0/data/problem-16-22106-pre.txt
|
||||
bin/simple_bundle_adjuster ../ceres-solver-2.0.0/data/problem-16-22106-pre.txt
|
||||
|
||||
This runs Ceres for a maximum of 10 iterations using the
|
||||
``DENSE_SCHUR`` linear solver. The output should look something like
|
||||
@@ -197,7 +197,7 @@ this.
|
||||
5 1.803399e+04 5.33e+01 1.48e+04 1.23e+01 9.99e-01 8.33e+05 1 1.45e-01 1.08e+00
|
||||
6 1.803390e+04 9.02e-02 6.35e+01 8.00e-01 1.00e+00 2.50e+06 1 1.50e-01 1.23e+00
|
||||
|
||||
Ceres Solver v1.14.0 Solve Report
|
||||
Ceres Solver v2.0.0 Solve Report
|
||||
----------------------------------
|
||||
Original Reduced
|
||||
Parameter blocks 22122 22122
|
||||
@@ -298,10 +298,10 @@ We are now ready to build, test, and install Ceres.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
tar zxf ceres-solver-1.14.0.tar.gz
|
||||
tar zxf ceres-solver-2.0.0.tar.gz
|
||||
mkdir ceres-bin
|
||||
cd ceres-bin
|
||||
cmake ../ceres-solver-1.14.0
|
||||
cmake ../ceres-solver-2.0.0
|
||||
make -j3
|
||||
make test
|
||||
# Optionally install Ceres, it can also be exported using CMake which
|
||||
@@ -329,7 +329,7 @@ following:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
tar zxf ceres-solver-1.14.0.tar.gz
|
||||
tar zxf ceres-solver-2.0.0.tar.gz
|
||||
mkdir ceres-bin
|
||||
cd ceres-bin
|
||||
# Configure the local shell only (not persistent) to use the Homebrew LLVM
|
||||
@@ -341,7 +341,7 @@ following:
|
||||
export PATH="/usr/local/opt/llvm/bin:$PATH"
|
||||
# Force CMake to use the Homebrew version of Clang. OpenMP will be
|
||||
# automatically enabled if it is detected that the compiler supports it.
|
||||
cmake -DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang++ ../ceres-solver-1.14.0
|
||||
cmake -DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang++ ../ceres-solver-2.0.0
|
||||
make -j3
|
||||
make test
|
||||
# Optionally install Ceres. It can also be exported using CMake which
|
||||
@@ -430,7 +430,7 @@ dependencies.
|
||||
|
||||
#. Unpack the Ceres tarball into ``ceres``. For the tarball, you
|
||||
should get a directory inside ``ceres`` similar to
|
||||
``ceres-solver-1.14.0``. Alternately, checkout Ceres via ``git`` to
|
||||
``ceres-solver-2.0.0``. Alternately, checkout Ceres via ``git`` to
|
||||
get ``ceres-solver.git`` inside ``ceres``.
|
||||
|
||||
#. Install ``CMake``,
|
||||
|
||||
@@ -4,6 +4,155 @@
|
||||
Version History
|
||||
===============
|
||||
|
||||
2.0.0
|
||||
=====
|
||||
|
||||
New Features
|
||||
------------
|
||||
#. Ceres Solver now requires a C++14 compatible compiler, Eigen
|
||||
version > 3.3 & CMake version >= 3.5, XCode version >= 11.2 (Sameer
|
||||
Agarwal, Alex Stewart & Keir Mierle)
|
||||
#. C++ threading based multi-threading support. (Mike Vitus)
|
||||
#. :func:`Problem::AddResidualBlock`, :class:`SizedFunction`,
|
||||
:class:`AutoDiffCostFunction`, :class:`NumericDiffCostFunction`
|
||||
support an arbitrary number of parameter blocks using variadic
|
||||
templates (Johannes Beck)
|
||||
#. On Apple platforms, support for Apple's Accelerate framework as a
|
||||
sparse linear algebra library. (Alex Stewart)
|
||||
#. Significantly faster AutoDiff (Darius Rueckert)
|
||||
#. Mixed precision solves when using
|
||||
``SPARSE_NORMAL_CHOLESKY``. (Sameer Agarwal)
|
||||
#. ``LocalParameterization`` objects can have a zero sized tangent
|
||||
size, which effectively makes the parameter block constant. In
|
||||
particular, this allows for a ``SubsetParameterization`` that holds
|
||||
all the coordinates of a parameter block constant. (Sameer Agarwal
|
||||
& Emil Ernerfeldt)
|
||||
#. Visibility based preconditioning now works with ``Eigen`` and
|
||||
``CXSparse``. (Sameer Agarwal)
|
||||
#. Added :func:`Problem::EvaluateResidualBlock` and
|
||||
:func:`Problem::EvaluateResidualBlockAssumingParametersUnchanged`. (Sameer
|
||||
Agarwal)
|
||||
#. ``GradientChecker`` now uses ``RIDDERS`` method for more accurate
|
||||
numerical derivatives. (Sameer Agarwal)
|
||||
#. Covariance computation uses a faster SVD algorithm (Johannes Beck)
|
||||
#. A new local parameterization for lines (Johannes Beck)
|
||||
#. A new (``SUBSET``) preconditioner for problems with general
|
||||
sparsity. (Sameer Agarwal)
|
||||
#. Faster Schur elimination using faster custom BLAS routines for
|
||||
small matrices. (yangfan)
|
||||
#. Automatic differentiation for ``FirstOrderFunction`` in the form of
|
||||
:class:`AutoDiffFirstOrderFunction`. (Sameer Agarwal)
|
||||
#. ``TinySolverAutoDiffFunction`` now supports dynamic number of residuals
|
||||
just like ``AutoDiffCostFunction``. (Johannes Graeter)
|
||||
|
||||
Backward Incompatible API Changes
|
||||
---------------------------------
|
||||
|
||||
#. ``EvaluationCallback`` has been moved from ``Solver::Options`` to
|
||||
``Problem::Options`` for a more correct API.
|
||||
#. Removed ``Android.mk`` based build.
|
||||
#. Remove ``Solver::Options::num_linear_solver_threads`` is no more.
|
||||
|
||||
Bug Fixes & Minor Changes
|
||||
-------------------------
|
||||
#. Various documentation improvements (Sameer Agarwal, Carl Dehlin,
|
||||
Bayes Nie, Chris Choi, Frank, Kuang Fangjun, Dmitriy Korchemkin,
|
||||
huangqinjin, Patrik Huber)
|
||||
#. Huge number of build system simplification & cleanups (Alex
|
||||
Stewart, NeroBurner, Alastair Harrison, Linus Mårtensson, Nikolaus Demmel)
|
||||
#. Intel TBB based threading removed (Mike Vitus)
|
||||
#. Allow :class:`SubsetParameterization` to accept an empty vector of
|
||||
constant parameters. (Sameer Agarwal & Frédéric Devernay)
|
||||
#. Fix a bug in DynamicAutoDiffCostFunction when all parameters are
|
||||
constant (Ky Waegel & Sameer Agarwal)
|
||||
#. Fixed incorrect argument name in ``RotationMatrixToQuaternion``
|
||||
(Alex Stewart & Frank Dellaert)
|
||||
#. Do not export class template LineParameterization (huangqinjin)
|
||||
#. Change the type of parameter index/offset to match their getter/setter (huangqinjin)
|
||||
#. Initialize integer variables with integer instead of double (huangqinjin)
|
||||
#. Add std::numeric_limit specialization for Jets (Sameer Agarwal)
|
||||
#. Fix a MSVC type deduction bug in ComputeHouseholderVector (Sameer Agarwal)
|
||||
#. Allow LocalParameterizations to have zero local size. (Sameer Agarwal)
|
||||
#. Add photometric and relative-pose residuals to autodiff benchmarks (Nikolaus Demmel)
|
||||
#. Add a constant cost function to the autodiff benchmarks (Darius Rueckert)
|
||||
#. Add const to GetCovarianceMatrix#. (Johannes Beck)
|
||||
#. Fix Tukey loss function (Enrique Fernandez)
|
||||
#. Fix 3+ nested Jet constructor (Julian Kent)
|
||||
#. Fix windows MSVC build. (Johannes Beck)
|
||||
#. Fix invert PSD matrix. (Johannes Beck)
|
||||
#. Remove not used using declaration (Johannes Beck)
|
||||
#. Let Problem::SetParameterization be called more than once. (Sameer Agarwal)
|
||||
#. Make Problem movable. (Sameer Agarwal)
|
||||
#. Make EventLogger more efficient. (Sameer Agarwal)
|
||||
#. Remove a CHECK failure from covariance_impl.cc (Sameer Agarwal)
|
||||
#. Add a missing cast in rotation.h (Sameer Agarwal)
|
||||
#. Add a specialized SchurEliminator and integrate it for the case <2,3,6> (Sameer Agarwal)
|
||||
#. Remove use of SetUsage as it creates compilation problems. (Sameer Agarwal)
|
||||
#. Protect declarations of lapack functions under CERES_NO_LAPACK (Sameer Agarwal)
|
||||
#. Drop ROS dependency on catkin (Scott K Logan)
|
||||
#. Explicitly delete the copy constructor and copy assignment operator (huangqinjin)
|
||||
#. Use selfAdjoingView<Upper> in InvertPSDMatrix. (Sameer Agarwal)
|
||||
#. Speed up InvertPSDMatrix (Sameer Agarwal)
|
||||
#. Allow Solver::Options::max_num_line_search_step_size_iterations = 0. (Sameer Agarwal)
|
||||
#. Make LineSearchMinizer work correctly with negative valued functions. (Sameer Agarwal)
|
||||
#. Fix missing declaration warnings in Ceres code (Sergey Sharybin)
|
||||
#. Modernize ProductParameterization. (Johannes Beck)
|
||||
#. Add some missing string-to-enum-to-string convertors. (Sameer Agarwal)
|
||||
#. Add checks in rotation.h for inplace operations. (Johannes Beck)
|
||||
#. Update Bazel WORKSPACE for newest Bazel (Keir Mierle)
|
||||
#. TripletSparseMatrix: guard against self-assignment (ngoclinhng)
|
||||
#. Fix Eigen alignment issues. (Johannes Beck)
|
||||
#. Add the missing <array> header to fixed_array.h (Sameer Agarwal)
|
||||
#. Switch to FixedArray implementation from abseil. (Johannes Beck)
|
||||
#. IdentityTransformation -> IdentityParameterization (Sameer Agarwal)
|
||||
#. Reorder initializer list to make -Wreorder happy (Sam Hasinoff)
|
||||
#. Reduce machoness of macro definition in cost_functor_to_function_test.cc (Sameer Agarwal)
|
||||
#. Enable optional use of sanitizers (Alex Stewart)
|
||||
#. Fix a typo in cubic_interpolation.h (Sameer Agarwal)
|
||||
#. Update googletest/googlemock to db9b85e2. (Sameer Agarwal)
|
||||
#. Fix Jacobian evaluation for constant parameter (Johannes Beck)
|
||||
#. AutoDiffCostFunction: use static_assert to check if the correct overload of the constructor is used. (Christopher Wecht)
|
||||
#. Avoid additional memory allocation in gradient checker (Justin Carpentier)
|
||||
#. Swap the order of definition of IsValidParameterDimensionSequence. (Sameer Agarwal)
|
||||
#. Add ParameterBlock::IsSetConstantByUser() (Sameer Agarwal)
|
||||
#. Add parameter dims for variadic sized cost function (Johannes Beck)
|
||||
#. Remove trailing zero parameter block sizes (Johannes Beck)
|
||||
#. Adding integer sequence and algorithms (Johannes Beck)
|
||||
#. Improve readability of LocalParameterization code. (Sameer Agarwal)
|
||||
#. Simplifying Init in manual contructor (Johannes Beck)
|
||||
#. Fix typo in NIST url. (Alessandro Gentilini)
|
||||
#. Add a .clang-format file. (Sameer Agarwal)
|
||||
#. Make ConditionedCostFunction compatible with repeated CostFunction. (Sameer Agarwal)
|
||||
#. Remove conversions from a double to a Jet. (Kuang Fangjun)
|
||||
#. close the file on return. (Kuang Fangjun)
|
||||
#. Fix an error in the demo code for ceres::Jet. (Kuang Fangjun)
|
||||
#. Recheck the residual after a new call. (Kuang Fangjun)
|
||||
#. avoid recomputation. (Kuang Fangjun)
|
||||
#. Fix calculation of Solver::Summary::num_threads_used. (Alex Stewart)
|
||||
#. Convert calls to CHECK_NOTNULL to CHECK. (Sameer Agarwal)
|
||||
#. Add a missing <cstdint> to block_structure.h (Sameer Agarwal)
|
||||
#. Fix an uninitialized memory error in EvaluationCallbackTest (Sameer Agarwal)
|
||||
#. Respect bounds when using Solver::Options::check_gradients (Sameer Agarwal)
|
||||
#. Relax the limitation that SchurEliminator::Eliminate requires a rhs. (Sameer Agarwal)
|
||||
#. Fix three out of bounds errors in CompressedRowSparseMatrix. (Sameer Agarwal)
|
||||
#. Add Travis CI support. (Alex Stewart)
|
||||
#. Refactor Ceres threading option configuration. (Alex Stewart)
|
||||
#. Handle NULL permutation from SuiteSparseQR (Pau Gargallo)
|
||||
#. Remove chunk shuffle in multithreaded SchurEliminator (Norbert Wenzel)
|
||||
#. Add /bigobj to nist on MSVC. (Alex Stewart)
|
||||
#. Fix 'xxx.cc has no symbols' warnings. (Alex Stewart)
|
||||
#. Add a typedef to expose the scalar type used in a Jet. (Sameer Agarwal)
|
||||
#. Fix a use after free bug in the tests. (Sameer Agarwal)
|
||||
#. Simplify integration tests. (Sameer Agarwal)
|
||||
#. Converts std::unique_lock to std::lock_guard. (Mike Vitus)
|
||||
#. Bring the Bazel build in sync with the CMake build. (Sameer Agarwal)
|
||||
#. Adds a ParallelFor wrapper for no threads and OpenMP. (Mike Vitus)
|
||||
#. Improve the test coverage in small_blas_test (Sameer Agarwal)
|
||||
#. Handle possible overflow in TrustRegionStepEvaluator. (Sameer Agarwal)
|
||||
#. Fix lower-bound on result of minimising step-size polynomial. (Alex Stewart)
|
||||
#. Adds missing functional include in thread_pool.h (Mike Vitus)
|
||||
|
||||
|
||||
1.14.0
|
||||
======
|
||||
|
||||
@@ -966,7 +1115,7 @@ Backward Incompatible API Changes
|
||||
NULL, /* No cost */
|
||||
&initial_residuals,
|
||||
NULL, /* No gradient */
|
||||
NULL /* No jacobian */ );
|
||||
NULL /* No jacobian */);
|
||||
|
||||
Solver::Options options;
|
||||
Solver::Summary summary;
|
||||
@@ -977,7 +1126,7 @@ Backward Incompatible API Changes
|
||||
NULL, /* No cost */
|
||||
&final_residuals,
|
||||
NULL, /* No gradient */
|
||||
NULL /* No jacobian */ );
|
||||
NULL /* No jacobian */);
|
||||
|
||||
|
||||
New Features
|
||||
|
||||
Reference in New Issue
Block a user