| %%% 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} | |
| \end{document} |