<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>MADlib: Modules</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<script src="../mathjax/MathJax.js">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">MADlib
   &#160;<span id="projectnumber">0.6</span> <span style="font-size:10pt; font-style:italic"><a href="../latest/./modules.html"> A newer version is available</a></span>
   </div>
   <div id="projectbrief">User Documentation</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="dynsections.js"></script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('modules.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">Modules</div>  </div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all modules:</div><ul>
<li><a class="el" href="group__grp__modeling.html">Data Modeling</a><ul>
<li><a class="el" href="group__grp__suplearn.html">Supervised Learning</a><ul>
<li><a class="el" href="group__grp__bayes.html">Naive Bayes Classification</a></li>
<li><a class="el" href="group__grp__linreg.html">Linear Regression</a></li>
<li><a class="el" href="group__grp__logreg.html">Logistic Regression</a></li>
<li><a class="el" href="group__grp__mlogreg.html">Multinomial Logistic Regression</a></li>
<li><a class="el" href="group__grp__validation.html">Cross Validation</a></li>
<li><a class="el" href="group__grp__elasticnet.html">Elastic Net Regularization</a></li>
<li><a class="el" href="group__grp__dectree.html">Decision Tree</a></li>
<li><a class="el" href="group__grp__rf.html">Random Forest</a></li>
<li><a class="el" href="group__grp__linear__svm.html">Linear Support Vector Machines</a></li>
<li><a class="el" href="group__grp__kernmach.html">Support Vector Machines</a></li>
<li><a class="el" href="group__grp__cox__prop__hazards.html">Cox-Proportional Hazards Regression</a></li>
<li><a class="el" href="group__grp__crf.html">Conditional Random Field</a></li>
</ul>
</li>
<li><a class="el" href="group__grp__unsuplearn.html">Unsupervised Learning</a><ul>
<li><a class="el" href="group__grp__assoc__rules.html">Association Rules</a></li>
<li><a class="el" href="group__grp__kmeans.html">k-Means Clustering</a></li>
<li><a class="el" href="group__grp__lmf.html">Low-rank Matrix Factorization</a></li>
<li><a class="el" href="group__grp__svdmf.html">SVD Matrix Factorisation</a></li>
<li><a class="el" href="group__grp__lda.html">Latent Dirichlet Allocation</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="el" href="group__grp__desc__stats.html">Descriptive Statistics</a><ul>
<li><a class="el" href="group__grp__sketches.html">Sketch-based Estimators</a><ul>
<li><a class="el" href="group__grp__countmin.html">CountMin (Cormode-Muthukrishnan)</a></li>
<li><a class="el" href="group__grp__fmsketch.html">FM (Flajolet-Martin)</a></li>
<li><a class="el" href="group__grp__mfvsketch.html">MFV (Most Frequent Values)</a></li>
</ul>
</li>
<li><a class="el" href="group__grp__profile.html">Profile</a></li>
<li><a class="el" href="group__grp__summary.html">Summary</a></li>
<li><a class="el" href="group__grp__quantile.html">Quantile</a></li>
</ul>
</li>
<li><a class="el" href="group__grp__stats.html">Inferential Statistics</a><ul>
<li><a class="el" href="group__grp__stats__tests.html">Hypothesis Tests</a></li>
</ul>
</li>
<li><a class="el" href="group__grp__support.html">Support Modules</a><ul>
<li><a class="el" href="group__grp__array.html">Array Operations</a></li>
<li><a class="el" href="group__grp__cg.html">Conjugate Gradient</a></li>
<li><a class="el" href="group__grp__linalg.html">Linear-Algebra Operations</a></li>
<li><a class="el" href="group__grp__svec.html">Sparse Vectors</a></li>
<li><a class="el" href="group__grp__prob.html">Probability Functions</a></li>
<li><a class="el" href="group__grp__sample.html">Random Sampling</a></li>
<li><a class="el" href="group__grp__compatibility.html">Compatibility</a></li>
<li><a class="el" href="group__grp__utilities.html">DB Administrator Utilities</a></li>
</ul>
</li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>


    <li class="footer">Generated on Tue Apr 2 2013 14:57:03 for MADlib by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
