blob: 343ffb8d07ed8b3cb1d1e11d4f3de362b5b5ddb6 [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 Agarwal98bf14d2012-08-30 10:26:44 -070015\item Cached symbolic factorization when using \texttt{CXSparse}.
16 (Petter Strandark)
Sameer Agarwal0b776b52012-08-30 15:26:17 -070017\item New example \texttt{nist.cc} and data from the NIST non-linear
18 regression test suite. (Thanks to Douglas Bates for suggesting this.)
Sameer Agarwal17624202012-08-22 10:01:31 -070019\item The traditional Dogleg solver now uses an elliptical trust
20 region (Markus Moll)
21\item Support for returning initial and final gradients \& Jacobians.
22\item Gradient computation support in the evaluators, with an eye
23 towards developing first order/gradient based solvers.
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070024\item A better way to compute \texttt{Solver::Summary::fixed\_cost}. (Markus Moll)
Sameer Agarwal122cf832012-08-24 16:28:27 -070025\item \texttt{CMake} support for building documentation, separate examples,
Sameer Agarwal17624202012-08-22 10:01:31 -070026 installing and uninstalling the library and Gerrit hooks (Arnaud
27 Gelas)
Sameer Agarwal122cf832012-08-24 16:28:27 -070028\item \texttt{SuiteSparse4} support (Markus Moll)
Sameer Agarwal17624202012-08-22 10:01:31 -070029\item Support for building Ceres without \texttt{TR1} (This leads to
30 slightly slower \texttt{DENSE\_SCHUR} and \texttt{SPARSE\_SCHUR} solvers).
31\item \texttt{BALProblem} can now write a problem back to disk.
Sameer Agarwal8b641402012-08-29 05:41:22 -070032\item \texttt{bundle\_adjuster} now allows the user to normalize and perturb the
Sameer Agarwal17624202012-08-22 10:01:31 -070033 problem before solving.
34\item Solver progress logging to file.
35\item Added \texttt{Program::ToString} and
36 \texttt{ParameterBlock::ToString} to help with debugging.
37\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 -070038\item Portable floating point classification API.
39\end{itemize}
40
41\subsection{Bug Fixes}
42\begin{itemize}
Sameer Agarwal0b776b52012-08-30 15:26:17 -070043\item Fix how invalid step evaluations are handled.
44\item Change the slop handling around zero for model cost changes to use
45relative tolerances rather than absolute tolerances.
46\item Fix an inadvertant integer to bool conversion. (Petter Strandmark)
Sameer Agarwal8b641402012-08-29 05:41:22 -070047\item Do not link to \texttt{libgomp} when building on
48 windows. (Petter Strandmark)
Sameer Agarwal98bf14d2012-08-30 10:26:44 -070049\item Include \texttt{gflags.h} in \texttt{test\_utils.cc}. (Petter
Sameer Agarwal8b641402012-08-29 05:41:22 -070050 Strandmark)
51\item Use standard random number generation routines. (Petter Strandmark)
Sameer Agarwal17624202012-08-22 10:01:31 -070052\item \texttt{TrustRegionMinimizer} does not implicitly negate the
53 steps that it takes. (Markus Moll)
Sameer Agarwal8b641402012-08-29 05:41:22 -070054\item Diagonal scaling allows for equal upper and lower bounds. (Markus Moll)
Sameer Agarwal17624202012-08-22 10:01:31 -070055\item TrustRegionStrategy does not misuse LinearSolver:Summary anymore.
56\item Fix Eigen3 Row/Column Major storage issue. (Lena Gieseke)
57\item QuaternionToAngleAxis now guarantees an angle in $[-\pi, \pi]$. (Guoxuan Zhang)
58\item Added a workaround for a compiler bug in the Android NDK to the
59 Schur eliminator.
60\item The sparse linear algebra library is only logged in
61 Summary::FullReport if it is used.
62\item Rename the macro \texttt{CERES\_DONT\_HAVE\_PROTOCOL\_BUFFERS}
63 to \texttt{CERES\_NO\_PROTOCOL\_BUFFERS} for consistency.
64\item Fix how static structure detection for the Schur eliminator logs
65 its results.
66\item Correct example code in the documentation. (Petter Strandmark)
67\item Fix \texttt{fpclassify.h} to work with the Android NDK and STLport.
68\item Fix a memory leak in the \texttt{levenber\_marquardt\_strategy\_test.cc}
69\item Fix an early return bug in the Dogleg solver. (Markus Moll)
70\item Zero initialize Jets.
71\item Moved \texttt{internal/ceres/mock\_log.h} to \texttt{internal/ceres/gmock/mock-log.h}
72\item Unified file path handling in tests.
73\item \texttt{data\_fitting.cc} includes \texttt{gflags}
74\item Renamed Ceres' Mutex class and associated macros to avoid
75 namespace conflicts.
76\item Close the BAL problem file after reading it (Markus Moll)
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070077\item Fix IsInfinite on Jets.
78\item Drop alignment requirements for Jets.
79\item Fixed Jet to integer comparison. (Keith Leung)
80\item Fix use of uninitialized arrays. (Sebastian Koch \& Markus Moll)
81\item Conditionally compile gflag dependencies.(Casey Goodlett)
Sameer Agarwal122cf832012-08-24 16:28:27 -070082\item Add \texttt{data\_fitting.cc } to the examples \texttt{CMake} file.
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070083\end{itemize}
84
Sameer Agarwal57a34582012-06-24 12:42:36 -070085\section*{1.2.3}
86\subsection{Bug Fixes}
87\begin{itemize}
88\item \texttt{suitesparse\_test} is enabled even when \texttt{-DSUITESPARSE=OFF}.
89\item \texttt{FixedArray} internal struct did not respect \texttt{Eigen}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070090 alignment requirements (Koichi Akabe \& Stephan Kassemeyer).
Sameer Agarwal57a34582012-06-24 12:42:36 -070091\item Fixed \texttt{quadratic.cc} documentation and code mismatch
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070092 (Nick Lewycky).
Sameer Agarwal57a34582012-06-24 12:42:36 -070093\end{itemize}
Keir Mierle29937702012-06-19 00:39:32 -070094\section*{1.2.2}
95\subsection{Bug Fixes}
96\begin{itemize}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -070097\item Fix constant parameter blocks, and other minor fixes (Markus Moll)
Sameer Agarwal57a34582012-06-24 12:42:36 -070098\item Fix alignment issues when combining \texttt{Jet} and
99 \texttt{FixedArray} in automatic differeniation.
100\item Remove obsolete \texttt{build\_defs} file.
Keir Mierle29937702012-06-19 00:39:32 -0700101\end{itemize}
Sameer Agarwal97fb6d92012-06-17 10:08:19 -0700102\section*{1.2.1}
103\subsection{New Features}
104\begin{itemize}
Keir Mierle64f14102012-06-18 00:57:59 -0700105\item Powell's Dogleg solver
106\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 -0700107\end{itemize}
108\subsection{Bug Fixes}
109\begin{itemize}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -0700110\item Destructor for \texttt{TrustRegionStrategy} was not virtual (Markus Moll)
111\item Invalid \texttt{DCHECK} in \texttt{suitesparse.cc} (Markus Moll)
112\item Iteration callbacks were not properly invoked (Luis Alberto Zarrabeiti)
Keir Mierle64f14102012-06-18 00:57:59 -0700113\item Logging level changes in ConjugateGradientsSolver
114\item VisibilityBasedPreconditioner setup does not account for skipped camera pairs. This was debugging code.
115\item Enable SSE support on MacOS
Sameer Agarwal3e3b8922012-07-19 10:34:16 -0700116\item \texttt{system\_test} was taking too long and too much memory (Koichi Akabe)
Sameer Agarwal97fb6d92012-06-17 10:08:19 -0700117\end{itemize}
Sameer Agarwal8ed29a72012-06-07 17:04:25 -0700118\section*{1.2.0}
119\subsection{New Features}
120\begin{itemize}
121\item \texttt{CXSparse} support.
122\item Block oriented fill reducing orderings. This
123reduces the factorization time for sparse
124\texttt{CHOLMOD} significantly.
125\item New Trust region loop with support for multiple
126trust 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 -0700127\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 -0700128\item Re-organized documentation. No new content, but better organization.
129\end{itemize}
130
131\subsection{Bug Fixes}
132\begin{itemize}
133\item Fixed integer overflow bug in \texttt{block\_random\_access\_sparse\_matrix.cc}.
134\item Renamed some macros to prevent name conflicts.
135\item Fixed incorrent input to \texttt{StateUpdatingCallback}.
136\item Fixes to AutoDiff tests.
137\item Various internal cleanups.
138\end{itemize}
139
140\section*{1.1.1}
141\subsection{Bug Fixes}
142\begin{itemize}
Sameer Agarwal3e3b8922012-07-19 10:34:16 -0700143\item Fix a bug in the handling of constant blocks. (Louis Simard)
Sameer Agarwal8ed29a72012-06-07 17:04:25 -0700144\item Add an optional lower bound to the Levenberg-Marquardt regularizer to prevent oscillating between well and ill posed linear problems.
145\item Some internal refactoring and test fixes.
146\end{itemize}
147\section{1.1.0}
148\subsection{New Features}
149\begin{itemize}
150\item New iterative linear solver for general sparse problems - \texttt{CGNR} and a block Jacobi preconditioner for it.
151\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.
152\item Automatic differentiation now supports dynamic number of residuals.
153\item Support for writing the linear least squares problems to disk in text format so that they can loaded into \texttt{MATLAB}.
154\item Linear solver results are now checked for nan and infinities.
155\item Added \texttt{.gitignore} file.
156\item A better more robust build system.
157\end{itemize}
158
159\subsection{Bug Fixes}
160\begin{itemize}
161\item Fixed a strict weak ordering bug in the schur ordering.
162\item Grammar and typos in the documents and code comments.
163\item Fixed tests which depended on exact equality between floating point values.
164\end{itemize}
165\section*{1.0.0}
Keir Mierle64f14102012-06-18 00:57:59 -0700166Initial Release.