http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__sessionize.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__sessionize.html 
b/docs/latest/group__grp__sessionize.html
new file mode 100644
index 0000000..4790bc0
--- /dev/null
+++ b/docs/latest/group__grp__sessionize.html
@@ -0,0 +1,269 @@
+<!-- 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.10"/>
+<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: Sessionize</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">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</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">
+  $(document).ready(function() { init_search(); });
+</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.net');
+  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.net";><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.9.1</span>
+   </div>
+   <div id="projectbrief">User Documentation for 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.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</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">
+$(document).ready(function(){initNavTree('group__grp__sessionize.html','');});
+</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">Sessionize<div class="ingroups"><a class="el" 
href="group__grp__utility__functions.html">Utility Functions</a></div></div>  
</div>
+</div><!--header-->
+<div class="contents">
+<div class="toc"><b>Contents</b> </p><ul>
+<li>
+<a href="#syntax">Function Syntax</a> </li>
+<li>
+<a href="#examples">Examples</a> </li>
+<li>
+<a href="#literature">Literature</a> </li>
+</ul>
+</div><p>The MADlib sessionize function performs time-oriented session 
reconstruction on a data set comprising a sequence of events. A defined period 
of inactivity indicates the end of one session and beginning of the next 
session. Sessions can be useful in many domains including web analytics [1], 
network security, manufacturing, finance, and operational analytics.</p>
+<p><a class="anchor" id="syntax"></a></p><dl class="section user"><dt>Function 
Syntax</dt><dd><pre class="syntax">
+sessionize(
+   source_table,
+   output_table,
+   partition_expr,
+   time_stamp,
+   max_time,
+   output_cols,
+   create_view
+)
+</pre></dd></dl>
+<p><b>Arguments</b> </p><dl class="arglist">
+<dt>source_table </dt>
+<dd><p class="startdd">VARCHAR. Name of the source table that contains the 
data to be sessionized.</p>
+<p class="enddd"></p>
+</dd>
+<dt>output_table </dt>
+<dd><p class="startdd">VARCHAR. Name of the output view or table. (The 
parameter create_view described below defines whether the output is actually a 
view or a table.) In addition to the columns in the source_table, the output 
also contains a new column called session_id: </p><ul>
+<li>
+session_id=1,2,...n where n is the number of the session in the partition. 
</li>
+</ul>
+<p class="enddd"></p>
+</dd>
+<dt>partition_expr </dt>
+<dd><p class="startdd">VARCHAR. The 'partition_expr' is a single column or a 
list of comma-separated columns/expressions to divide all rows into groups, or 
partitions. Sessionization is applied across the rows that fall into the same 
partition. This parameter can be set to NULL or '' to indicate the 
sessionization operation is to be applied to the whole input table.</p>
+<p class="enddd"></p>
+</dd>
+<dt>time_stamp </dt>
+<dd><p class="startdd">VARCHAR. The time stamp column name that is used for 
sessionization calculation. Note that the time_stamp column will be sorted in 
ascending order before the session reconstruction is done within a 
partition.</p>
+<p class="enddd"></p>
+</dd>
+<dt>max_time </dt>
+<dd><p class="startdd">INTERVAL. Maximum delta time (i.e., time out) between 
subsequent events that define a session. If the elapsed time between subsequent 
events is longer than max_time, a new session is created.</p>
+<p class="enddd"><a class="anchor" id="note"></a></p><dl class="section 
note"><dt>Note</dt><dd>Note that max_time is of time type INTERVAL which is a 
PostgreSQL way of describing elapsed time. For more information on INTERVAL 
please refer to reference [2].</dd></dl>
+</dd>
+<dt>output_cols (optional) </dt>
+<dd><p class="startdd">VARCHAR. An optional comma separated list of columns to 
be written to the output_table. Must be a valid SELECT expression. This is set 
to '*' by default, which means all columns in the input table will be written 
to the output_table plus the session_id column. Note that this parameter could 
include a list containing the partition_expr or any other expressions of 
interest. E.g., '*, expr1, expr2, etc.' where this means output all columns 
from the input table plus the expressions listed plus the session_id column.</p>
+<p class="enddd"></p>
+</dd>
+<dt>create_view (optional) </dt>
+<dd>BOOLEAN default: TRUE. Determines whether to create a view or materialize 
the output as a table. If you only need session info once, creating a view 
could be significantly faster than materializing as a table. Please note that 
if you set create_view to NULL (allowed by PostgreSQL) it will get set to the 
default value of TRUE. </dd>
+</dl>
+<p><a class="anchor" id="examples"></a></p><dl class="section 
user"><dt>Examples</dt><dd></dd></dl>
+<p>The data set describes shopper behavior on a notional web site that sells 
beer and wine. A beacon fires an event to a log file when the shopper visits 
different pages on the site: landing page, beer selection page, wine selection 
page, and checkout. Each user is identified by a a user id, and every time a 
page is visited, the page and time stamp are logged.</p>
+<p>Create the data table:</p>
+<pre class="example">
+DROP TABLE IF EXISTS eventlog CASCADE;  -- Using CASCADE in case you are 
running through this example more than once (views used below)
+CREATE TABLE eventlog (event_timestamp TIMESTAMP,
+            user_id INT,
+            page TEXT,
+            revenue FLOAT);
+INSERT INTO eventlog VALUES
+('04/15/2015 02:19:00', 101331, 'CHECKOUT', 16),
+('04/15/2015 02:17:00', 202201, 'WINE', 0),
+('04/15/2015 03:18:00', 202201, 'BEER', 0),
+('04/15/2015 01:03:00', 100821, 'LANDING', 0),
+('04/15/2015 01:04:00', 100821, 'WINE', 0),
+('04/15/2015 01:05:00', 100821, 'CHECKOUT', 39),
+('04/15/2015 02:06:00', 100821, 'WINE', 0),
+('04/15/2015 02:09:00', 100821, 'WINE', 0),
+('04/15/2015 02:15:00', 101331, 'LANDING', 0),
+('04/15/2015 02:16:00', 101331, 'WINE', 0),
+('04/15/2015 02:17:00', 101331, 'HELP', 0),
+('04/15/2015 02:18:00', 101331, 'WINE', 0),
+('04/15/2015 02:29:00', 201881, 'LANDING', 0),
+('04/15/2015 02:30:00', 201881, 'BEER', 0),
+('04/15/2015 01:05:00', 202201, 'LANDING', 0),
+('04/15/2015 01:06:00', 202201, 'HELP', 0),
+('04/15/2015 01:09:00', 202201, 'LANDING', 0),
+('04/15/2015 02:15:00', 202201, 'WINE', 0),
+('04/15/2015 02:16:00', 202201, 'BEER', 0),
+('04/15/2015 03:19:00', 202201, 'WINE', 0),
+('04/15/2015 03:22:00', 202201, 'CHECKOUT', 21);
+</pre><p>Sessionize the table by each user_id: </p><pre class="example">
+ DROP VIEW IF EXISTS sessionize_output_view;
+ SELECT madlib.sessionize(
+     'eventlog',             -- Name of input table
+     'sessionize_output_view',   -- View to store sessionize results
+     'user_id',             -- Partition input table by user id
+     'event_timestamp',      -- Time column used to compute sessions
+     '0:30:0'                -- Use 30 minute time out to define sessions
+    );
+SELECT * FROM sessionize_output_view ORDER BY user_id, event_timestamp;
+</pre><p>Result: </p><pre class="result">
+   event_timestamp   | user_id |   page   | revenue | session_id 
+---------------------+---------+----------+---------+------------
+ 2015-04-15 01:03:00 |  100821 | LANDING  |       0 |          1
+ 2015-04-15 01:04:00 |  100821 | WINE     |       0 |          1
+ 2015-04-15 01:05:00 |  100821 | CHECKOUT |      39 |          1
+ 2015-04-15 02:06:00 |  100821 | WINE     |       0 |          2
+ 2015-04-15 02:09:00 |  100821 | WINE     |       0 |          2
+ 2015-04-15 02:15:00 |  101331 | LANDING  |       0 |          1
+ 2015-04-15 02:16:00 |  101331 | WINE     |       0 |          1
+ 2015-04-15 02:17:00 |  101331 | HELP     |       0 |          1
+ 2015-04-15 02:18:00 |  101331 | WINE     |       0 |          1
+ 2015-04-15 02:19:00 |  101331 | CHECKOUT |      16 |          1
+ 2015-04-15 02:29:00 |  201881 | LANDING  |       0 |          1
+ 2015-04-15 02:30:00 |  201881 | BEER     |       0 |          1
+ 2015-04-15 01:05:00 |  202201 | LANDING  |       0 |          1
+ 2015-04-15 01:06:00 |  202201 | HELP     |       0 |          1
+ 2015-04-15 01:09:00 |  202201 | LANDING  |       0 |          1
+ 2015-04-15 02:15:00 |  202201 | WINE     |       0 |          2
+ 2015-04-15 02:16:00 |  202201 | BEER     |       0 |          2
+ 2015-04-15 02:17:00 |  202201 | WINE     |       0 |          2
+ 2015-04-15 03:18:00 |  202201 | BEER     |       0 |          3
+ 2015-04-15 03:19:00 |  202201 | WINE     |       0 |          3
+ 2015-04-15 03:22:00 |  202201 | CHECKOUT |      21 |          3
+(21 rows)
+</pre><p>Now let's say we want to see 3 minute sessions by a group of users 
with a certain range of user IDs. To do this, we need to sessionize the table 
based on a partition expression. Also, we want to persist a table output with a 
reduced set of columns in the table. </p><pre class="example">
+ DROP TABLE IF EXISTS sessionize_output_table;
+ SELECT madlib.sessionize(
+     'eventlog',                    -- Name of input table
+     'sessionize_output_table',     -- Table to store sessionize results
+     'user_id &lt; 200000',            -- Partition input table by subset of 
users
+     'event_timestamp',             -- Order partitions in input table by time
+     '180',                         -- Use 180 second time out to define 
sessions (same as '0:03:0')
+     'event_timestamp, user_id, user_id &lt; 200000 AS "Department-A1"',    -- 
Select only user_id and event_timestamp columns, along with the session id as 
output
+     'f'                            -- create a table
+     );
+ SELECT * FROM sessionize_output_table WHERE "Department-A1"='TRUE' ORDER BY 
event_timestamp;
+</pre><p>Result showing 2 users and 3 total sessions across the group: 
</p><pre class="result">
+   event_timestamp   | user_id | Department-A1 | session_id 
+---------------------+---------+---------------+------------
+ 2015-04-15 01:03:00 |  100821 | t             |          1
+ 2015-04-15 01:04:00 |  100821 | t             |          1
+ 2015-04-15 01:05:00 |  100821 | t             |          1
+ 2015-04-15 02:06:00 |  100821 | t             |          2
+ 2015-04-15 02:09:00 |  100821 | t             |          2
+ 2015-04-15 02:15:00 |  101331 | t             |          3
+ 2015-04-15 02:16:00 |  101331 | t             |          3
+ 2015-04-15 02:17:00 |  101331 | t             |          3
+ 2015-04-15 02:18:00 |  101331 | t             |          3
+ 2015-04-15 02:19:00 |  101331 | t             |          3
+(10 rows)
+</pre><p><a class="anchor" id="literature"></a></p><dl class="section 
user"><dt>Literature</dt><dd></dd></dl>
+<p>[1] Sesssions in web analytics <a 
href="https://en.wikipedia.org/wiki/Session_(web_analytics)">https://en.wikipedia.org/wiki/Session_(web_analytics)</a></p>
+<p>[2] PostgreSQL date/time types <a 
href="https://www.postgresql.org/docs/8.4/static/datatype-datetime.html";>https://www.postgresql.org/docs/8.4/static/datatype-datetime.html</a>
 </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 Tue Sep 20 2016 11:27:01 for MADlib by
+    <a href="http://www.doxygen.org/index.html";>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
+  </ul>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__sketches.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__sketches.html 
b/docs/latest/group__grp__sketches.html
index 0beff9a..6dfd8b0 100644
--- a/docs/latest/group__grp__sketches.html
+++ b/docs/latest/group__grp__sketches.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -146,7 +146,7 @@ Modules</h2></td></tr>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:11 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__sparse__linear__solver.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__sparse__linear__solver.html 
b/docs/latest/group__grp__sparse__linear__solver.html
index aa5ccf6..3dc5aff 100644
--- a/docs/latest/group__grp__sparse__linear__solver.html
+++ b/docs/latest/group__grp__sparse__linear__solver.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -122,9 +122,9 @@ 
$(document).ready(function(){initNavTree('group__grp__sparse__linear__solver.htm
 <a href="related">Related Topics</a> </li>
 </ul>
 </div><p>The sparse linear systems module implements solution methods for 
systems of consistent linear equations. Systems of linear equations take the 
form: </p><p class="formulaDsp">
-<img class="formulaDsp" alt="\[ Ax = b \]" src="form_211.png"/>
+<img class="formulaDsp" alt="\[ Ax = b \]" src="form_212.png"/>
 </p>
-<p>where <img class="formulaInl" alt="$x \in \mathbb{R}^{n}$" 
src="form_212.png"/>, <img class="formulaInl" alt="$A \in \mathbb{R}^{m \times 
n} $" src="form_213.png"/> and <img class="formulaInl" alt="$b \in 
\mathbb{R}^{m}$" src="form_214.png"/>. This module accepts sparse matrix input 
formats for <img class="formulaInl" alt="$A$" src="form_41.png"/> and <img 
class="formulaInl" alt="$b$" src="form_217.png"/>. We assume that there are no 
rows of <img class="formulaInl" alt="$A$" src="form_41.png"/> where all 
elements are zero.</p>
+<p>where <img class="formulaInl" alt="$x \in \mathbb{R}^{n}$" 
src="form_213.png"/>, <img class="formulaInl" alt="$A \in \mathbb{R}^{m \times 
n} $" src="form_214.png"/> and <img class="formulaInl" alt="$b \in 
\mathbb{R}^{m}$" src="form_215.png"/>. This module accepts sparse matrix input 
formats for <img class="formulaInl" alt="$A$" src="form_41.png"/> and <img 
class="formulaInl" alt="$b$" src="form_218.png"/>. We assume that there are no 
rows of <img class="formulaInl" alt="$A$" src="form_41.png"/> where all 
elements are zero.</p>
 <dl class="section note"><dt>Note</dt><dd>Algorithms with fail if there is an 
row of the input matrix containing all zeros.</dd></dl>
 <p>The algorithms implemented in this module can handle large sparse square 
linear systems. Currently, the algorithms implemented in this module solve the 
linear system using direct or iterative methods.</p>
 <p><a class="anchor" id="sls_usage"></a></p><dl class="section 
user"><dt>Sparse Linear Systems Solution Function</dt><dd></dd></dl>
@@ -168,14 +168,14 @@ linear_solver_sparse( tbl_source_lhs,
 <tr>
 <th>solution </th><td>FLOAT8[]. The solution is an array with the variables in 
the same order as that provided as input in the 'left_hand_side' column name of 
the 'source_table'   </td></tr>
 <tr>
-<th>residual_norm </th><td>FLOAT8. Scaled residual norm, defined as <img 
class="formulaInl" alt="$ \frac{|Ax - b|}{|b|} $" src="form_215.png"/>. This 
value is an indication of the accuracy of the solution.   </td></tr>
+<th>residual_norm </th><td>FLOAT8. Scaled residual norm, defined as <img 
class="formulaInl" alt="$ \frac{|Ax - b|}{|b|} $" src="form_216.png"/>. This 
value is an indication of the accuracy of the solution.   </td></tr>
 <tr>
 <th>iters </th><td>INTEGER. Number of iterations required by the algorithm 
(only applicable for iterative algorithms) . The output is NULL for 'direct' 
methods.   </td></tr>
 </table>
 <p class="enddd"></p>
 </dd>
 <dt>lhs_row_id </dt>
-<dd>TEXT. The name of the column storing the 'row id' of the equations. <dl 
class="section note"><dt>Note</dt><dd>For a system with N equations, the 
row_id's must be a continuous range of integers from <img class="formulaInl" 
alt="$ 0 \ldots n-1 $" src="form_216.png"/>.</dd></dl>
+<dd>TEXT. The name of the column storing the 'row id' of the equations. <dl 
class="section note"><dt>Note</dt><dd>For a system with N equations, the 
row_id's must be a continuous range of integers from <img class="formulaInl" 
alt="$ 0 \ldots n-1 $" src="form_217.png"/>.</dd></dl>
 </dd>
 <dt>lhs_col_id </dt>
 <dd><p class="startdd">TEXT. The name of the column (in tbl_source_lhs) 
storing the 'col id' of the equations.</p>
@@ -340,7 +340,7 @@ SELECT madlib.linear_solver_sparse(
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:11 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__stats.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__stats.html 
b/docs/latest/group__grp__stats.html
index 09dc48a..ce626af 100644
--- a/docs/latest/group__grp__stats.html
+++ b/docs/latest/group__grp__stats.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -129,7 +129,7 @@ Modules</h2></td></tr>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__stats__tests.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__stats__tests.html 
b/docs/latest/group__grp__stats__tests.html
index 386e6f3..03f0006 100644
--- a/docs/latest/group__grp__stats__tests.html
+++ b/docs/latest/group__grp__stats__tests.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -121,22 +121,23 @@ 
$(document).ready(function(){initNavTree('group__grp__stats__tests.html','');});
 <li>
 <a href="#related">Related Topics</a> </li>
 </ul>
-</div><p>Hypothesis tests are used to confirm or reject a <em>“null” 
hypothesis</em> <img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> 
about the distribution of random variables, given realizations of these random 
variables. Since in general it is not possible to make statements with 
certainty, one is interested in the probability <img class="formulaInl" alt="$ 
p $" src="form_110.png"/> of seeing random variates at least as extreme as the 
ones observed, assuming that <img class="formulaInl" alt="$ H_0 $" 
src="form_396.png"/> is true. If this probability <img class="formulaInl" 
alt="$ p $" src="form_110.png"/> is small, <img class="formulaInl" alt="$ H_0 
$" src="form_396.png"/> will be rejected by the test with <em>significance 
level</em> <img class="formulaInl" alt="$ p $" src="form_110.png"/>. Falsifying 
<img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> is the canonic goal 
when employing a hypothesis test. That is, hypothesis tests are typically used 
in order 
 to substantiate that instead the <em>alternative hypothesis</em> <img 
class="formulaInl" alt="$ H_1 $" src="form_397.png"/> is true.</p>
-<p>Hypothesis tests may be devided into parametric and non-parametric tests. A 
parametric test assumes certain distributions and makes inferences about 
parameters of the distributions (e.g., the mean of a normal distribution). 
Formally, there is a given domain of possible parameters <img 
class="formulaInl" alt="$ \Gamma $" src="form_398.png"/> and the null 
hypothesis <img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> is the 
event that the true parameter <img class="formulaInl" alt="$ \gamma_0 \in 
\Gamma_0 $" src="form_399.png"/>, where <img class="formulaInl" alt="$ \Gamma_0 
\subsetneq \Gamma $" src="form_400.png"/>. Non-parametric tests, on the other 
hand, do not assume any particular distribution of the sample (e.g., a 
non-parametric test may simply test if two distributions are similar).</p>
-<p>The first step of a hypothesis test is to compute a <em>test 
statistic</em>, which is a function of the random variates, i.e., a random 
variate itself. A hypothesis test relies on that the distribution of the test 
statistic is (approximately) known. Now, the <img class="formulaInl" alt="$ p 
$" src="form_110.png"/>-value is the probability of seeing a test statistic at 
least as extreme as the one observed, assuming that <img class="formulaInl" 
alt="$ H_0 $" src="form_396.png"/> is true. In a case where the null hypothesis 
corresponds to a family of distributions (e.g., in a parametric test where <img 
class="formulaInl" alt="$ \Gamma_0 $" src="form_401.png"/> is not a singleton 
set), the <img class="formulaInl" alt="$ p $" src="form_110.png"/>-value is the 
supremum, over all possible distributions according to the null hypothesis, of 
these probabilities.</p>
+</div><p>Hypothesis tests are used to confirm or reject a <em>null 
hypothesis</em> <img class="formulaInl" alt="$ H_0 $" src="form_397.png"/> 
about the distribution of random variables, given realizations of these random 
variables. Since in general it is not possible to make statements with 
certainty, one is interested in the probability <img class="formulaInl" alt="$ 
p $" src="form_110.png"/> of seeing random variates at least as extreme as the 
ones observed, assuming that <img class="formulaInl" alt="$ H_0 $" 
src="form_397.png"/> is true. If this probability <img class="formulaInl" 
alt="$ p $" src="form_110.png"/> is small, <img class="formulaInl" alt="$ H_0 
$" src="form_397.png"/> will be rejected by the test with <em>significance 
level</em> <img class="formulaInl" alt="$ p $" src="form_110.png"/>. Falsifying 
<img class="formulaInl" alt="$ H_0 $" src="form_397.png"/> is the canonic goal 
when employing a hypothesis test. That is, hypothesis tests are typically used 
in order to sub
 stantiate that instead the <em>alternative hypothesis</em> <img 
class="formulaInl" alt="$ H_1 $" src="form_398.png"/> is true.</p>
+<p>Hypothesis tests may be divided into parametric and non-parametric tests. A 
parametric test assumes certain distributions and makes inferences about 
parameters of the distributions (e.g., the mean of a normal distribution). 
Formally, there is a given domain of possible parameters <img 
class="formulaInl" alt="$ \Gamma $" src="form_399.png"/> and the null 
hypothesis <img class="formulaInl" alt="$ H_0 $" src="form_397.png"/> is the 
event that the true parameter <img class="formulaInl" alt="$ \gamma_0 \in 
\Gamma_0 $" src="form_400.png"/>, where <img class="formulaInl" alt="$ \Gamma_0 
\subsetneq \Gamma $" src="form_401.png"/>. Non-parametric tests, on the other 
hand, do not assume any particular distribution of the sample (e.g., a 
non-parametric test may simply test if two distributions are similar).</p>
+<p>The first step of a hypothesis test is to compute a <em>test 
statistic</em>, which is a function of the random variates, i.e., a random 
variate itself. A hypothesis test relies on the distribution of the test 
statistic being (approximately) known. Now, the <img class="formulaInl" alt="$ 
p $" src="form_110.png"/>-value is the probability of seeing a test statistic 
at least as extreme as the one observed, assuming that <img class="formulaInl" 
alt="$ H_0 $" src="form_397.png"/> is true. In a case where the null hypothesis 
corresponds to a family of distributions (e.g., in a parametric test where <img 
class="formulaInl" alt="$ \Gamma_0 $" src="form_402.png"/> is not a singleton 
set), the <img class="formulaInl" alt="$ p $" src="form_110.png"/>-value is the 
supremum, over all possible distributions according to the null hypothesis, of 
these probabilities.</p>
+<dl class="section note"><dt>Note</dt><dd>Please refer to <a class="el" 
href="hypothesis__tests_8sql__in.html">hypothesis_tests.sql_in</a> for 
additional technical information on the MADlib implementation of hypothesis 
tests, and for detailed function signatures for all tests.</dd></dl>
 <p><a class="anchor" id="input"></a></p><dl class="section 
user"><dt>Input</dt><dd></dd></dl>
 <p>Input data is assumed to be normalized with all values stored row-wise. In 
general, the following inputs are expected.</p>
-<p>One-sample tests expect the following form: </p><pre>{TABLE|VIEW} 
<em>source</em> (
+<p><b>One-sample tests</b> expect the following form: </p><pre>{TABLE|VIEW} 
<em>source</em> (
     ...
     <em>value</em> DOUBLE PRECISION
     ...
-)</pre><p>Two-sample tests expect the following form: </p><pre>{TABLE|VIEW} 
<em>source</em> (
+)</pre><p><b>Two-sample tests</b> expect the following form: 
</p><pre>{TABLE|VIEW} <em>source</em> (
     ...
     <em>first</em> BOOLEAN,
     <em>value</em> DOUBLE PRECISION
     ...
 )</pre><p> The <code>first</code> column indicates whether a value is from the 
first sample (if <code>TRUE</code>) or the second sample (if 
<code>FALSE</code>).</p>
-<p>Many-sample tests expect the following form: </p><pre>{TABLE|VIEW} 
<em>source</em> (
+<p><b>Many-sample tests</b> expect the following form: </p><pre>{TABLE|VIEW} 
<em>source</em> (
     ...
     <em>group</em> INTEGER,
     <em>value</em> DOUBLE PRECISION
@@ -145,23 +146,23 @@ 
$(document).ready(function(){initNavTree('group__grp__stats__tests.html','');});
 <p>All tests are implemented as aggregate functions. The non-parametric 
(rank-based) tests are implemented as ordered aggregate functions and thus 
necessitate an <code>ORDER BY</code> clause. In the following, the most simple 
forms of usage are given. Specific function signatures, as described in <a 
class="el" href="hypothesis__tests_8sql__in.html">hypothesis_tests.sql_in</a>, 
may require more arguments or a different <code>ORDER BY</code> clause.</p>
 <ul>
 <li>Run a parametric one-sample test: <pre>SELECT 
<em>test</em>(<em>value</em>) FROM <em>source</em></pre> where '<em>test</em>' 
can be one of<ul>
-<li>t_test_one</li>
-<li>chi2_gof_test</li>
+<li><code>t_test_one</code> (one-sample or dependent paired Student's 
t-test)</li>
+<li><code>chi2_gof_test</code> (Pearson's chi-squared goodness of fit test, 
also used for chi-squared independence test as shown in example section 
below)</li>
 </ul>
 </li>
 <li>Run a parametric two-sample/multi-sample test: <pre>SELECT 
<em>test</em>(<em>first/group</em>, <em>value</em>) FROM <em>source</em></pre> 
where '<em>test</em>' can be one of<ul>
-<li>f_test</li>
-<li>t_test_two_pooled</li>
-<li>t_test_two_unpooled</li>
-<li>one_way_anova (multi-sample)</li>
+<li><code>f_test</code> (Fisher F-test)</li>
+<li><code>t_test_two_pooled</code> (two-sample pooled Student’s t-test, i.e. 
equal variances)</li>
+<li><code>t_test_two_unpooled</code> (two-sample unpooled t-test, i.e., 
unequal variances, also known as Welch's t-test)</li>
+<li><code>one_way_anova</code> (one-way analysis of variance, 
multi-sample)</li>
 </ul>
 </li>
 <li><p class="startli">Run a non-parametric two-sample/multi-sample test: 
</p><pre>SELECT <em>test</em>(<em>first/group</em>, <em>value</em> ORDER BY 
<em>value</em>) FROM <em>source</em></pre><p> where '<em>test</em>' can be one 
of</p><ul>
-<li>ks_test</li>
-<li>mw_test</li>
-<li>wsr_test (multi-sample)</li>
+<li><code>ks_test</code> (Kolmogorov-Smirnov test)</li>
+<li><code>mw_test</code> (Mann-Whitney test)</li>
+<li><code>wsr_test</code> (Wilcoxon signed-rank test, multi-sample)</li>
 </ul>
-<p class="startli"><b>Note:</b> Kolomogov-Smirnov two-sample test is based on 
the asymptotic theory. The p-value is given by comparing the test statistics 
with the Kolomogov distribution. The p-value is also adjusted for data with 
heavy tail distribution, which may give different results given by R function's 
ks.test. See [3] for a detailed explantion. The literature is not unanimous 
about the definitions of the Wilcoxon rank sum and Mann-Whitney tests. There 
are two possible definitions for the statistic; MADlib outputs the minimum of 
the two and uses it for significance testing. This might give different results 
for both mw_test and wsr_test compared to statistical functions in other 
popular packages (like R's wilcox.test function). See [4] for a detailed 
explanation.</p>
+<p class="startli"><b>Note on non-parametric tests:</b> Kolomogov-Smirnov 
two-sample test is based on the asymptotic theory. The p-value is given by 
comparing the test statistics with the Kolomogov distribution. The p-value is 
also adjusted for data with heavy tail distribution, which may give different 
results than those given by R function's ks.test. See [3] for a detailed 
explanation. The literature is not unanimous about the definitions of the 
Wilcoxon rank sum and Mann-Whitney tests. There are two possible definitions 
for the statistic; MADlib outputs the minimum of the two and uses it for 
significance testing. This might give different results for both mw_test and 
wsr_test compared to statistical functions in other popular packages (like R's 
wilcox.test function). See [4] for a detailed explanation.</p>
 </li>
 </ul>
 <p><a class="anchor" id="examples"></a></p><dl class="section 
user"><dt>Examples</dt><dd></dd></dl>
@@ -169,6 +170,7 @@ 
$(document).ready(function(){initNavTree('group__grp__stats__tests.html','');});
 <li><b>One-sample and two-sample t-test</b> (data is subset of mpg data from 
<a 
href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda352.htm";>NIST/SEMATECH</a>)</li>
 </ul>
 <pre class="example">
+-- Load data
 DROP TABLE IF EXISTS auto83b;
 CREATE TABLE auto83b (
     id SERIAL,
@@ -214,12 +216,48 @@ COPY auto83b (mpg_us, mpg_j) FROM stdin DELIMITER '|';
 21|\N
 19|\N
 15|\N
-\.</pre><pre class="example">DROP TABLE IF EXISTS auto83b_one_sample;
+\.
+</pre><pre class="example">
+-- Create table for one sample tests
+DROP TABLE IF EXISTS auto83b_one_sample;
 CREATE TABLE auto83b_one_sample AS
     SELECT mpg_us AS mpg
     FROM auto83b
     WHERE mpg_us is not NULL;
-
+-- Print table
+SELECT * FROM auto83b_one_sample;
+</pre><pre class="result">
+mpg 
+  18
+  15
+  18
+  16
+  17
+  15
+  14
+  14
+  21
+  10
+  10
+  11
+   9
+  13
+  12
+  18
+  21
+  19
+  21
+  15
+  16
+  15
+  11
+  20
+  21
+  19
+  15
+(27 rows)
+</pre> <pre class="example">
+-- Create table for two sample tests
 DROP TABLE IF EXISTS auto83b_two_sample;
 CREATE TABLE auto83b_two_sample AS
 SELECT TRUE AS is_us, mpg_us AS mpg
@@ -229,7 +267,64 @@ SELECT TRUE AS is_us, mpg_us AS mpg
     SELECT FALSE, mpg_j
     FROM auto83b
     WHERE mpg_j is not NULL;
-</pre><pre class="example">
+-- Print table
+SELECT * FROM auto83b_two_sample;
+</pre> <pre class="result">
+ is_us | mpg 
+-------+-----
+ t     |  18
+ t     |  15
+ t     |  18
+ t     |  16
+ t     |  17
+ t     |  15
+ t     |  14
+ t     |  14
+ t     |  21
+ t     |  10
+ t     |  10
+ t     |  11
+ t     |   9
+ t     |  13
+ t     |  12
+ t     |  18
+ t     |  21
+ t     |  19
+ t     |  21
+ t     |  15
+ t     |  16
+ t     |  15
+ t     |  11
+ t     |  20
+ t     |  21
+ t     |  19
+ t     |  15
+ f     |  24
+ f     |  27
+ f     |  27
+ f     |  25
+ f     |  31
+ f     |  35
+ f     |  24
+ f     |  19
+ f     |  31
+ f     |  32
+ f     |  24
+ f     |  26
+ f     |   9
+ f     |  32
+ f     |  37
+ f     |  38
+ f     |  34
+ f     |  34
+ f     |  32
+ f     |  33
+ f     |  32
+ f     |  25
+ f     |  24
+ f     |  37
+(51 rows)
+</pre> <pre class="example">
 -- One sample tests
 SELECT (madlib.t_test_one(mpg - 20)).* FROM auto83b_one_sample;  -- test 
rejected for mean = 20
 </pre><pre class="result">
@@ -368,6 +463,7 @@ FROM ks_sample_1;
 </ul>
 <pre class="example">
 SELECT (madlib.mw_test(is_us, mpg ORDER BY mpg)).* from auto83b_two_sample;
+-- Note first parameter above is BOOLEAN
 </pre> <pre class="result">
       statistic     | u_statistic | p_value_one_sided |  p_value_two_sided
  -------------------+-------------+-------------------+----------------------
@@ -431,7 +527,7 @@ FROM test_wsr;
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__stemmer.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__stemmer.html 
b/docs/latest/group__grp__stemmer.html
index 5525715..e96e609 100644
--- a/docs/latest/group__grp__stemmer.html
+++ b/docs/latest/group__grp__stemmer.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -226,7 +226,7 @@ SELECT madlib.stem_token_arr(array_agg(word order by word)) 
FROM token_tbl;
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__summary.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__summary.html 
b/docs/latest/group__grp__summary.html
index adf906d..88caa22 100644
--- a/docs/latest/group__grp__summary.html
+++ b/docs/latest/group__grp__summary.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -300,7 +300,7 @@ SELECT * FROM houses_summary;
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__super.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__super.html 
b/docs/latest/group__grp__super.html
index 4b5b858..e22d639 100644
--- a/docs/latest/group__grp__super.html
+++ b/docs/latest/group__grp__super.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -132,7 +132,7 @@ Modules</h2></td></tr>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__svd.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__svd.html b/docs/latest/group__grp__svd.html
index b97d3ad..cd5c335 100644
--- a/docs/latest/group__grp__svd.html
+++ b/docs/latest/group__grp__svd.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -122,10 +122,10 @@ 
$(document).ready(function(){initNavTree('group__grp__svd.html','');});
 <a href="#background">Technical Background</a> </li>
 </ul>
 </div><p>In linear algebra, the singular value decomposition (SVD) is a 
factorization of a real or complex matrix, with many useful applications in 
signal processing and statistics.</p>
-<p>Let <img class="formulaInl" alt="$A$" src="form_41.png"/> be a <img 
class="formulaInl" alt="$mxn$" src="form_191.png"/> matrix, where <img 
class="formulaInl" alt="$m \ge n$" src="form_192.png"/>. Then <img 
class="formulaInl" alt="$A$" src="form_41.png"/> can be decomposed as follows: 
</p><p class="formulaDsp">
-<img class="formulaDsp" alt="\[ A = U \Sigma V^T, \]" src="form_193.png"/>
+<p>Let <img class="formulaInl" alt="$A$" src="form_41.png"/> be a <img 
class="formulaInl" alt="$mxn$" src="form_192.png"/> matrix, where <img 
class="formulaInl" alt="$m \ge n$" src="form_193.png"/>. Then <img 
class="formulaInl" alt="$A$" src="form_41.png"/> can be decomposed as follows: 
</p><p class="formulaDsp">
+<img class="formulaDsp" alt="\[ A = U \Sigma V^T, \]" src="form_194.png"/>
 </p>
-<p> where <img class="formulaInl" alt="$U$" src="form_50.png"/> is a <img 
class="formulaInl" alt="$m \times n$" src="form_49.png"/> orthonormal matrix, 
<img class="formulaInl" alt="$\Sigma$" src="form_194.png"/> is a <img 
class="formulaInl" alt="$n \times n$" src="form_195.png"/> diagonal matrix, and 
<img class="formulaInl" alt="$V$" src="form_52.png"/> is an <img 
class="formulaInl" alt="$n \times n$" src="form_195.png"/> orthonormal matrix. 
The diagonal elements of <img class="formulaInl" alt="$\Sigma$" 
src="form_194.png"/> are called the <em>singular values</em>.</p>
+<p> where <img class="formulaInl" alt="$U$" src="form_50.png"/> is a <img 
class="formulaInl" alt="$m \times n$" src="form_49.png"/> orthonormal matrix, 
<img class="formulaInl" alt="$\Sigma$" src="form_195.png"/> is a <img 
class="formulaInl" alt="$n \times n$" src="form_196.png"/> diagonal matrix, and 
<img class="formulaInl" alt="$V$" src="form_52.png"/> is an <img 
class="formulaInl" alt="$n \times n$" src="form_196.png"/> orthonormal matrix. 
The diagonal elements of <img class="formulaInl" alt="$\Sigma$" 
src="form_195.png"/> are called the <em>singular values</em>.</p>
 <p><a class="anchor" id="syntax"></a></p><dl class="section user"><dt>SVD 
Functions</dt><dd></dd></dl>
 <p>SVD factorizations are provided for dense and sparse matrices. In addition, 
a native implementation is provided for very sparse matrices for improved 
performance.</p>
 <p><b>SVD Function for Dense Matrices</b></p>
@@ -288,7 +288,7 @@ svd_sparse_native( source_table,
 <tr>
 <th>relative_recon_error </th><td>FLOAT8. Relative quality score.  </td></tr>
 </table>
-<p>In the result summary table, the reconstruction error is computed as <img 
class="formulaInl" alt="$ \sqrt{mean((X - USV^T)_{ij}^2)} $" 
src="form_196.png"/>, where the average is over all elements of the matrices. 
The relative reconstruction error is then computed as ratio of the 
reconstruction error and <img class="formulaInl" alt="$ \sqrt{mean(X_{ij}^2)} 
$" src="form_197.png"/>.</p>
+<p>In the result summary table, the reconstruction error is computed as <img 
class="formulaInl" alt="$ \sqrt{mean((X - USV^T)_{ij}^2)} $" 
src="form_197.png"/>, where the average is over all elements of the matrices. 
The relative reconstruction error is then computed as ratio of the 
reconstruction error and <img class="formulaInl" alt="$ \sqrt{mean(X_{ij}^2)} 
$" src="form_198.png"/>.</p>
 <p><a class="anchor" id="examples"></a></p><dl class="section 
user"><dt>Examples</dt><dd></dd></dl>
 <ol type="1">
 <li>View online help for the SVD function. <pre class="example">
@@ -379,29 +379,29 @@ SELECT madlib.svd_sparse_native ( 'mat_sparse',   -- 
Input table
                           10,             -- Number of columns in matrix    
                           10              -- Number of singular values to 
compute
                           );
-</pre> <a class="anchor" id="background"></a><dl class="section 
user"><dt>Technical Background</dt><dd>In linear algebra, the singular value 
decomposition (SVD) is a factorization of a real or complex matrix, with many 
useful applications in signal processing and statistics. Let <img 
class="formulaInl" alt="$A$" src="form_41.png"/> be a <img class="formulaInl" 
alt="$m \times n$" src="form_49.png"/> matrix, where <img class="formulaInl" 
alt="$m \ge n$" src="form_192.png"/>. Then <img class="formulaInl" alt="$A$" 
src="form_41.png"/> can be decomposed as follows: <p class="formulaDsp">
-<img class="formulaDsp" alt="\[ A = U \Sigma V^T, \]" src="form_193.png"/>
+</pre> <a class="anchor" id="background"></a><dl class="section 
user"><dt>Technical Background</dt><dd>In linear algebra, the singular value 
decomposition (SVD) is a factorization of a real or complex matrix, with many 
useful applications in signal processing and statistics. Let <img 
class="formulaInl" alt="$A$" src="form_41.png"/> be a <img class="formulaInl" 
alt="$m \times n$" src="form_49.png"/> matrix, where <img class="formulaInl" 
alt="$m \ge n$" src="form_193.png"/>. Then <img class="formulaInl" alt="$A$" 
src="form_41.png"/> can be decomposed as follows: <p class="formulaDsp">
+<img class="formulaDsp" alt="\[ A = U \Sigma V^T, \]" src="form_194.png"/>
 </p>
- where <img class="formulaInl" alt="$U$" src="form_50.png"/> is a <img 
class="formulaInl" alt="$m \times n$" src="form_49.png"/> orthonormal matrix, 
<img class="formulaInl" alt="$\Sigma$" src="form_194.png"/> is a <img 
class="formulaInl" alt="$n \times n$" src="form_195.png"/> diagonal matrix, and 
<img class="formulaInl" alt="$V$" src="form_52.png"/> is an <img 
class="formulaInl" alt="$n \times n$" src="form_195.png"/> orthonormal matrix. 
The diagonal elements of <img class="formulaInl" alt="$\Sigma$" 
src="form_194.png"/> are called the <em>singular values</em>. It is possible to 
formulate the problem of computing the singular triplets ( <img 
class="formulaInl" alt="$\sigma_i, u_i, v_i$" src="form_198.png"/>) of <img 
class="formulaInl" alt="$A$" src="form_41.png"/> as an eigenvalue problem 
involving a Hermitian matrix related to <img class="formulaInl" alt="$A$" 
src="form_41.png"/>. There are two possible ways of achieving this:</dd></dl>
+ where <img class="formulaInl" alt="$U$" src="form_50.png"/> is a <img 
class="formulaInl" alt="$m \times n$" src="form_49.png"/> orthonormal matrix, 
<img class="formulaInl" alt="$\Sigma$" src="form_195.png"/> is a <img 
class="formulaInl" alt="$n \times n$" src="form_196.png"/> diagonal matrix, and 
<img class="formulaInl" alt="$V$" src="form_52.png"/> is an <img 
class="formulaInl" alt="$n \times n$" src="form_196.png"/> orthonormal matrix. 
The diagonal elements of <img class="formulaInl" alt="$\Sigma$" 
src="form_195.png"/> are called the <em>singular values</em>. It is possible to 
formulate the problem of computing the singular triplets ( <img 
class="formulaInl" alt="$\sigma_i, u_i, v_i$" src="form_199.png"/>) of <img 
class="formulaInl" alt="$A$" src="form_41.png"/> as an eigenvalue problem 
involving a Hermitian matrix related to <img class="formulaInl" alt="$A$" 
src="form_41.png"/>. There are two possible ways of achieving this:</dd></dl>
 </li>
-<li>With the cross product matrix, <img class="formulaInl" alt="$A^TA$" 
src="form_199.png"/> and <img class="formulaInl" alt="$AA^T$" 
src="form_200.png"/></li>
+<li>With the cross product matrix, <img class="formulaInl" alt="$A^TA$" 
src="form_200.png"/> and <img class="formulaInl" alt="$AA^T$" 
src="form_201.png"/></li>
 <li>With the cyclic matrix <p class="formulaDsp">
-<img class="formulaDsp" alt="\[ H(A) = \begin{bmatrix} 0 &amp; A\\ A^* &amp; 0 
\end{bmatrix} \]" src="form_201.png"/>
+<img class="formulaDsp" alt="\[ H(A) = \begin{bmatrix} 0 &amp; A\\ A^* &amp; 0 
\end{bmatrix} \]" src="form_202.png"/>
 </p>
  The singular values are the nonnegative square roots of the eigenvalues of 
the cross product matrix. This approach may imply a severe loss of accuracy in 
the smallest singular values. The cyclic matrix approach is an alternative that 
avoids this problem, but at the expense of significantly increasing the cost of 
the computation. Computing the cross product matrix explicitly is not 
recommended, especially in the case of sparse A. Bidiagonalization was proposed 
by Golub and Kahan [citation?] as a way of tridiagonalizing the cross product 
matrix without forming it explicitly. Consider the following decomposition <p 
class="formulaDsp">
-<img class="formulaDsp" alt="\[ A = P B Q^T, \]" src="form_202.png"/>
+<img class="formulaDsp" alt="\[ A = P B Q^T, \]" src="form_203.png"/>
 </p>
- where <img class="formulaInl" alt="$P$" src="form_203.png"/> and <img 
class="formulaInl" alt="$Q$" src="form_204.png"/> are unitary matrices and <img 
class="formulaInl" alt="$B$" src="form_205.png"/> is an <img class="formulaInl" 
alt="$m \times n$" src="form_49.png"/> upper bidiagonal matrix. Then the 
tridiagonal matrix <img class="formulaInl" alt="$B*B$" src="form_206.png"/> is 
unitarily similar to <img class="formulaInl" alt="$A*A$" src="form_207.png"/>. 
Additionally, specific methods exist that compute the singular values of <img 
class="formulaInl" alt="$B$" src="form_205.png"/> without forming <img 
class="formulaInl" alt="$B*B$" src="form_206.png"/>. Therefore, after computing 
the SVD of B, <p class="formulaDsp">
-<img class="formulaDsp" alt="\[ B = X\Sigma Y^T, \]" src="form_208.png"/>
+ where <img class="formulaInl" alt="$P$" src="form_204.png"/> and <img 
class="formulaInl" alt="$Q$" src="form_205.png"/> are unitary matrices and <img 
class="formulaInl" alt="$B$" src="form_206.png"/> is an <img class="formulaInl" 
alt="$m \times n$" src="form_49.png"/> upper bidiagonal matrix. Then the 
tridiagonal matrix <img class="formulaInl" alt="$B*B$" src="form_207.png"/> is 
unitarily similar to <img class="formulaInl" alt="$A*A$" src="form_208.png"/>. 
Additionally, specific methods exist that compute the singular values of <img 
class="formulaInl" alt="$B$" src="form_206.png"/> without forming <img 
class="formulaInl" alt="$B*B$" src="form_207.png"/>. Therefore, after computing 
the SVD of B, <p class="formulaDsp">
+<img class="formulaDsp" alt="\[ B = X\Sigma Y^T, \]" src="form_209.png"/>
 </p>
- it only remains to compute the SVD of the original matrix with <img 
class="formulaInl" alt="$U = PX$" src="form_209.png"/> and <img 
class="formulaInl" alt="$V = QY$" src="form_210.png"/>. </li>
+ it only remains to compute the SVD of the original matrix with <img 
class="formulaInl" alt="$U = PX$" src="form_210.png"/> and <img 
class="formulaInl" alt="$V = QY$" src="form_211.png"/>. </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 Thu Apr 7 2016 14:24:10 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__svdmf.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__svdmf.html 
b/docs/latest/group__grp__svdmf.html
index 1738e34..b39787e 100644
--- a/docs/latest/group__grp__svdmf.html
+++ b/docs/latest/group__grp__svdmf.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9dev</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -114,7 +114,7 @@ 
$(document).ready(function(){initNavTree('group__grp__svdmf.html','');});
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:11 for MADlib by
+    <li class="footer">Generated on Tue Jun 7 2016 09:40:56 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/bed9253d/docs/latest/group__grp__svec.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__svec.html 
b/docs/latest/group__grp__svec.html
index 2e03858..15f3d56 100644
--- a/docs/latest/group__grp__svec.html
+++ b/docs/latest/group__grp__svec.html
@@ -47,7 +47,7 @@
   <td id="projectlogo"><a href="http://madlib.net";><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.9</span>
+   <span id="projectnumber">1.9.1</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -434,7 +434,7 @@ SELECT 
madlib.svec_cast_positions_float8arr(ARRAY[1,2,7,5,87],ARRAY[.1,.2,.7,.5,
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
+    <li class="footer">Generated on Tue Sep 20 2016 11:27:01 for MADlib by
     <a href="http://www.doxygen.org/index.html";>
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

Reply via email to