aboutsummaryrefslogtreecommitdiff
path: root/docs/ceres-solver.tex
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ceres-solver.tex')
-rw-r--r--docs/ceres-solver.tex132
1 files changed, 132 insertions, 0 deletions
diff --git a/docs/ceres-solver.tex b/docs/ceres-solver.tex
new file mode 100644
index 0000000..cf5e52d
--- /dev/null
+++ b/docs/ceres-solver.tex
@@ -0,0 +1,132 @@
+%%% 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}