The \eslmod{tree} module implements an object for representing
phylogenetic trees (\ccode{ESL\_TREE}). It also implements four of the
most basic distance-based methods for tree inference and clustering
algorithms (UPGMA, WPGMA, single linkage clustering, and complete
linkage clustering).

\begin{table}[hbp]
\begin{center}
{\small
\begin{tabular}{|ll|}\hline
\apisubhead{the \ccode{ESL\_TREE} object}\\
\hyperlink{func:esl_tree_Create()}{\ccode{esl\_tree\_Create()}} & Constructor.\\
\hyperlink{func:esl_tree_Destroy()}{\ccode{esl\_tree\_Destroy()}} & Destructor.\\
\apisubhead{simple tree inference/clustering algorithms}\\
\hyperlink{func:esl_tree_UPGMA()}{\ccode{esl\_tree\_UPGMA()}} & Infer a tree by UPGMA.\\
\hyperlink{func:esl_tree_WPGMA()}{\ccode{esl\_tree\_WPGMA()}} & Infer a tree by WPGMA.\\
\hyperlink{func:esl_tree_SingleLinkage()}{\ccode{esl\_tree\_SingleLinkage()}} & Infer a tree by single-linkage clustering.\\
\hyperlink{func:esl_tree_CompleteLinkage()}{\ccode{esl\_tree\_CompleteLinkage()}} & Infer a tree by complete-linkage clustering.\\
\hline
\end{tabular}
}
\end{center}
\caption{The \eslmod{tree} API. Requires \eslmod{easel}, \eslmod{dmatrix}.}
\label{tbl:tree_api}
\end{table}


\subsection{Example of using the tree API}

\input{cexcerpts/tree_example}