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