| %%% 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} |
| \usepackage{algorithm} |
| \usepackage{algorithmic} |
| |
| % page dimensions |
| \addtolength{\textwidth}{1.5in} |
| \addtolength{\oddsidemargin}{-0.75in} |
| \addtolength{\evensidemargin}{-0.75in} |
| \addtolength{\spinemargin}{-0.75in} |
| \addtolength{\foremargin}{-0.75in} |
| \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 |
| \MakeLowercase{Ceres Solver: Tutorial \& Reference} |
| } |
| \author{ |
| \scshape\MakeLowercase{Sameer Agarwal} \\ \texttt{sameeragarwal@google.com} |
| \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}} |
| \newcommand{\iterativeschur}{\texttt{ITERATIVE\_SCHUR}} |
| \newcommand{\cmake}{\texttt{cmake}} |
| \newcommand{\protobuf}{\texttt{protobuf}} |
| \settocdepth{chapter} |
| |
| \begin{document} |
| \chapterstyle{ceres} |
| \maketitle |
| \thispagestyle{empty} |
| \newpage |
| \pagestyle{ceres} |
| \tableofcontents |
| \newpage |
| |
| \chapter{A Note to the Reader} |
| 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/}}. |
| |
| Despite our best efforts, this manual remains a work in progress and the source code for Ceres Solver remains the ultimate reference. |
| |
| \input{changes} |
| \input{introduction} |
| \input{build} |
| |
| %% 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} |
| |
| \input{faq} |
| \input{further} |
| \bibliographystyle{plain} |
| \bibliography{ceres-solver} |
| \end{document} |