blob: e9ed7b8bc575a9db1ff681646478a487fb2b0201 [file] [log] [blame]
\documentclass[letterpaper,11pt]{scrreprt}
\usepackage[american]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[top=1in,bottom=1in,left=1in,right=1in]{geometry}
\usepackage{lmodern}
\usepackage[sumlimits]{amsmath}
\usepackage{amssymb}
\usepackage{relsize}
\usepackage[hyperref]{ntheorem}
\usepackage[
bookmarks,
colorlinks=false,
breaklinks=true,
linkcolor=blue,
citecolor=blue,
pagebackref=false,
pdftitle={MADlib Design Document},
pdfauthor={Predictive Analytics Team, Pivotal Inc.},
pdfsubject={},
pdfkeywords={}
]{hyperref}
\usepackage{csquotes} % Strongly recommended for biblatex
\usepackage[
backend=bibtex,
maxnames=2,
maxbibnames=20,
firstinits=true
]{biblatex}
\usepackage{scrpage2} % Headers and footers
\usepackage{scrhack}
\usepackage{color} % Colors, possibly only for \todo
\usepackage{enumitem} % enumerate environment
\usepackage{ctable}
\usepackage{tabularx}
\usepackage{xspace} % Correct spaces after \newcommand definitions
\usepackage[noend]{algpseudocode} % algorithm environment
\usepackage{listings} % Code snippets
\usepackage{bbding}
% BEGIN Doc Layout
\allowdisplaybreaks[3]
\pagestyle{scrheadings}
\automark[chapter]{section}
\setkomafont{disposition}{\normalcolor\bfseries}
\setkomafont{descriptionlabel}{\bfseries}
\setkomafont{captionlabel}{\usekomafont{disposition}}
\setlength{\arrayrulewidth}{.5pt}
\numberwithin{equation}{section}
\renewcommand{\theenumi}{\roman{enumi}}
\renewcommand{\labelenumi}{\theenumi)}
\newcommand{\otoprule}{\midrule[\heavyrulewidth]}
\setcounter{secnumdepth}{3}
\makeatletter
% Algorithms are expected to have an optional argument of form
% FunctionName$(ArgumentList)$, e.g., DiscreteSample$(A, w)$
\def\internal@funcName#1$(#2)${#1}
\newcommand\funcName[1]{\internal@funcName #1}
\newtheoremstyle{algorithm}
{\item[\rlap{\vbox{\hbox{\hskip\labelsep \theorem@headerfont
##1\ ##2\theorem@separator}\hbox{\strut}}}]}%
{\item[\rlap{\vbox{\hbox{\hskip\labelsep {\theorem@headerfont
##1}\ \normalfont\texttt{##3}{\theorem@headerfont\theorem@separator}}\hbox{\strut}}}]%
\def\@currentlabel{\texttt{\funcName{##3}}}}
\makeatother
\makeatletter
% Also display JSTOR in small caps
% http://sourceforge.net/tracker/index.php?func=detail&aid=3152938&group_id=244752&atid=1126006
\DeclareFieldFormat{eprint:arxiv}{%
\textsc{arXiv}\addcolon
\ifhyperref
{\href{http://arxiv.org/\abx@arxivpath/#1}{%
\nolinkurl{#1}%
\iffieldundef{eprintclass}
{}
{\addspace\texttt{\mkbibbrackets{\thefield{eprintclass}}}}}}
{\nolinkurl{#1}
\iffieldundef{eprintclass}
{}
{\addspace\texttt{\mkbibbrackets{\thefield{eprintclass}}}}}}
\DeclareFieldFormat{eprint:jstor}{%
\mkbibacro{JSTOR}\addcolon\space
\ifhyperref
{\href{http://www.jstor.org/stable/#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
% Some conferences do not have DOIs for their papers, but they do get
% IDs in the ACM Digital Library. E.g., SODA papers.
\DeclareFieldFormat{eprint:acm}{%
\mkbibacro{ACM}\addcolon\space
\ifhyperref
{\href{http://dl.acm.org/citation.cfm?id=#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
\makeatother
\newlist{moduleinfo}{description}{2}
\setlist[moduleinfo]{style=multiline,labelindent=\leftmargini,leftmargin=3cm,rightmargin=\leftmargini,font=\bfseries}
\newlist{modulehistory}{description}{2}
\setlist[modulehistory]{style=multiline,leftmargin=1.1cm}
% END Doc Layout
% BEGIN General Definitions
\newcommand{\todo}[1]{\textbf{\color{red}#1}}
\newcommand{\specialcell}[3][t]{%
\begin{tabular}[#1]{@{}#2@{}}#3\end{tabular}}
% BEGIN Mathematical Definition
% Space (only) in displaymath (e.g., between mathematical expression and punctuation mark)
\newcommand{\SiM}{\mathchoice{\,}{}{}{}}
% END Mathematical Operators
% BEGIN URLs
\newcommand{\mailto}[1]{\href{mailto:#1}{\nolinkurl{#1}}}
\newcommand{\doi}[1]{DOI: \href{http://dx.doi.org/#1}{\nolinkurl{#1}}}
% END URLs
\makeatletter
% BEGIN Mathematical Definitions
% BEGIN Set Symbols
\newcommand{\setsymbol}[1]{\mathbb{#1}}
\newcommand{\N}{\@ifstar{\setsymbol{N}_0}{\setsymbol{N}}}
\newcommand{\R}{\setsymbol{R}}
\newcommand{\Nupto}{\@ifstar{\Nupto@star}{\Nupto@nostar}}
\newcommand{\Nupto@star}[1]{[#1]_0}
\newcommand{\Nupto@nostar}[1]{[#1]}
% END Set Symbols
\renewcommand{\vec}[1]{\ensuremath{\boldsymbol{#1}}}
% shortcut for partial derivatives
\newcommand{\pder}[2][]{\frac{\partial#1}{\partial#2}}
% END Mathematical Definitions
\makeatother
\renewcommand{\vec}[1]{\ensuremath{\boldsymbol{#1}}}
\newcommand{\enumref}[1]{(\ref{#1})}
\makeatletter
\newcommand{\symlabel}[2]{\def\@currentlabel{\texttt{#1}}\texttt{#1}\label{#2}}
\makeatother
\newcommand{\Warning}[1]{\marginpar[\HandRight]{\HandLeft}\textbf{#1}}
% BEGIN Algorithms
\theoremstyle{algorithm}
\theorembodyfont{\upshape}
\newtheorem{algorithm}{Algorithm}[section]
\newlength{\alglabelwidth}
\newcommand{\alginput}[1]{%
\par\noindent%
\settowidth{\alglabelwidth}{\emph{Output:}}%
\makebox[\alglabelwidth][l]{\emph{Input:}} \begin{tabular}[t]{l} #1 \end{tabular}}
\newcommand{\algoutput}[1]{%
\par\noindent%
\settowidth{\alglabelwidth}{\emph{Output:}}%
\makebox[\alglabelwidth][l]{\emph{Output:}} \begin{tabular}[t]{l} #1 \end{tabular}}
\newcommand{\algprecond}[1]{%
\par\noindent\textit{Initialization/Precondition: #1}}
\newcommand{\set}{\leftarrow}
\DeclareMathOperator{\random}{random}
\newcommand{\dist}{\ensuremath{\mathit{dist}}}
\newcommand{\List}{\mathrm{List}}
\newcommand{\Sample}{\mathit{Sample}}
\algblockdefx[With]{With}{EndWith}%
[1]{\textbf{with} #1 \textbf{do}}%
[0]{End}
\algnotext[With]{EndWith}
% END Algorithms
% BEGIN lstlisting environments
\lstset{
basicstyle=\ttfamily\footnotesize, % the size of the fonts that are used for the code
numbers=left, % where to put the line-numbers
numberblanklines=false
numbersep=1em, % how far the line-numbers are from the code
basewidth=0.52em,
tabsize=4, % sets default tabsize to 2 spaces
xleftmargin=\leftmargini
}
\renewcommand*\thelstnumber{\the\value{lstnumber}:}
% END lstlisting environments
\lstnewenvironment{sql}[1][]{\lstset{language=SQL,gobble=4,emphstyle=\textit,#1}}{}
\lstnewenvironment{cpp}[1][]{\lstset{language=C++,gobble=4,emphstyle=\textit,#1}}{}
\lstnewenvironment{cppsnippet}[1][]{\lstset{basicstyle=\ttfamily,language=C++,stepnumber=0,gobble=8,emphstyle=\textit,xleftmargin=0pt,#1}}{}
% END General Definitions
\bibliography{../literature.bib}
% BEGIN Preamble
\title{%
MADlib Design Document%
}
\newcommand{\bR}{\mathcal{R}}
\newcommand{\norm}[1]{\| #1 \|_2}
\begin{document}
\maketitle
\tableofcontents
\input{other-chapters/abstraction-layers}
\input{modules/sampling}
\input{modules/matrix-operations}
\input{modules/linear-systems}
\input{modules/svd}
\input{modules/regression}
\input{modules/k-means}
\input{modules/convex-programming}
\input{modules/low-rank-matrix-decomposition}
\input{modules/lda}
\input{modules/crf}
\input{modules/ARIMA}
\input{modules/cox-proportional-hazards}
\input{modules/sandwich-estimators}
\input{modules/glm}
\input{modules/decision-trees}
\input{modules/random-forests}
\input{modules/SVM}
\input{modules/graph}
\input{modules/neural-network}
\printbibliography
\end{document}