Add changelog for 2.0.0
Change-Id: I8acad62bfe629454ae5032732693e43fe37b97ff
diff --git a/docs/source/installation.rst b/docs/source/installation.rst
index d727c31..2f6e181 100644
--- a/docs/source/installation.rst
+++ b/docs/source/installation.rst
@@ -9,7 +9,7 @@
.. _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 @@
.. 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 @@
.. 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 @@
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 @@
.. 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 @@
.. 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 @@
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 @@
#. 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``,
diff --git a/docs/source/version_history.rst b/docs/source/version_history.rst
index 0bef4ad..f5db6c4 100644
--- a/docs/source/version_history.rst
+++ b/docs/source/version_history.rst
@@ -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 @@
NULL, /* No cost */
&initial_residuals,
NULL, /* No gradient */
- NULL /* No jacobian */ );
+ NULL /* No jacobian */);
Solver::Options options;
Solver::Summary summary;
@@ -977,7 +1126,7 @@
NULL, /* No cost */
&final_residuals,
NULL, /* No gradient */
- NULL /* No jacobian */ );
+ NULL /* No jacobian */);
New Features