http://git-wip-us.apache.org/repos/asf/madlib-site/blob/af0e5f14/docs/v1.15.1/group__grp__validation.html
----------------------------------------------------------------------
diff --git a/docs/v1.15.1/group__grp__validation.html 
b/docs/v1.15.1/group__grp__validation.html
new file mode 100644
index 0000000..6f44ea9
--- /dev/null
+++ b/docs/v1.15.1/group__grp__validation.html
@@ -0,0 +1,273 @@
+<!-- HTML header for doxygen 1.8.4-->
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="keywords" content="madlib,postgres,greenplum,machine learning,data 
mining,deep learning,ensemble methods,data science,market basket 
analysis,affinity analysis,pca,lda,regression,elastic net,huber 
white,proportional hazards,k-means,latent dirichlet allocation,bayes,support 
vector machines,svm"/>
+<title>MADlib: Cross Validation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script>
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
+    jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" async 
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js";></script>
+<!-- hack in the navigation tree -->
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
+<!-- google analytics -->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+  ga('create', 'UA-45382226-1', 'madlib.apache.org');
+  ga('send', 'pageview');
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><a href="http://madlib.apache.org";><img alt="Logo" 
src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">
+   <span id="projectnumber">1.15.1</span>
+   </div>
+   <div id="projectbrief">User Documentation for Apache MADlib</div>
+  </td>
+   <td>        <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>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+$(document).ready(function(){initNavTree('group__grp__validation.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</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>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Cross Validation<div class="ingroups"><a class="el" 
href="group__grp__mdl.html">Model Selection</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="toc"><b>Contents</b> <ul>
+<li>
+<a href="#cvfunction">Cross-Validation Function</a> </li>
+<li>
+<a href="#examples">Examples</a> </li>
+<li>
+<a href="#notes">Notes</a> </li>
+<li>
+<a href="#background">Technical Background</a> </li>
+<li>
+<a href="#related">Related Topics</a> </li>
+</ul>
+</div><p>Estimates the fit of a predictive model given a data set and 
specifications for the training, prediction, and error estimation functions.</p>
+<p>Cross validation, sometimes called rotation estimation, is a technique for 
assessing how the results of a statistical analysis will generalize to an 
independent data set. It is mainly used in settings where the goal is 
prediction, and you want to estimate how accurately a predictive model will 
perform in practice.</p>
+<p>The cross-validation function provided by this module is very flexible and 
can work with algorithms you want to cross validate, including algorithms you 
write yourself. Among the inputs to the cross-validation function are 
specifications of the modelling, prediction, and error metric functions. These 
three-part specifications include the name of the function, an array of 
arguments to pass to the function, and an array of the data types of the 
arguments. This makes it possible to use functions from other MADlib modules or 
user-defined functions that you supply.</p>
+<ul>
+<li>The modelling (training) function takes in a given data set with 
independent and dependent variables and produces a model, which is stored in an 
output table.</li>
+<li>The prediction function takes in the model generated by the modelling 
function and a different data set with independent variables, and produces a 
prediction of the dependent variables based on the model, which is stored in an 
output table. The prediction function should take a unique ID column name in 
the data table as one of the inputs, so that the prediction result can be 
compared with the validation values. Note: Prediction function in some MADlib 
modules do not save results into an output table. These prediction functions 
are not suitable for cross-validation.</li>
+<li>The error metric function compares the prediction results with the known 
values of the dependent variables in the data set that was fed into the 
prediction function. It computes the error metric using the specified error 
metric function, storing the results in a table.</li>
+</ul>
+<p>Other inputs include the output table name, k value for the k-fold cross 
validation, and how many folds to try. For example, you can choose to run a 
simple validation instead of a full cross validation.</p>
+<p><a class="anchor" id="cvfunction"></a></p><dl class="section 
user"><dt>Cross-Validation Function</dt><dd></dd></dl>
+<pre class="syntax">
+cross_validation_general( modelling_func,
+                          modelling_params,
+                          modelling_params_type,
+                          param_explored,
+                          explore_values,
+                          predict_func,
+                          predict_params,
+                          predict_params_type,
+                          metric_func,
+                          metric_params,
+                          metric_params_type,
+                          data_tbl,
+                          data_id,
+                          id_is_random,
+                          validation_result,
+                          data_cols,
+                          fold_num
+                        )</pre><p> <b>Arguments</b> </p><dl class="arglist">
+<dt>modelling_func </dt>
+<dd>VARCHAR. The name of the function that trains the model. </dd>
+<dt>modelling_params </dt>
+<dd>VARCHAR[]. An array of parameters to supply to the modelling function. 
</dd>
+<dt>modelling_params_type </dt>
+<dd>VARCHAR[]. An array of data type names for each of the parameters supplied 
to the modelling function. </dd>
+<dt>param_explored </dt>
+<dd>VARCHAR. The name of the parameter that will be checked to find the 
optimum value. The name must appear in the <em>modelling_params</em> array. 
</dd>
+<dt>explore_values </dt>
+<dd>VARCHAR. The name of the parameter whose values are to be studied. </dd>
+<dt>predict_func </dt>
+<dd>VARCHAR. The name of the prediction function. </dd>
+<dt>predict_params </dt>
+<dd>VARCHAR[]. An array of parameters to supply to the prediction function. 
</dd>
+<dt>predict_params_type </dt>
+<dd>VARCHAR[]. An array of data type names for each of the parameters supplied 
to the prediction function. </dd>
+<dt>metric_func </dt>
+<dd>VARCHAR. The name of the function for measuring errors. </dd>
+<dt>metric_params </dt>
+<dd>VARCHAR[]. An array of parameters to supply to the error metric function. 
</dd>
+<dt>metric_params_type </dt>
+<dd>VARCHAR[]. An array of data type names for each of the parameters supplied 
to the metric function. </dd>
+<dt>data_tbl </dt>
+<dd>VARCHAR. The name of the data table that will be split into training and 
validation parts. </dd>
+<dt>data_id </dt>
+<dd><p class="startdd">VARCHAR. The name of the column containing a unique ID 
associated with each row, or NULL if the table has no such column.</p>
+<p class="enddd">Ideally, the data set has a unique ID for each row, so that 
it is easier to partition the data set into the training part and the 
validation part. Set the <em>id_is_random</em> argument to inform the 
cross-validation function whether the ID value is randomly assigned to each 
row. If it is not randomly assigned, the cross-validation function generates a 
random ID for each row.  </p>
+</dd>
+<dt>id_is_random </dt>
+<dd>BOOLEAN. TRUE if the provided ID is randomly assigned to each row. </dd>
+<dt>validation_result </dt>
+<dd>VARCHAR. The name of the table to store the output of the cross-validation 
function. The output table has the following columns: <table class="output">
+<tr>
+<th>param_explored </th><td>The name of the parameter checked to find the 
optimum value. This is the same name specified in the <em>param_explored</em> 
argument of the <em><a class="el" 
href="cross__validation_8sql__in.html#a2a7791b05f51e8748ab7b6ccf328a7e2">cross_validation_general()</a></em>
 function.  </td></tr>
+<tr>
+<th>average error </th><td>The average of the errors computed by the error 
metric function.  </td></tr>
+<tr>
+<th>standard deviation of error </th><td>The standard deviation of the errors. 
 </td></tr>
+</table>
+</dd>
+<dt>data_cols </dt>
+<dd><p class="startdd">A comma-separated list of names of data columns to use 
in the calculation. When its value is NULL, the function will automatically 
figure out all the column names of the data table. This is only used if the 
<em>data_id</em> argument is NULL, otherwise it is ignored.</p>
+<p>If the data set has no unique ID for each row, the cross-validation 
function copies the data set to a temporary table with a randomly assigned ID 
column. Setting this argument to the list of independent and dependent 
variables that are to be used in the calculation minimizes the copying workload 
by only copying the required data.</p>
+<p class="enddd">The new temporary table is dropped after the computation has 
finished.  </p>
+</dd>
+<dt><em>fold_num</em> </dt>
+<dd>INTEGER, default: 10. Value of k. How many folds validation? Each 
validation uses 1/fold_num fraction of the data for validation. </dd>
+</dl>
+<p>The parameter arrays for the modelling, prediction and metric functions can 
include the following special keywords:</p>
+<ul>
+<li><em>%data%</em> &ndash; The argument position for training/validation 
data</li>
+<li><em>%model%</em> &ndash; The argument position for the output/input of 
modelling/prediction function</li>
+<li><em>%id%</em> &ndash; The argument position of the unique ID column 
(user-provided or generated by the cross-validation function, as described 
above)</li>
+<li><em>%prediction%</em> &ndash; The argument position for the output/input 
of prediction/metric function</li>
+<li><em>%error%</em> &ndash; The argument position for the output of the 
metric function</li>
+</ul>
+<p><b>Note</b>: If the argument <em>explore_values</em> is NULL or has zero 
length, then the cross-validation function will only run a data folding.</p>
+<p><a class="anchor" id="examples"></a></p><dl class="section 
user"><dt>Examples</dt><dd></dd></dl>
+<p>This example uses cross validation with an elastic net regression to find 
the best value of the regularization parameter.</p>
+<ol type="1">
+<li>Populate the table <code>cvtest</code> with 101 dimensional independent 
variables <code>val</code>, and dependent variable <code>dep</code>.</li>
+<li>Run the general cross-validation function. <pre class="example">
+SELECT madlib.cross_validation_general
+    ( 'madlib.elastic_net_train',
+        '{%data%, %model%, dep, indep, gaussian, 1, lambda, TRUE, NULL, fista,
+          "{eta = 2, max_stepsize = 2, use_active_set = t}",
+          NULL, 2000, 1e-6}'::varchar[],
+        '{varchar, varchar, varchar, varchar, varchar, double precision,
+          double precision, boolean, varchar, varchar, varchar, varchar,
+          integer, double precision}'::varchar[],
+      'lambda',
+      '{0.02, 0.04, 0.06, 0.08, 0.10, 0.12, 0.14, 0.16, 0.18, 0.20,
+        0.22, 0.24, 0.26, 0.28, 0.30, 0.32, 0.34, 0.36}'::varchar[],
+      'madlib.elastic_net_predict',
+        '{%model%, %data%, %id%, %prediction%}'::varchar[],
+        '{text, text, text, text}'::varchar[],
+      'madlib.mse_error',
+        '{%prediction%, %data%, %id%, dep, %error%}'::varchar[],
+        '{varchar, varchar, varchar, varchar, varchar}'::varchar[],
+      'cvtest',
+      NULL::varchar,
+      FALSE,
+      'valid_rst_tbl',
+      '{indep, dep}'::varchar[],
+      10
+);
+</pre></li>
+</ol>
+<p><a class="anchor" id="notes"></a></p><dl class="section 
user"><dt>Notes</dt><dd></dd></dl>
+<p><em>max_locks_per_transaction</em>, which usually is set to the default 
value of 64, limits the number of tables that can be dropped inside a single 
transaction (the cross-validation function). Thus, the number of different 
values of <em>param_explored</em> (or the length of the 
<em>explored_values</em> array) cannot be too large. For 10-fold cross 
validation, the limit of <code>length(<em>explored_values</em>)</code> is 
around 40. If the limit is exceeded, you may get an "out of shared memory" 
error because <em>max_locks_per_transaction</em> is exceeded.</p>
+<p>One way to overcome this limitation is to run the cross-validation function 
multiple times, with each run covering a different region of values of the 
parameter.</p>
+<p>In the future, MADlib may implement cross-validation functions for each 
individual applicable module, where it is possible to optimize the calculation 
to avoid dropping tables and prevent exceeding the 
<em>max_locks_per_transaction</em> limitation. Since module-specific 
cross-validation functions depend upon the implementation details of the 
modules to perform the optimization, they will not be as flexible as the 
generalized cross-validation function provided here.</p>
+<p><a class="anchor" id="background"></a></p><dl class="section 
user"><dt>Technical Background</dt><dd></dd></dl>
+<p>One round of cross validation involves partitioning a sample of data into 
complementary subsets, performing the analysis on one subset (called the 
training set), and validating the analysis on the other subset (called the 
validation set or testing set). To reduce variability, multiple rounds of cross 
validation are performed using different partitions, and the validation results 
are averaged over the rounds.</p>
+<p>In k-fold cross validation, the original sample is randomly partitioned 
into k equal sized subsamples. Of the k subsamples, a single subsample is 
retained as the validation data for testing the model, and the remaining 
k&minus;1 subsamples are used as training data. The cross-validation process is 
repeated k times (the folds), with each of the k subsamples used exactly once 
as the validation data. The k results from the folds can be averaged (or 
otherwise combined) to produce a single estimation. The advantage of this 
method over repeated random sub-sampling is that all observations are used for 
both training and validation, and each observation is used for validation 
exactly once. 10-fold cross validation is commonly used, but in general k 
remains an unfixed parameter.</p>
+<p><a class="anchor" id="related"></a></p><dl class="section user"><dt>Related 
Topics</dt><dd></dd></dl>
+<p>File <a class="el" href="cross__validation_8sql__in.html" title="SQL 
functions for cross validation. ">cross_validation.sql_in</a> documenting the 
SQL functions. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated on Mon Oct 15 2018 11:24:30 for MADlib by
+    <a href="http://www.doxygen.org/index.html";>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/madlib-site/blob/af0e5f14/docs/v1.15.1/group__grp__vec2cols.html
----------------------------------------------------------------------
diff --git a/docs/v1.15.1/group__grp__vec2cols.html 
b/docs/v1.15.1/group__grp__vec2cols.html
new file mode 100644
index 0000000..b10ac23
--- /dev/null
+++ b/docs/v1.15.1/group__grp__vec2cols.html
@@ -0,0 +1,339 @@
+<!-- HTML header for doxygen 1.8.4-->
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="keywords" content="madlib,postgres,greenplum,machine learning,data 
mining,deep learning,ensemble methods,data science,market basket 
analysis,affinity analysis,pca,lda,regression,elastic net,huber 
white,proportional hazards,k-means,latent dirichlet allocation,bayes,support 
vector machines,svm"/>
+<title>MADlib: Vector to Columns</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script>
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
+    jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" async 
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js";></script>
+<!-- hack in the navigation tree -->
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
+<!-- google analytics -->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+  ga('create', 'UA-45382226-1', 'madlib.apache.org');
+  ga('send', 'pageview');
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><a href="http://madlib.apache.org";><img alt="Logo" 
src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">
+   <span id="projectnumber">1.15.1</span>
+   </div>
+   <div id="projectbrief">User Documentation for Apache MADlib</div>
+  </td>
+   <td>        <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>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+$(document).ready(function(){initNavTree('group__grp__vec2cols.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</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>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Vector to Columns<div class="ingroups"><a class="el" 
href="group__grp__other__functions.html">Utilities</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="toc"><b>Contents</b> <ul>
+<li class="level1">
+<a href="#vec2cols_syntax">Syntax</a> </li>
+<li class="level1">
+<a href="#vec2cols_usage">Usage</a> </li>
+<li class="level1">
+<a href="#vec2cols_example">Examples</a> </li>
+</ul>
+</div><dl class="section user"><dt>About</dt><dd>Converts a feature array in a 
single column into multiple columns. This process can be used to reverse the 
function cols2vec.</dd></dl>
+<p>Given a table with a column of type array, this function will create an 
output table that splits this array into multiple columns, one per array 
element. It includes the option to name the new feature columns, and to include 
columns from the original table in the output.</p>
+<p><a class="anchor" id="vec2cols_usage"></a></p><dl class="section 
user"><dt>Usage</dt><dd></dd></dl>
+<pre class="syntax">
+vec2cols(
+    source_table,
+    output_table,
+    vector_col,
+    feature_names,
+    cols_to_output
+)
+</pre><p><b>Arguments</b> </p><dl class="arglist">
+<dt>source_table </dt>
+<dd><p class="startdd">TEXT. Name of the table containing the source data..</p>
+<p class="enddd"></p>
+</dd>
+<dt>output_table </dt>
+<dd><p class="startdd">TEXT. Name of the generated table containing the 
output. If a table with the same name already exists, an error will be 
returned.</p>
+<p class="enddd"></p>
+</dd>
+<dt>vector_col </dt>
+<dd><p class="startdd">TEXT. Name of the column containing the feature array. 
Must be a one-dimensional array.</p>
+<p class="enddd"></p>
+</dd>
+<dt>feature_names (optional) </dt>
+<dd>TEXT[]. Array of names associated with the feature array. Note that this 
array exists in the summary table created by the function 'cols2vec'. If the 
'feature_names' array is not specified, column names will be automatically 
generated of the form 'f1, f2, ...fn'. <dl class="section 
note"><dt>Note</dt><dd>If you specify the 'feature_names' parameter, you will 
get exactly that number of feature columns in the 'output_table'. It means 
feature arrays from the 'vector_col' may be padded or truncated, if a 
particular feature array size does not match the target number of feature 
columns. <br />
+<br />
+If you do not specify the 'feature names' parameter, the number of feature 
columns generated in the 'output_table' will be the maximum array size from 
'vector_col'. Feature arrays that are less than this maximum will be 
padded.</dd></dl>
+</dd>
+<dt>cols_to_output (optional) </dt>
+<dd>TEXT, default NULL. Comma-separated string of column names from the source 
table to keep in the output table, in addition to the feature columns. To keep 
all columns from the source table, use '*'. The total number of columns in a 
table cannot exceed the PostgreSQL limits.  </dd>
+</dl>
+<p><b>Output table</b> <br />
+ The output table produced by the vec2cols function contains the following 
columns: </p><table class="output">
+<tr>
+<th>&lt;...&gt; </th><td>Columns from source table, depending on which ones 
are kept (if any).   </td></tr>
+<tr>
+<th>feature columns </th><td>Columns for each of the features in 'vector_col'. 
Column type will depend on the feature array type in the source table. Column 
naming will depend on whether the parameter 'feature_names' is used.  </td></tr>
+</table>
+<p><a class="anchor" id="vec2cols_example"></a></p><dl class="section 
user"><dt>Examples</dt><dd><ol type="1">
+<li>Load sample data: <pre class="example">
+DROP TABLE IF EXISTS golf CASCADE;
+CREATE TABLE golf (
+    id integer NOT NULL,
+    "OUTLOOK" text,
+    temperature double precision,
+    humidity double precision,
+    "Temp_Humidity" double precision[],
+    clouds_airquality text[],
+    windy boolean,
+    class text,
+    observation_weight double precision
+);
+INSERT INTO golf VALUES
+(1,'sunny', 85, 85, ARRAY[85, 85],ARRAY['none', 'unhealthy'], 'false','Don''t 
Play', 5.0),
+(2, 'sunny', 80, 90, ARRAY[80, 90], ARRAY['none', 'moderate'], 'true', 'Don''t 
Play', 5.0),
+(3, 'overcast', 83, 78, ARRAY[83, 78], ARRAY['low', 'moderate'], 'false', 
'Play', 1.5),
+(4, 'rain', 70, 96, ARRAY[70, 96], ARRAY['low', 'moderate'], 'false', 'Play', 
1.0),
+(5, 'rain', 68, 80, ARRAY[68, 80], ARRAY['medium', 'good'], 'false', 'Play', 
1.0),
+(6, 'rain', 65, 70, ARRAY[65, 70], ARRAY['low', 'unhealthy'], 'true', 'Don''t 
Play', 1.0),
+(7, 'overcast', 64, 65, ARRAY[64, 65], ARRAY['medium', 'moderate'], 'true', 
'Play', 1.5),
+(8, 'sunny', 72, 95, ARRAY[72, 95], ARRAY['high', 'unhealthy'], 'false', 
'Don''t Play', 5.0),
+(9, 'sunny', 69, 70, ARRAY[69, 70], ARRAY['high', 'good'], 'false', 'Play', 
5.0),
+(10, 'rain', 75, 80, ARRAY[75, 80], ARRAY['medium', 'good'], 'false', 'Play', 
1.0),
+(11, 'sunny', 75, 70, ARRAY[75, 70], ARRAY['none', 'good'], 'true', 'Play', 
5.0),
+(12, 'overcast', 72, 90, ARRAY[72, 90], ARRAY['medium', 'moderate'], 'true', 
'Play', 1.5),
+(13, 'overcast', 81, 75, ARRAY[81, 75], ARRAY['medium', 'moderate'], 'false', 
'Play', 1.5),
+(14, 'rain', 71, 80, ARRAY[71, 80], ARRAY['low', 'unhealthy'], 'true', 'Don''t 
Play', 1.0);
+</pre></li>
+<li>Split the column "clouds_airquality" into new columns called "clouds" and 
"air_quality". Also keep columns id and "OUTLOOK" from the source table <pre 
class="example">
+DROP TABLE IF EXISTS vec2cols_result;
+SELECT madlib.vec2cols(
+    'golf',                           -- source table
+    'vec2cols_result',                -- output table
+    'clouds_airquality',              -- column with array entries to split
+    ARRAY['clouds', 'air_quality'],   -- feature names
+    'id, "OUTLOOK"'                   -- columns to keep from source table
+);
+SELECT * FROM vec2cols_result ORDER BY id;
+</pre> <pre class="result">
+ id | OUTLOOK  | clouds | air_quality
+----+----------+--------+-------------
+  1 | sunny    | none   | unhealthy
+  2 | sunny    | none   | moderate
+  3 | overcast | low    | moderate
+  4 | rain     | low    | moderate
+  5 | rain     | medium | good
+  6 | rain     | low    | unhealthy
+  7 | overcast | medium | moderate
+  8 | sunny    | high   | unhealthy
+  9 | sunny    | high   | good
+ 10 | rain     | medium | good
+ 11 | sunny    | none   | good
+ 12 | overcast | medium | moderate
+ 13 | overcast | medium | moderate
+ 14 | rain     | low    | unhealthy
+(14 rows)
+</pre></li>
+<li>Similar to the previous example, except now we keep all columns from 
source table and do not specify the feature names, so that default names are 
created. <pre class="example">
+DROP TABLE IF EXISTS vec2cols_result;
+SELECT madlib.vec2cols(
+    'golf',                       -- source table
+    'vec2cols_result',            -- output table
+    'clouds_airquality',          -- column with array entries to split
+    NULL,                         -- feature names
+    '*'                           -- columns to keep from source table
+);
+SELECT * FROM vec2cols_result ORDER BY id;
+</pre> <pre class="result">
+ id | OUTLOOK  | temperature | humidity | Temp_Humidity | clouds_airquality | 
windy |   class    | observation_weight |   f1   |    f2
+----+----------+-------------+----------+---------------+-------------------+-------+------------+--------------------+--------+-----------
+  1 | sunny    |          85 |       85 | {85,85}       | {none,unhealthy}  | 
f     | Don't Play |                  5 | none   | unhealthy
+  2 | sunny    |          80 |       90 | {80,90}       | {none,moderate}   | 
t     | Don't Play |                  5 | none   | moderate
+  3 | overcast |          83 |       78 | {83,78}       | {low,moderate}    | 
f     | Play       |                1.5 | low    | moderate
+  4 | rain     |          70 |       96 | {70,96}       | {low,moderate}    | 
f     | Play       |                  1 | low    | moderate
+  5 | rain     |          68 |       80 | {68,80}       | {medium,good}     | 
f     | Play       |                  1 | medium | good
+  6 | rain     |          65 |       70 | {65,70}       | {low,unhealthy}   | 
t     | Don't Play |                  1 | low    | unhealthy
+  7 | overcast |          64 |       65 | {64,65}       | {medium,moderate} | 
t     | Play       |                1.5 | medium | moderate
+  8 | sunny    |          72 |       95 | {72,95}       | {high,unhealthy}  | 
f     | Don't Play |                  5 | high   | unhealthy
+  9 | sunny    |          69 |       70 | {69,70}       | {high,good}       | 
f     | Play       |                  5 | high   | good
+ 10 | rain     |          75 |       80 | {75,80}       | {medium,good}     | 
f     | Play       |                  1 | medium | good
+ 11 | sunny    |          75 |       70 | {75,70}       | {none,good}       | 
t     | Play       |                  5 | none   | good
+ 12 | overcast |          72 |       90 | {72,90}       | {medium,moderate} | 
t     | Play       |                1.5 | medium | moderate
+ 13 | overcast |          81 |       75 | {81,75}       | {medium,moderate} | 
f     | Play       |                1.5 | medium | moderate
+ 14 | rain     |          71 |       80 | {71,80}       | {low,unhealthy}   | 
t     | Don't Play |                  1 | low    | unhealthy
+(14 rows)
+</pre></li>
+<li>Now let's run cols2vec then reverse it using vec2cols. In this case we 
will get feature names from the cols2vec summary table. First run cols2vec: 
<pre class="example">
+DROP TABLE IF EXISTS cols2vec_result, cols2vec_result_summary;
+SELECT madlib.cols2vec(
+    'golf',
+    'cols2vec_result',
+    'temperature, humidity',
+    NULL,
+    'id, temperature, humidity'
+);
+SELECT * FROM cols2vec_result ORDER BY id;
+</pre> <pre class="result">
+ id | temperature | humidity | feature_vector
+----+-------------+----------+----------------
+  1 |          85 |       85 | {85,85}
+  2 |          80 |       90 | {80,90}
+  3 |          83 |       78 | {83,78}
+  4 |          70 |       96 | {70,96}
+  5 |          68 |       80 | {68,80}
+  6 |          65 |       70 | {65,70}
+  7 |          64 |       65 | {64,65}
+  8 |          72 |       95 | {72,95}
+  9 |          69 |       70 | {69,70}
+ 10 |          75 |       80 | {75,80}
+ 11 |          75 |       70 | {75,70}
+ 12 |          72 |       90 | {72,90}
+ 13 |          81 |       75 | {81,75}
+ 14 |          71 |       80 | {71,80}
+(14 rows)
+</pre> View the summary table with the feature_names dictionary: <pre 
class="example">
+\x on
+SELECT * FROM cols2vec_result_summary;
+\x off
+</pre> <pre class="result">
+-[ RECORD 1 ]---------------+-----------------------
+source_table                | golf
+list_of_features            | temperature, humidity
+list_of_features_to_exclude | None
+feature_names               | {temperature,humidity}
+</pre> Now use feature_names from the summary table above to name the columns 
of the split array: <pre class="example">
+DROP TABLE IF EXISTS vec2cols_result;
+SELECT madlib.vec2cols(
+    'cols2vec_result',          -- source table containing the feature vector
+    'vec2cols_result',          -- output table
+    'feature_vector',           -- column with array entries to split
+    (SELECT feature_names from cols2vec_result_summary),    -- feature_names 
from summary table of cols2vec
+    'id'                        -- columns to keep from source table
+);
+SELECT * FROM vec2cols_result ORDER BY id;
+</pre> <pre class="result">
+ id | temperature | humidity
+----+-------------+----------
+  1 |          85 |       85
+  2 |          80 |       90
+  3 |          83 |       78
+  4 |          70 |       96
+  5 |          68 |       80
+  6 |          65 |       70
+  7 |          64 |       65
+  8 |          72 |       95
+  9 |          69 |       70
+ 10 |          75 |       80
+ 11 |          75 |       70
+ 12 |          72 |       90
+ 13 |          81 |       75
+ 14 |          71 |       80
+(14 rows)
+</pre> This is the same as the format of the original 'golf' dataset that we 
started with. </li>
+</ol>
+</dd></dl>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated on Mon Oct 15 2018 11:24:30 for MADlib by
+    <a href="http://www.doxygen.org/index.html";>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/madlib-site/blob/af0e5f14/docs/v1.15.1/group__grp__wcc.html
----------------------------------------------------------------------
diff --git a/docs/v1.15.1/group__grp__wcc.html 
b/docs/v1.15.1/group__grp__wcc.html
new file mode 100644
index 0000000..4f6697b
--- /dev/null
+++ b/docs/v1.15.1/group__grp__wcc.html
@@ -0,0 +1,475 @@
+<!-- HTML header for doxygen 1.8.4-->
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="keywords" content="madlib,postgres,greenplum,machine learning,data 
mining,deep learning,ensemble methods,data science,market basket 
analysis,affinity analysis,pca,lda,regression,elastic net,huber 
white,proportional hazards,k-means,latent dirichlet allocation,bayes,support 
vector machines,svm"/>
+<title>MADlib: Weakly Connected Components</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script>
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
+    jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" async 
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js";></script>
+<!-- hack in the navigation tree -->
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
+<!-- google analytics -->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+  ga('create', 'UA-45382226-1', 'madlib.apache.org');
+  ga('send', 'pageview');
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><a href="http://madlib.apache.org";><img alt="Logo" 
src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">
+   <span id="projectnumber">1.15.1</span>
+   </div>
+   <div id="projectbrief">User Documentation for Apache MADlib</div>
+  </td>
+   <td>        <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>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+$(document).ready(function(){initNavTree('group__grp__wcc.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</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>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Weakly Connected Components<div class="ingroups"><a 
class="el" href="group__grp__graph.html">Graph</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="toc"><b>Contents</b> <ul>
+<li>
+<a href="#wcc">Weakly Connected Components</a> </li>
+<li>
+<a href="#rlcc">Retrieve Largest Connected Component</a> </li>
+<li>
+<a href="#hist">Build Histogram</a> </li>
+<li>
+<a href="#samecpt">Check Vertices in Same Connected Component</a> </li>
+<li>
+<a href="#reach">Retrieve Reachable Vertices</a> </li>
+<li>
+<a href="#count">Count Connected Components</a> </li>
+<li>
+<a href="#examples">Examples</a> </li>
+</ul>
+</div><p>Given a directed graph, a weakly connected component (WCC) is a 
subgraph of the original graph where all vertices are connected to each other 
by some path, ignoring the direction of edges. In case of an undirected graph, 
a weakly connected component is also a strongly connected component. This 
module also includes a number of helper functions that operate on the WCC 
output.</p>
+<p><a class="anchor" id="wcc"></a></p><dl class="section user"><dt>Weakly 
Connected Components</dt><dd><pre class="syntax">
+weakly_connected_components( vertex_table,
+            vertex_id,
+            edge_table,
+            edge_args,
+            out_table,
+            grouping_cols
+          )
+</pre></dd></dl>
+<p><b>Arguments</b> </p><dl class="arglist">
+<dt>vertex_table </dt>
+<dd><p class="startdd">TEXT. Name of the table containing the vertex data for 
the graph. Must contain the column specified in the 'vertex_id' parameter 
below.</p>
+<p class="enddd"></p>
+</dd>
+<dt>vertex_id </dt>
+<dd><p class="startdd">TEXT, default = 'id'. Name of the column in 
'vertex_table' containing vertex ids. The vertex ids are of type INTEGER with 
no duplicates. They do not need to be contiguous.</p>
+<p class="enddd"></p>
+</dd>
+<dt>edge_table </dt>
+<dd><p class="startdd">TEXT. Name of the table containing the edge data. The 
edge table must contain columns for source vertex and destination vertex.</p>
+<p class="enddd"></p>
+</dd>
+<dt>edge_args </dt>
+<dd><p class="startdd">TEXT. A comma-delimited string containing multiple 
named arguments of the form "name=value". The following parameters are 
supported for this string argument:</p><ul>
+<li>src (INTEGER): Name of the column containing the source vertex ids in the 
edge table. Default column name is 'src'.</li>
+<li>dest (INTEGER): Name of the column containing the destination vertex ids 
in the edge table. Default column name is 'dest'.</li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>out_table </dt>
+<dd><p class="startdd">TEXT. Name of the table to store the component ID 
associated with each vertex. It will contain a row for every vertex from 
'vertex_table' with the following columns:</p><ul>
+<li>vertex_id : The id of a vertex. Will use the input parameter 'vertex_id' 
for column naming.</li>
+<li>component_id : Component that the vertex belongs to. We use the convention 
where 'component_id' is the id of the first vertex in a particular group. It 
means that component ids are generally not contiguous.</li>
+<li>grouping_cols : Grouping column (if any) values associated with the 
vertex_id.</li>
+</ul>
+<p>A summary table named &lt;out_table&gt;_summary is also created. This is an 
internal table that keeps a record of some of the input parameters and is used 
by the weakly connected component helper functions. </p>
+<p class="enddd"></p>
+</dd>
+<dt>grouping_cols (optional) </dt>
+<dd>TEXT, default: NULL. A single column or a list of comma-separated columns 
that divides the input data into discrete groups, which are treated 
independently as separate graphs. When this value is NULL, no grouping is used 
and weakly connected components are generated for all data (single graph). <dl 
class="section note"><dt>Note</dt><dd>Expressions are not currently supported 
for 'grouping_cols'.</dd></dl>
+</dd>
+</dl>
+<p><a class="anchor" id="rlcc"></a></p><dl class="section user"><dt>Retrieve 
Largest Connected Component</dt><dd></dd></dl>
+<p>The largest connected component retrieval function finds the largest weakly 
connected component(s) in a graph. If weakly connected components was run with 
grouping, the largest connected components are computed for each group.</p>
+<pre class="syntax">
+graph_wcc_largest_cpt( wcc_table,
+                      largest_cpt_table
+                     )
+</pre><p><b>Arguments</b> </p><dl class="arglist">
+<dt>wcc_table </dt>
+<dd><p class="startdd">TEXT. Name of the table that contains the output of 
weakly connected components.</p>
+<p class="enddd"></p>
+</dd>
+<dt>largest_cpt_table </dt>
+<dd>TEXT. Name of the output table that contains the largest component's 
information. It contains one or more rows for every group and has the following 
columns:<ul>
+<li>grouping_cols: The grouping columns given in the creation of wcc_table. If 
there are no grouping columns, this column is not created.</li>
+<li>component_id: The ID of the largest component. Recall that we use the 
convention where 'component_id' is the id of the first vertex in a particular 
group. It means that component ids are generally not contiguous. If there are 
multiple components of the same size, a row is created for each component. If 
grouping_cols is specified, the largest component is computed for each 
group.</li>
+<li>num_vertices: Number of vertices in the largest component.  </li>
+</ul>
+</dd>
+</dl>
+<p><a class="anchor" id="hist"></a></p><dl class="section user"><dt>Retrieve 
Histogram of Vertices Per Connected Component</dt><dd></dd></dl>
+<p>This function creates a histogram of the number of vertices per connected 
component.</p>
+<pre class="syntax">
+graph_wcc_histogram( wcc_table,
+                    histogram_table
+                   )
+</pre><p><b>Arguments</b> </p><dl class="arglist">
+<dt>wcc_table </dt>
+<dd><p class="startdd">TEXT. Name of the table that contains the output of 
weakly connected components.</p>
+<p class="enddd"></p>
+</dd>
+<dt>histogram_table </dt>
+<dd><p class="startdd">TEXT. Name of the output table that contains the number 
of vertices per component. A row is created for every comoponent in every group 
if grouping_cols was specified when running weakly connected components. The 
output table has the following columns:</p><ul>
+<li>grouping_cols: The grouping columns given during the creation of the 
wcc_table. If there are no grouping columns, this column is not created.</li>
+<li>component_id: The ID of the component.</li>
+<li>num_vertices: Number of vertices in the component specified by the 
component_id column.</li>
+</ul>
+<p class="enddd"></p>
+</dd>
+</dl>
+<p><a class="anchor" id="samecpt"></a></p><dl class="section user"><dt>Check 
if Two Vertices Belong to the Same Component</dt><dd></dd></dl>
+<p>This function determines if two vertices belong to the same component.</p>
+<pre class="syntax">
+graph_wcc_vertex_check( wcc_table,
+                       vertex_pair,
+                       pair_table
+                      )
+</pre><p><b>Arguments</b> </p><dl class="arglist">
+<dt>wcc_table </dt>
+<dd><p class="startdd">TEXT. Name of the table that contains the output of 
weakly connected components.</p>
+<p class="enddd"></p>
+</dd>
+<dt>vertex_pair </dt>
+<dd><p class="startdd">TEXT. A pair of vertex IDs separated by a comma.</p>
+<p class="enddd"></p>
+</dd>
+<dt>pair_table </dt>
+<dd><p class="startdd">TEXT. Name of the output table that specifies if the 
two vertices in vertex_pair belong to the same component. If wcc_table was 
generated using grouping_cols, all the components in all groups are considered. 
The output table has the following columns:</p><ul>
+<li>component_id: Component ID that contains both the vertices in 
vertex_pair.</li>
+<li>grouping_cols: The grouping columns given in the creation of wcc_table. If 
there are no grouping columns, this column is not created.</li>
+</ul>
+<p class="enddd"></p>
+</dd>
+</dl>
+<p><a class="anchor" id="reach"></a></p><dl class="section user"><dt>Retrieve 
All Vertices Reachable from a Vertex</dt><dd></dd></dl>
+<p>This function finds all the vertices that can be reached from a given 
vertex via weakly connected paths.</p>
+<pre class="syntax">
+graph_wcc_reachable_vertices( wcc_table,
+                             src,
+                             reachable_vertices_table
+                            )
+</pre><p><b>Arguments</b> </p><dl class="arglist">
+<dt>wcc_table </dt>
+<dd><p class="startdd">TEXT. Name of the table that contains the output of 
weakly connected components.</p>
+<p class="enddd"></p>
+</dd>
+<dt>src </dt>
+<dd><p class="startdd">TEXT. The vertex ID from which all reachable vertices 
have to be found.</p>
+<p class="enddd"></p>
+</dd>
+<dt>reachable_vertices_table </dt>
+<dd><p class="startdd">TEXT. Name of the output table that contains the list 
of vertices that are reachable from the src vertex. The output table has the 
following columns:</p><ul>
+<li>grouping_cols : The grouping columns given in the creation of wcc_table. 
If there are no grouping columns, this column is not created.</li>
+<li>component_id : The ID of the component that both the src and dest vertices 
belong to.</li>
+<li>dest : Vertex ID that is reachable from the src vertex. Reachability is 
computed with regard to a component.</li>
+</ul>
+<p class="enddd"></p>
+</dd>
+</dl>
+<p><a class="anchor" id="count"></a></p><dl class="section user"><dt>Count of 
Connected Components</dt><dd></dd></dl>
+<p>This function finds the total number of components in the input graph.</p>
+<pre class="syntax">
+graph_wcc_num_cpts( wcc_table,
+                   count_table
+                  )
+</pre><p><b>Arguments</b> </p><dl class="arglist">
+<dt>wcc_table </dt>
+<dd><p class="startdd">TEXT. Name of the table that contains the output of 
weakly connected components.</p>
+<p class="enddd"></p>
+</dd>
+<dt>count_table </dt>
+<dd><p class="startdd">TEXT. Name of the output table that contains the total 
number of components per group in the graph, if there are any grouping_cols in 
wcc_table. The output table has the following columns:</p><ul>
+<li>grouping_cols : The grouping columns given in the creation of wcc_table. 
If there are no grouping columns, this column is not created, and count is with 
regard to the entire graph.</li>
+<li>num_components : Count of weakly connected components in a graph, or the 
number of components within a group if grouping_cols is defined. </li>
+</ul>
+<p class="enddd"></p>
+</dd>
+</dl>
+<p><a class="anchor" id="examples"></a></p><dl class="section 
user"><dt>Examples</dt><dd></dd></dl>
+<ol type="1">
+<li>Create vertex and edge tables to represent the graph: <pre class="syntax">
+DROP TABLE IF EXISTS vertex, edge;
+CREATE TABLE vertex(
+    id INTEGER
+);
+CREATE TABLE edge(
+    src INTEGER,
+    dest INTEGER,
+    user_id INTEGER
+);
+INSERT INTO vertex VALUES
+(0),
+(1),
+(2),
+(3),
+(4),
+(5),
+(6),
+(10),
+(11),
+(12),
+(13),
+(14),
+(15),
+(16);
+INSERT INTO edge VALUES
+(0, 1, 1),
+(0, 2, 1),
+(1, 2, 1),
+(1, 3, 1),
+(2, 3, 1),
+(2, 5, 1),
+(2, 6, 1),
+(3, 0, 1),
+(5, 6, 1),
+(6, 3, 1),
+(10, 11, 2),
+(10, 12, 2),
+(11, 12, 2),
+(11, 13, 2),
+(12, 13, 2),
+(13, 10, 2),
+(15, 16, 2),
+(15, 14, 2);
+</pre></li>
+<li>Find all the weakly connected components in the graph: <pre class="syntax">
+DROP TABLE IF EXISTS wcc_out, wcc_out_summary;
+SELECT madlib.weakly_connected_components(
+                         'vertex',             -- Vertex table
+                         'id',                 -- Vertix id column
+                         'edge',               -- Edge table
+                         'src=src, dest=dest', -- Comma delimted string of 
edge arguments
+                         'wcc_out');      -- Output table of weakly connected 
components
+SELECT * FROM wcc_out ORDER BY component_id, id;
+</pre> <pre class="result">
+ id | component_id
+----+--------------
+  0 |            0
+  1 |            0
+  2 |            0
+  3 |            0
+  5 |            0
+  6 |            0
+  4 |            4
+ 10 |           10
+ 11 |           10
+ 12 |           10
+ 13 |           10
+ 14 |           14
+ 15 |           14
+ 16 |           14
+(14 rows)
+</pre></li>
+<li>Now get the weakly connected components associated with each 'user_id' 
using the grouping feature: <pre class="syntax">
+DROP TABLE IF EXISTS wcc_out, wcc_out_summary;
+SELECT madlib.weakly_connected_components(
+                         'vertex',             -- Vertex table
+                         'id',                 -- Vertix id column
+                         'edge',               -- Edge table
+                         'src=src, dest=dest', -- Comma delimted string of 
edge arguments
+                         'wcc_out',       -- Output table of weakly connected 
components
+                         'user_id');           -- Grouping column name
+SELECT * FROM wcc_out ORDER BY user_id, component_id, id;
+</pre> <pre class="result">
+ id | component_id | user_id
+----+--------------+---------
+  0 |            0 |       1
+  1 |            0 |       1
+  2 |            0 |       1
+  3 |            0 |       1
+  5 |            0 |       1
+  6 |            0 |       1
+ 10 |           10 |       2
+ 11 |           10 |       2
+ 12 |           10 |       2
+ 13 |           10 |       2
+ 14 |           14 |       2
+ 15 |           14 |       2
+ 16 |           14 |       2
+(13 rows)
+</pre> Note that vertex 4 is not identified as a separate component above. 
This is because there is no entry in the edge table for vertex 4 indicating 
which group it belongs to (though you could do that if you wanted to).</li>
+<li>Retrieve the largest connected component: <pre class="syntax">
+DROP TABLE IF EXISTS largest_cpt_table;
+SELECT madlib.graph_wcc_largest_cpt(
+                         'wcc_out',             -- WCC output table
+                         'largest_cpt_table');  -- output table containing 
largest component ID
+SELECT * FROM largest_cpt_table ORDER BY component_id;
+</pre> <pre class="result">
+ user_id | component_id | num_vertices
+---------+--------------+--------------
+       1 |            0 |            6
+       2 |           10 |            4
+(2 rows)
+</pre></li>
+<li>Retrieve histogram of the number of vertices per connected component: <pre 
class="syntax">
+DROP TABLE IF EXISTS histogram_table;
+SELECT madlib.graph_wcc_histogram(
+                         'wcc_out',           -- WCC output table
+                         'histogram_table');  -- output table containing the 
histogram of vertices
+SELECT * FROM histogram_table ORDER BY component_id;
+</pre> <pre class="result">
+ user_id | component_id | num_vertices
+---------+--------------+--------------
+       1 |            0 |            6
+       2 |           10 |            4
+       2 |           14 |            3
+(3 rows)
+</pre></li>
+<li>Check if two vertices belong to the same component: <pre class="syntax">
+DROP TABLE IF EXISTS vc_table;
+SELECT madlib.graph_wcc_vertex_check(
+                         'wcc_out',    -- WCC output table
+                         '14,15',      -- Pair of vertex IDs
+                         'vc_table');  -- output table containing components 
that contain the two vertices
+SELECT * FROM vc_table ORDER BY component_id;
+</pre> <pre class="result">
+ user_id | component_id
+---------+--------------
+       2 |           14
+(1 row)
+</pre></li>
+<li>Retrieve all vertices reachable from a vertex <pre class="syntax">
+DROP TABLE IF EXISTS reach_table;
+SELECT madlib.graph_wcc_reachable_vertices(
+                         'wcc_out',         -- WCC output table
+                         '0',               -- source vertex
+                         'reach_table');    -- output table containing all 
vertices reachable from source vertex
+SELECT * FROM reach_table ORDER BY component_id, dest;
+</pre> <pre class="result">
+ user_id | component_id | dest
+---------+--------------+------
+       1 |            0 |    1
+       1 |            0 |    2
+       1 |            0 |    3
+       1 |            0 |    5
+       1 |            0 |    6
+(5 rows)
+</pre></li>
+<li>Count of connected components: <pre class="syntax">
+DROP TABLE IF EXISTS count_table;
+SELECT madlib.graph_wcc_num_cpts(
+                         'wcc_out',       -- WCC output table
+                         'count_table');  -- output table containing number of 
components per group
+SELECT * FROM count_table;
+</pre> <pre class="result">
+ user_id | num_components
+------&mdash;+-------------&mdash;
+       1 |              1
+       2 |              2
+(2 rows)
+</pre> </li>
+</ol>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated on Mon Oct 15 2018 11:24:30 for MADlib by
+    <a href="http://www.doxygen.org/index.html";>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/madlib-site/blob/af0e5f14/docs/v1.15.1/hits_8sql__in.html
----------------------------------------------------------------------
diff --git a/docs/v1.15.1/hits_8sql__in.html b/docs/v1.15.1/hits_8sql__in.html
new file mode 100644
index 0000000..00ec198
--- /dev/null
+++ b/docs/v1.15.1/hits_8sql__in.html
@@ -0,0 +1,410 @@
+<!-- HTML header for doxygen 1.8.4-->
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="keywords" content="madlib,postgres,greenplum,machine learning,data 
mining,deep learning,ensemble methods,data science,market basket 
analysis,affinity analysis,pca,lda,regression,elastic net,huber 
white,proportional hazards,k-means,latent dirichlet allocation,bayes,support 
vector machines,svm"/>
+<title>MADlib: hits.sql_in File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+  $(document).ready(function() { init_search(); });
+/* @license-end */
+</script>
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
+    jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" async 
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js";></script>
+<!-- hack in the navigation tree -->
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
+<!-- google analytics -->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+  ga('create', 'UA-45382226-1', 'madlib.apache.org');
+  ga('send', 'pageview');
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><a href="http://madlib.apache.org";><img alt="Logo" 
src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">
+   <span id="projectnumber">1.15.1</span>
+   </div>
+   <div id="projectbrief">User Documentation for Apache MADlib</div>
+  </td>
+   <td>        <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>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license 
magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt 
GPL-v2 */
+$(document).ready(function(){initNavTree('hits_8sql__in.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</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>
+
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">hits.sql_in File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a8b627c2d93594ba5c4963a91bd89c702"><td class="memItemLeft" 
align="right" valign="top">void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="hits_8sql__in.html#a8b627c2d93594ba5c4963a91bd89c702">hits</a> (text 
vertex_table, text vertex_id, text edge_table, text edge_args, text out_table, 
integer max_iter, float8 threshold, varchar grouping_cols)</td></tr>
+<tr class="separator:a8b627c2d93594ba5c4963a91bd89c702"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4965e9ad3dde6bf32393371f98ede7b"><td class="memItemLeft" 
align="right" valign="top">void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="hits_8sql__in.html#ae4965e9ad3dde6bf32393371f98ede7b">hits</a> (text 
vertex_table, text vertex_id, text edge_table, text edge_args, text out_table, 
integer max_iter, float8 threshold)</td></tr>
+<tr class="separator:ae4965e9ad3dde6bf32393371f98ede7b"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acef1d74fb74333a9868bb8edee001d75"><td class="memItemLeft" 
align="right" valign="top">void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="hits_8sql__in.html#acef1d74fb74333a9868bb8edee001d75">hits</a> (text 
vertex_table, text vertex_id, text edge_table, text edge_args, text out_table, 
integer max_iter)</td></tr>
+<tr class="separator:acef1d74fb74333a9868bb8edee001d75"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67b3744cbd2995e6c5021420a0299562"><td class="memItemLeft" 
align="right" valign="top">void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="hits_8sql__in.html#a67b3744cbd2995e6c5021420a0299562">hits</a> (text 
vertex_table, text vertex_id, text edge_table, text edge_args, text 
out_table)</td></tr>
+<tr class="separator:a67b3744cbd2995e6c5021420a0299562"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7068f61698c2e76763cd06758ac0fbac"><td class="memItemLeft" 
align="right" valign="top">varchar&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="hits_8sql__in.html#a7068f61698c2e76763cd06758ac0fbac">hits</a> (varchar 
message)</td></tr>
+<tr class="separator:a7068f61698c2e76763cd06758ac0fbac"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c13c19b2e0db69af3d14e381b948e65"><td class="memItemLeft" 
align="right" valign="top">varchar&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="hits_8sql__in.html#a6c13c19b2e0db69af3d14e381b948e65">hits</a> 
()</td></tr>
+<tr class="separator:a6c13c19b2e0db69af3d14e381b948e65"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a8b627c2d93594ba5c4963a91bd89c702"></a>
+<h2 class="memtitle"><span class="permalink"><a 
href="#a8b627c2d93594ba5c4963a91bd89c702">&#9670;&nbsp;</a></span>hits() <span 
class="overload">[1/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void hits </td>
+          <td>(</td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>vertex_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>vertex_id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>edge_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>edge_args</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>out_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">integer&#160;</td>
+          <td class="paramname"><em>max_iter</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float8&#160;</td>
+          <td class="paramname"><em>threshold</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">varchar&#160;</td>
+          <td class="paramname"><em>grouping_cols</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae4965e9ad3dde6bf32393371f98ede7b"></a>
+<h2 class="memtitle"><span class="permalink"><a 
href="#ae4965e9ad3dde6bf32393371f98ede7b">&#9670;&nbsp;</a></span>hits() <span 
class="overload">[2/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void hits </td>
+          <td>(</td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>vertex_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>vertex_id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>edge_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>edge_args</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>out_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">integer&#160;</td>
+          <td class="paramname"><em>max_iter</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float8&#160;</td>
+          <td class="paramname"><em>threshold</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="acef1d74fb74333a9868bb8edee001d75"></a>
+<h2 class="memtitle"><span class="permalink"><a 
href="#acef1d74fb74333a9868bb8edee001d75">&#9670;&nbsp;</a></span>hits() <span 
class="overload">[3/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void hits </td>
+          <td>(</td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>vertex_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>vertex_id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>edge_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>edge_args</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>out_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">integer&#160;</td>
+          <td class="paramname"><em>max_iter</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a67b3744cbd2995e6c5021420a0299562"></a>
+<h2 class="memtitle"><span class="permalink"><a 
href="#a67b3744cbd2995e6c5021420a0299562">&#9670;&nbsp;</a></span>hits() <span 
class="overload">[4/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void hits </td>
+          <td>(</td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>vertex_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>vertex_id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>edge_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>edge_args</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">text&#160;</td>
+          <td class="paramname"><em>out_table</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7068f61698c2e76763cd06758ac0fbac"></a>
+<h2 class="memtitle"><span class="permalink"><a 
href="#a7068f61698c2e76763cd06758ac0fbac">&#9670;&nbsp;</a></span>hits() <span 
class="overload">[5/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">varchar hits </td>
+          <td>(</td>
+          <td class="paramtype">varchar&#160;</td>
+          <td class="paramname"><em>message</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6c13c19b2e0db69af3d14e381b948e65"></a>
+<h2 class="memtitle"><span class="permalink"><a 
href="#a6c13c19b2e0db69af3d14e381b948e65">&#9670;&nbsp;</a></span>hits() <span 
class="overload">[6/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">varchar hits </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" 
href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li 
class="navelem"><a class="el" 
href="dir_efbcf68973d247bbf15f9eecae7f24e3.html">ports</a></li><li 
class="navelem"><a class="el" 
href="dir_a4a48839224ef8488facbffa8a397967.html">postgres</a></li><li 
class="navelem"><a class="el" 
href="dir_dc596537ad427a4d866006d1a3e1fe29.html">modules</a></li><li 
class="navelem"><a class="el" 
href="dir_1c3de670490e30b2adf792227ef51e32.html">graph</a></li><li 
class="navelem"><a class="el" href="hits_8sql__in.html">hits.sql_in</a></li>
+    <li class="footer">Generated on Mon Oct 15 2018 11:24:29 for MADlib by
+    <a href="http://www.doxygen.org/index.html";>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>

Reply via email to