blob: 8200eb6a8950ea640be10316ed89c7c34696e64c [file] [log] [blame]
Sameer Agarwal8ed29a72012-06-07 17:04:25 -07001%!TEX root = ceres-solver.tex
2
3\chapter{Version History}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -07004\section*{1.3.0}
5\subsection{New Features}
6\begin{itemize}
Sameer Agarwal17624202012-08-22 10:01:31 -07007\item Android Port (Scott Ettinger also contributed to the port)
Sameer Agarwal3e3b8922012-07-19 10:34:16 -07008\item Windows port. (Changchang Wu and Pierre Moulon also contributed to the port)
Sameer Agarwal17624202012-08-22 10:01:31 -07009\item New subspace Dogleg Solver. (Markus Moll)
10\item Trust region algorithm now supports the option of non-monotonic steps.
11\item New loss functions \texttt{ArcTanLossFunction,
12 TolerantLossFunction} and \texttt{ComposedLossFunction}. (James Roseborough).
13\item New \texttt{DENSE\_NORMAL\_CHOLESKY} linear solver, which uses Eigen's
Sameer Agarwal122cf832012-08-24 16:28:27 -070014 LDLT factorization on the normal equations.
Sameer Agarwal17624202012-08-22 10:01:31 -070015\item The traditional Dogleg solver now uses an elliptical trust
16 region (Markus Moll)
17\item Support for returning initial and final gradients \& Jacobians.
18\item Gradient computation support in the evaluators, with an eye
19 towards developing first order/gradient based solvers.
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070020\item A better way to compute \texttt{Solver::Summary::fixed\_cost}. (Markus Moll)
Sameer Agarwal122cf832012-08-24 16:28:27 -070021\item \texttt{CMake} support for building documentation, separate examples,
Sameer Agarwal17624202012-08-22 10:01:31 -070022 installing and uninstalling the library and Gerrit hooks (Arnaud
23 Gelas)
Sameer Agarwal122cf832012-08-24 16:28:27 -070024\item \texttt{SuiteSparse4} support (Markus Moll)
Sameer Agarwal17624202012-08-22 10:01:31 -070025\item Support for building Ceres without \texttt{TR1} (This leads to
26 slightly slower \texttt{DENSE\_SCHUR} and \texttt{SPARSE\_SCHUR} solvers).
27\item \texttt{BALProblem} can now write a problem back to disk.
28\item \texttt{bundle\_adjuster} now allows the user to normalize perturb the
29 problem before solving.
30\item Solver progress logging to file.
31\item Added \texttt{Program::ToString} and
32 \texttt{ParameterBlock::ToString} to help with debugging.
33\item Ability to build Ceres as a shared library (MacOS and Linux only), associated versioning and build release script changes.
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070034\item Portable floating point classification API.
35\end{itemize}
36
37\subsection{Bug Fixes}
38\begin{itemize}
Sameer Agarwal17624202012-08-22 10:01:31 -070039\item \texttt{TrustRegionMinimizer} does not implicitly negate the
40 steps that it takes. (Markus Moll)
41\item Diagonal scaling allows for equal upper and lower bounds (Markus Moll)
42\item TrustRegionStrategy does not misuse LinearSolver:Summary anymore.
43\item Fix Eigen3 Row/Column Major storage issue. (Lena Gieseke)
44\item QuaternionToAngleAxis now guarantees an angle in $[-\pi, \pi]$. (Guoxuan Zhang)
45\item Added a workaround for a compiler bug in the Android NDK to the
46 Schur eliminator.
47\item The sparse linear algebra library is only logged in
48 Summary::FullReport if it is used.
49\item Rename the macro \texttt{CERES\_DONT\_HAVE\_PROTOCOL\_BUFFERS}
50 to \texttt{CERES\_NO\_PROTOCOL\_BUFFERS} for consistency.
51\item Fix how static structure detection for the Schur eliminator logs
52 its results.
53\item Correct example code in the documentation. (Petter Strandmark)
54\item Fix \texttt{fpclassify.h} to work with the Android NDK and STLport.
55\item Fix a memory leak in the \texttt{levenber\_marquardt\_strategy\_test.cc}
56\item Fix an early return bug in the Dogleg solver. (Markus Moll)
57\item Zero initialize Jets.
58\item Moved \texttt{internal/ceres/mock\_log.h} to \texttt{internal/ceres/gmock/mock-log.h}
59\item Unified file path handling in tests.
60\item \texttt{data\_fitting.cc} includes \texttt{gflags}
61\item Renamed Ceres' Mutex class and associated macros to avoid
62 namespace conflicts.
63\item Close the BAL problem file after reading it (Markus Moll)
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070064\item Fix IsInfinite on Jets.
65\item Drop alignment requirements for Jets.
66\item Fixed Jet to integer comparison. (Keith Leung)
67\item Fix use of uninitialized arrays. (Sebastian Koch \& Markus Moll)
68\item Conditionally compile gflag dependencies.(Casey Goodlett)
Sameer Agarwal122cf832012-08-24 16:28:27 -070069\item Add \texttt{data\_fitting.cc } to the examples \texttt{CMake} file.
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070070\end{itemize}
71
Sameer Agarwal57a34582012-06-24 12:42:36 -070072\section*{1.2.3}
73\subsection{Bug Fixes}
74\begin{itemize}
75\item \texttt{suitesparse\_test} is enabled even when \texttt{-DSUITESPARSE=OFF}.
76\item \texttt{FixedArray} internal struct did not respect \texttt{Eigen}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070077 alignment requirements (Koichi Akabe \& Stephan Kassemeyer).
Sameer Agarwal57a34582012-06-24 12:42:36 -070078\item Fixed \texttt{quadratic.cc} documentation and code mismatch
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070079 (Nick Lewycky).
Sameer Agarwal57a34582012-06-24 12:42:36 -070080\end{itemize}
Keir Mierle29937702012-06-19 00:39:32 -070081\section*{1.2.2}
82\subsection{Bug Fixes}
83\begin{itemize}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070084\item Fix constant parameter blocks, and other minor fixes (Markus Moll)
Sameer Agarwal57a34582012-06-24 12:42:36 -070085\item Fix alignment issues when combining \texttt{Jet} and
86 \texttt{FixedArray} in automatic differeniation.
87\item Remove obsolete \texttt{build\_defs} file.
Keir Mierle29937702012-06-19 00:39:32 -070088\end{itemize}
Sameer Agarwal97fb6d92012-06-17 10:08:19 -070089\section*{1.2.1}
90\subsection{New Features}
91\begin{itemize}
Keir Mierle64f14102012-06-18 00:57:59 -070092\item Powell's Dogleg solver
93\item Documentation now has a brief overview of Trust Region methods and how the Levenberg-Marquardt and Dogleg methods work.
Sameer Agarwal97fb6d92012-06-17 10:08:19 -070094\end{itemize}
95\subsection{Bug Fixes}
96\begin{itemize}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070097\item Destructor for \texttt{TrustRegionStrategy} was not virtual (Markus Moll)
98\item Invalid \texttt{DCHECK} in \texttt{suitesparse.cc} (Markus Moll)
99\item Iteration callbacks were not properly invoked (Luis Alberto Zarrabeiti)
Keir Mierle64f14102012-06-18 00:57:59 -0700100\item Logging level changes in ConjugateGradientsSolver
101\item VisibilityBasedPreconditioner setup does not account for skipped camera pairs. This was debugging code.
102\item Enable SSE support on MacOS
Sameer Agarwal3e3b8922012-07-19 10:34:16 -0700103\item \texttt{system\_test} was taking too long and too much memory (Koichi Akabe)
Sameer Agarwal97fb6d92012-06-17 10:08:19 -0700104\end{itemize}
Sameer Agarwal8ed29a72012-06-07 17:04:25 -0700105\section*{1.2.0}
106\subsection{New Features}
107\begin{itemize}
108\item \texttt{CXSparse} support.
109\item Block oriented fill reducing orderings. This
110reduces the factorization time for sparse
111\texttt{CHOLMOD} significantly.
112\item New Trust region loop with support for multiple
113trust region step strategies. Currently only Levenberg-Marquardt is supported, but this refactoring opens the door for Dog-leg, Stiehaug and others.
Sameer Agarwal122cf832012-08-24 16:28:27 -0700114\item \texttt{CMake} file restructuring. Builds in \texttt{Release} mode by default, and now has platform specific tuning flags.
Sameer Agarwal8ed29a72012-06-07 17:04:25 -0700115\item Re-organized documentation. No new content, but better organization.
116\end{itemize}
117
118\subsection{Bug Fixes}
119\begin{itemize}
120\item Fixed integer overflow bug in \texttt{block\_random\_access\_sparse\_matrix.cc}.
121\item Renamed some macros to prevent name conflicts.
122\item Fixed incorrent input to \texttt{StateUpdatingCallback}.
123\item Fixes to AutoDiff tests.
124\item Various internal cleanups.
125\end{itemize}
126
127\section*{1.1.1}
128\subsection{Bug Fixes}
129\begin{itemize}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -0700130\item Fix a bug in the handling of constant blocks. (Louis Simard)
Sameer Agarwal8ed29a72012-06-07 17:04:25 -0700131\item Add an optional lower bound to the Levenberg-Marquardt regularizer to prevent oscillating between well and ill posed linear problems.
132\item Some internal refactoring and test fixes.
133\end{itemize}
134\section{1.1.0}
135\subsection{New Features}
136\begin{itemize}
137\item New iterative linear solver for general sparse problems - \texttt{CGNR} and a block Jacobi preconditioner for it.
138\item Changed the semantics of how \texttt{SuiteSparse} dependencies are checked and used. Now \texttt{SuiteSparse} is built by default, only if all of its dependencies are present.
139\item Automatic differentiation now supports dynamic number of residuals.
140\item Support for writing the linear least squares problems to disk in text format so that they can loaded into \texttt{MATLAB}.
141\item Linear solver results are now checked for nan and infinities.
142\item Added \texttt{.gitignore} file.
143\item A better more robust build system.
144\end{itemize}
145
146\subsection{Bug Fixes}
147\begin{itemize}
148\item Fixed a strict weak ordering bug in the schur ordering.
149\item Grammar and typos in the documents and code comments.
150\item Fixed tests which depended on exact equality between floating point values.
151\end{itemize}
152\section*{1.0.0}
Keir Mierle64f14102012-06-18 00:57:59 -0700153Initial Release.