Documentation update. Change-Id: Ic5f209da760562aa89a822f7e5853c5639a427eb
diff --git a/docs/changes.tex b/docs/changes.tex index 343ffb8..90e8089 100644 --- a/docs/changes.tex +++ b/docs/changes.tex
@@ -1,6 +1,74 @@ %!TEX root = ceres-solver.tex \chapter{Version History} +\section*{1.4.0} +\subsection{API Changes} +The new ordering API breaks existing code. Here the common case fixes. +\subsubsection{Before} +\begin{minted}[mathescape]{c++} +options.linear_solver_type = ceres::DENSE_SCHUR +options.ordering_type = ceres::SCHUR +\end{minted} +\subsubsection{After} +\begin{minted}[mathescape]{c++} +options.linear_solver_type = ceres::DENSE_SCHUR +\end{minted} +\subsubsection{Before} +\begin{minted}[mathescape]{c++} +options.linear_solver_type = ceres::DENSE_SCHUR; +options.ordering_type = ceres::USER; +for (int i = 0; i < num_points; ++i) { + options.ordering.push_back(my_points[i]) +} +for (int i = 0; i < num_cameras; ++i) { + options.ordering.push_back(my_cameras[i]) +} +options.num_eliminate_blocks = num_points; +\end{minted} +\subsubsection{After} +\begin{minted}[mathescape]{c++} +options.linear_solver_type = ceres::DENSE_SCHUR; +options.ordering = new ceres::Ordering; +for (int i = 0; i < num_points; ++i) { + options.ordering.AddParameterToGroup(my_points[i], 0); +} +for (int i = 0; i < num_cameras; ++i) { + options.ordering.AddParameterToGroup(my_cameras[i], 1); +} +\end{minted} +\subsection{New Features} +\begin{itemize} +\item A new richer, more expressive and consistent API for ordering + parameter blocks. +\item A non-linear generalization of Ruhe \& Wedin's Algorithm + II. This allows the user to use variable projection on separable and + non-separable non-linear least squares problems. With + multithreading, this results in significant improvements to the + convergence behavior of the solver at a small increase in run time. +\item An image denoising example using fields of experts. (Petter + Strandmark) +\item Defines for Ceres version and ABI version. +\item Higher precision timer code where available. (Petter Strandmark) +\item Example Makefile for users of Ceres. +\item IterationSummary now informs the user when the step is a + non-monotonic step. +\end{itemize} +\subsection{Bug Fixes} +\begin{itemize} +\item Various fixes to \texttt{nist.cc} (Markus Moll) +\item Fixed a jacobian scaling bug. +\item Numerically robust computation of \texttt{model\_cost\_change}. +\item Signed comparison compiler warning fixes (Ricardo Martin) +\item Various compiler warning fixes all over. +\item Inclusion guard fixes (Petter Strandmark) +\item Segfault in test code (Sergey Popov) +\item Replaced EXPECT/ASSERT\_DEATH with the more portable + EXPECT\_DEATH\_IF]\_SUPPORTED macros. +\item Fixed the camera projection model in Ceres' implementation of + Snavely's camera model. (Ricardo Martin) +\end{itemize} + + \section*{1.3.0} \subsection{New Features} \begin{itemize}