2012-04-30 23:09:08 -07:00
%%% Build instructions
%%% pdflatex -shell-escape ceres && bibtex ceres && pdflatex -shell-escape ceres && pdflatex -shell-escape ceres
\documentclass [11pt,letterpaper,oneside] { memoir}
\usepackage { fouriernc}
\usepackage [T1] { fontenc}
\usepackage { minted,amsmath,amssymb,amsthm,url,booktabs}
\usepackage [pdftex] { graphicx}
\usepackage [sort&compress] { natbib}
\usepackage [breaklinks=true,letterpaper=true,colorlinks,bookmarks=false] { hyperref}
2012-06-17 10:08:19 -07:00
\usepackage { algorithm}
\usepackage { algorithmic}
2012-04-30 23:09:08 -07:00
% page dimensions
2012-05-29 23:47:57 -07:00
\addtolength { \textwidth } { 1.5in}
\addtolength { \oddsidemargin } { -0.75in}
\addtolength { \evensidemargin } { -0.75in}
\addtolength { \spinemargin } { -0.75in}
\addtolength { \foremargin } { -0.75in}
2012-04-30 23:09:08 -07:00
\setlength { \parindent } { 0.0in}
\setlength { \parskip } { 0.12in}
% Our pagestyle
\copypagestyle { ceres} { headings}
\makeevenhead { ceres} { \thepage } { } { \scshape \rightmark }
\makeoddhead { ceres} { \scshape \rightmark } { } { \thepage }
%% ceres chapter style
\makechapterstyle { ceres} { %
\renewcommand { \chapterheadstart } { } %
\renewcommand { \printchaptername } { } %
\renewcommand { \chapternamenum } { } %
\renewcommand { \printchapternum } { } %
\renewcommand { \afterchapternum } { } %
\renewcommand { \printchaptertitle } [1]{ %
\raggedright \Large \scshape \MakeLowercase { ##1} } %
\renewcommand { \afterchaptertitle } { %
\vskip \onelineskip \hrule \vskip \onelineskip } %
} %
\renewcommand { \cftchapterfont } { \normalfont } %
\renewcommand { \cftchapterpagefont } { \normalfont } %
\renewcommand { \cftchapterpresnum } { \bfseries } %
\renewcommand { \cftchapterleader } { } %
\renewcommand { \cftchapterafterpnum } { \cftparfillskip } %
%% Section title style
\setsecheadstyle { \raggedright \scshape \MakeLowercase } %
\setbeforesecskip { -\onelineskip } %
\setaftersecskip { \onelineskip } %
%% Subsection title style
\setsubsecheadstyle { \sethangfrom { \noindent ##1} \raggedright \itshape } %
\setbeforesubsecskip { -\onelineskip } %
\setaftersubsecskip { \onelineskip } %
\captiontitlefont { \small \sffamily } %
\let \caption \legend
\title { \Huge \scshape
2012-05-10 09:45:05 -07:00
\MakeLowercase { Ceres Solver: Tutorial \& Reference}
2012-04-30 23:09:08 -07:00
}
\author {
2012-05-29 23:47:57 -07:00
\scshape \MakeLowercase { Sameer Agarwal} \\ \texttt { sameeragarwal@google.com}
2012-04-30 23:09:08 -07:00
\and
\scshape \MakeLowercase { Keir Mierle} \\ \texttt { keir@google.com}
}
\checkandfixthelayout
\pagestyle { ceres}
\newcommand { \ceres } { { Ceres } }
\newcommand { \reals } { \mathbb { R} }
\def \eg { \emph { e.g. } }
\def \ie { \emph { i.e. } }
\newcommand { \glog } { \texttt { google-glog} }
\newcommand { \gflags } { \texttt { gflags} }
\newcommand { \eigen } { \texttt { Eigen3} }
\newcommand { \suitesparse } { \texttt { SuiteSparse} }
\newcommand { \cholmod } { \texttt { CHOLMOD} }
\newcommand { \amd } { \texttt { AMD} }
\newcommand { \colamd } { \texttt { COLAMD} }
\newcommand { \lapack } { \texttt { LAPACK} }
\newcommand { \blas } { \texttt { BLAS} }
\newcommand { \denseschur } { \texttt { DENSE\_ SCHUR} }
\newcommand { \sparseschur } { \texttt { SPARSE\_ SCHUR} }
2012-05-01 00:21:19 -07:00
\newcommand { \iterativeschur } { \texttt { ITERATIVE\_ SCHUR} }
2012-04-30 23:09:08 -07:00
\newcommand { \cmake } { \texttt { cmake} }
\newcommand { \protobuf } { \texttt { protobuf} }
2012-05-29 23:47:57 -07:00
\settocdepth { chapter}
2012-04-30 23:09:08 -07:00
\begin { document}
\chapterstyle { ceres}
\maketitle
\thispagestyle { empty}
\newpage
\pagestyle { ceres}
\tableofcontents
2012-05-01 00:21:19 -07:00
\newpage
2012-05-29 23:47:57 -07:00
\chapter { A Note to the Reader}
2012-05-01 00:21:19 -07:00
Building this pdf from source requires a relatively recent installation of \texttt { LaTeX} ~\footnote { \url { http://www.tug.org/texlive/} } , \texttt { minted.sty} \footnote { \url { http://code.google.com/p/minted/} } and \texttt { pygments} \footnote { \url { http://pygments.org/} } .
2012-05-29 23:47:57 -07:00
Despite our best efforts, this manual remains a work in progress and the source code for Ceres Solver remains the ultimate reference.
2012-04-30 23:09:08 -07:00
2012-06-07 17:04:25 -07:00
\input { changes}
2012-04-30 23:09:08 -07:00
\input { introduction}
\input { build}
2012-05-29 23:47:57 -07:00
%% Tutorial
\part { Tutorial}
\label { part:tutorial}
\input { nnlsq}
\input { helloworld}
\input { powell}
\input { curvefitting}
\input { bundleadjustment}
%% Reference
\part { Reference}
\label { part:reference}
\input { reference-overview}
\input { modeling}
\input { solving}
2012-04-30 23:09:08 -07:00
\input { faq}
\input { further}
\bibliographystyle { plain}
\bibliography { ceres}
\end { document}