You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@madlib.apache.org by xt...@apache.org on 2016/04/07 23:47:27 UTC

[24/51] [abbrv] [partial] incubator-madlib-site git commit: Update doc for 1.9 release

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__stemmer.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__stemmer.html b/docs/latest/group__grp__stemmer.html
new file mode 100644
index 0000000..5525715
--- /dev/null
+++ b/docs/latest/group__grp__stemmer.html
@@ -0,0 +1,235 @@
+<!-- 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: Stemming</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</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__stemmer.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">Stemming<div class="ingroups"><a class="el" href="group__grp__datatrans.html">Data Types and Transformations</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="toc"><b>Contents</b> </p><ul>
+<li>
+<a href="#notes">Implementation Notes</a> </li>
+<li>
+<a href="#list">List of Stemmer Operations</a> </li>
+<li>
+<a href="#examples">Examples</a> </li>
+<li>
+<a href="#related">Related Topics</a> </li>
+</ul>
+</div><p>This module provides a basic stemming operation for text input. It is a support module for several machine learning algorithms that require a stemmer. Currently, it only supports English words.</p>
+<p>This function is a SQL interface to the implementation of the <a href="http://tartarus.org/~martin/PorterStemmer/">Porter Stemming Algorithm</a>. The original stemming algorithm is written and maintained by Martin Porter</p>
+<p><a class="anchor" id="notes"></a></p><dl class="section user"><dt>Implementation Notes</dt><dd></dd></dl>
+<p>All functions described in this module work with text OR text array.</p>
+<p>Several of the function require TEXT VALUES, and returns NULL for a NULL input. See details in description of individual functions.</p>
+<p><a class="anchor" id="list"></a></p><dl class="section user"><dt>Stemmer Operations</dt><dd><table  class="output">
+<tr>
+<th><a class="el" href="porter__stemmer_8sql__in.html#aca5bc24a9a8f5c33470b9f0bf0b3c515" title="Returns stem of input token. Returns NULL if input token is NULL. ">stem_token()</a></th><td><p class="starttd">Returns the stem of the token. Returns NULL if input is NULL.</p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<th><a class="el" href="porter__stemmer_8sql__in.html#a1ac3a2fd645ddf807b36a1328134a4ea" title="Returns stems in an array of input token array. Returns NULL element for corresponding input NULL tok...">stem_token_arr()</a></th><td><p class="starttd">Returns the stems in an array of input token array. The stem would be NULL for corresponding NULL token.</p>
+<p class="endtd"><a class="anchor" id="examples"></a></p>
+</td></tr>
+</table>
+</dd></dl>
+<dl class="section user"><dt>Examples</dt><dd></dd></dl>
+<ol type="1">
+<li>Create a table with some words to be stemmed. <pre class="example">
+CREATE TABLE token_tbl ( id integer,
+                         word text
+                       );
+INSERT INTO token_tbl VALUES
+ (1, 'kneel'),
+ (2, 'kneeled'),
+ (3, 'kneeling'),
+ (4, 'kneels'),
+ (5, 'knees'),
+ (6, 'knell'),
+ (7, 'knelt'),
+ (8, 'knew'),
+ (9, 'knick'),
+ (10, 'knif'),
+ (11, 'knife'),
+ (12, 'knight'),
+ (13, 'knightly'),
+ (14, 'knights'),
+ (15, 'knit'),
+ (16, 'knits'),
+ (17, 'knitted'),
+ (18, 'knitting'),
+ (19, 'knives'),
+ (20, 'knob'),
+ (21, 'knobs'),
+ (22, 'knock'),
+ (23, 'knocked'),
+ (24, 'knocker'),
+ (25, 'knockers'),
+ (26, 'knocking'),
+ (27, 'knocks'),
+ (28, 'knopp'),
+ (29, 'knot'),
+ (30, 'knots');
+</pre></li>
+<li>Return the stem words <pre class="example">
+SELECT madlib.stem_token(word) FROM token_tbl;
+</pre> <pre class="result">
+ stem_token
+&#160;------------
+ kneel
+ kneel
+ kneel
+ kneel
+ knee
+ knell
+ knelt
+ knew
+ knick
+ knif
+ knife
+ knight
+ knight
+ knight
+ knit
+ knit
+ knit
+ knit
+ knive
+ knob
+ knob
+ knock
+ knock
+ knocker
+ knocker
+ knock
+ knock
+ knopp
+ knot
+ knot
+(30 rows)
+</pre></li>
+<li>The input can be processed as an array <pre class="example">
+SELECT madlib.stem_token_arr(array_agg(word order by word)) FROM token_tbl;
+</pre> <pre class="result">
+  stem_token_arr
+&#160;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ {kneel,kneel,kneel,kneel,knee,knell,knelt,knew,knick,knif,knife,knight,knight,knight,knit,knit,knit,knit,knive,knob,knob,knock,knock,knocker,knocker,knock,knock,knopp,knot,knot}
+(1 row)
+</pre></li>
+</ol>
+<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="porter__stemmer_8sql__in.html" title="implementation of porter stemmer operations in SQL ">porter_stemmer.sql_in</a> for list of functions and usage. </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 Thu Apr 7 2016 14:24:10 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/c506dd05/docs/latest/group__grp__summary.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__summary.html b/docs/latest/group__grp__summary.html
index 146d0ba..adf906d 100644
--- a/docs/latest/group__grp__summary.html
+++ b/docs/latest/group__grp__summary.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </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 src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<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 -->
@@ -40,7 +34,7 @@
   (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', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <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.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -125,7 +119,7 @@ $(document).ready(function(){initNavTree('group__grp__summary.html','');});
 <li>
 <a href="#related">Related Topics</a> </li>
 </ul>
-</div><p>The MADlib <b><a class="el" href="summary_8sql__in.html#a14ff66aaa0248c5e2741dfaf2e360881">summary()</a></b> function is a generic function that produces summary statistics from any data table. The function invokes various methods from the MADlib library to provide an overview of the data.</p>
+</div><p>The MADlib <b><a class="el" href="summary_8sql__in.html#a14ff66aaa0248c5e2741dfaf2e360881">summary()</a></b> function produces summary statistics for any data table. The function invokes various methods from the MADlib library to provide the data overview.</p>
 <p><a class="anchor" id="usage"></a></p><dl class="section user"><dt>Summary Function Syntax</dt><dd>The <b><a class="el" href="summary_8sql__in.html#a14ff66aaa0248c5e2741dfaf2e360881">summary()</a></b> function has the following syntax:</dd></dl>
 <pre class="syntax">
 summary ( source_table,
@@ -138,12 +132,7 @@ summary ( source_table,
           how_many_mfv,
           get_estimates
         )
-</pre><p> <b>Arguments</b> </p><dl class="arglist">
-<dt>source_table </dt>
-<dd>TEXT. The name of the table containing the input data. </dd>
-<dt>output_table </dt>
-<dd><p class="startdd">TEXT. The name of the table to contain the output summary data.</p>
-<p>The <b><a class="el" href="summary_8sql__in.html#a14ff66aaa0248c5e2741dfaf2e360881">summary()</a></b> function returns a composite type containing three fields: </p><table  class="output">
+</pre><p> The <b><a class="el" href="summary_8sql__in.html#a14ff66aaa0248c5e2741dfaf2e360881">summary()</a></b> function returns a composite type containing three fields: </p><table  class="output">
 <tr>
 <th>output_table </th><td>TEXT. The name of the output table.  </td></tr>
 <tr>
@@ -151,7 +140,12 @@ summary ( source_table,
 <tr>
 <th>duration </th><td>FLOAT8. The time taken (in seconds) to compute the summary.  </td></tr>
 </table>
-<p class="enddd">Summary statistics are saved in a table with the name specifed in the <em>output_table</em> argument. The table can contain the following columns: </p><table  class="output">
+<p><b>Arguments</b> </p><dl class="arglist">
+<dt>source_table </dt>
+<dd>TEXT. The name of the table containing the input data. </dd>
+<dt>output_table </dt>
+<dd><p class="startdd">TEXT. The name of the table to contain the output summary data.</p>
+<p class="enddd">Summary statistics are saved in a table with the name specifed in the <em>output_table</em> argument. The table contains the following columns: </p><table  class="output">
 <tr>
 <th>group_by </th><td>Group-by column name. NULL if none provided.  </td></tr>
 <tr>
@@ -159,7 +153,7 @@ summary ( source_table,
 <tr>
 <th>target_column </th><td>Targeted column values for which summary is requested.  </td></tr>
 <tr>
-<th>column_number </th><td>Physical column number for the target column, as described in <em>pg_attribute</em>.  </td></tr>
+<th>column_number </th><td>Physical column number for the target column, as described in <em>pg_attribute</em>  catalog.  </td></tr>
 <tr>
 <th>data_type </th><td>Data type of the target column. Standard GPDB type descriptors are displayed.  </td></tr>
 <tr>
@@ -199,13 +193,15 @@ summary ( source_table,
 <dt>target_columns (optional) </dt>
 <dd>TEXT, default NULL. A comma-separated list of columns to summarize. If NULL, summaries are produced for all columns. </dd>
 <dt>grouping_cols (optional) </dt>
-<dd>TEXT, default: null. A comma-separated list of columns on which to group results. If NULL, summaries are produced on the complete table. </dd>
+<dd>TEXT, default: null. A comma-separated list of columns on which to group results. If NULL, summaries are produced on the complete table. <dl class="section note"><dt>Note</dt><dd>Please note that summary statistics are calculated for each grouping column independently. That is, grouping columns are not combined together as in the regular PostgreSQL style GROUP BY directive. (This was done to reduce long run time and huge output table size which would otherwise result in the case of large input tables with a lot of grouping_cols and target_cols specified.) </dd></dl>
+</dd>
 <dt>get_distinct (optional) </dt>
 <dd>BOOLEAN, default TRUE. If true, distinct values are counted. </dd>
 <dt>get_quartiles (optional) </dt>
-<dd>BOOLEAN, default TRUE. If TRUE, qartiles are computed. </dd>
+<dd>BOOLEAN, default TRUE. If TRUE, quartiles are computed. </dd>
 <dt>ntile_array (optional) </dt>
-<dd>FLOAT8[], default NULL. An array of quantile values to compute. If NULL, quantile values are not computed. </dd>
+<dd>FLOAT8[], default NULL. An array of quantile values to compute. If NULL, quantile values are not computed. <dl class="section note"><dt>Note</dt><dd>Quartile and quantile functions are not available for PostgreSQL 9.3 or lower. If you are using PostgreSQL 9.3 or lower, the output table will not contain these values, even if you set 'get_quartiles' = TRUE or provide an array of quantile values for the parameter 'ntile_array'. </dd></dl>
+</dd>
 <dt>how_many_mfv (optional) </dt>
 <dd>INTEGER, default: 10. The number of most-frequent-values to compute. </dd>
 <dt>get_estimates (optional) </dt>
@@ -293,6 +289,8 @@ SELECT * FROM houses_summary;
 <li>If <em>get_estimates</em> is FALSE then the distinct values are computed in a slow but exact method. The most frequent values are computed using a faithful implementation that preserves the approximation guarantees of the Cormode/Muthukrishnan method (more information in <a class="el" href="group__grp__mfvsketch.html">MFV (Most Frequent Values)</a>).</li>
 </ul>
 </li>
+<li>Summary statistics are calculated for each grouping column independently. That is, grouping columns are not combined together as in the regular PostgreSQL style GROUP BY directive. (This was done to reduce long run time and huge output table size which would otherwise result in the case of large input tables with a lot of grouping_cols and target_cols specified.)</li>
+<li>Quartile and quantile functions are not available for PostgreSQL 9.3 or lower. If you are using PostgreSQL 9.3 or lower, the output table will not contain these values, even if you set 'get_quartiles' = TRUE or provide an array of quantile values for the parameter 'ntile_array'.</li>
 </ul>
 </dd></dl>
 <p><a class="anchor" id="related"></a></p><dl class="section user"><dt>Related Topics</dt><dd>File <a class="el" href="summary_8sql__in.html" title="Summary function for descriptive statistics. ">summary.sql_in</a> documenting the <b><a class="el" href="summary_8sql__in.html#a14ff66aaa0248c5e2741dfaf2e360881">summary()</a></b> function</dd></dl>
@@ -302,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 Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 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/c506dd05/docs/latest/group__grp__super.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__super.html b/docs/latest/group__grp__super.html
index 3e0fabf..4b5b858 100644
--- a/docs/latest/group__grp__super.html
+++ b/docs/latest/group__grp__super.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </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 src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<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 -->
@@ -40,7 +34,7 @@
   (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', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <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.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -122,12 +116,15 @@ $(document).ready(function(){initNavTree('group__grp__super.html','');});
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
 Modules</h2></td></tr>
+<tr class="memitem:group__grp__crf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__crf.html">Conditional Random Field</a></td></tr>
+<tr class="memdesc:group__grp__crf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a Conditional Random Fields (CRF) model for labeling sequential data. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:group__grp__regml"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__regml.html">Regression Models</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__grp__tree"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__tree.html">Tree Methods</a></td></tr>
+<tr class="memitem:group__grp__svm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__svm.html">Support Vector Machines</a></td></tr>
+<tr class="memdesc:group__grp__svm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solves classification and regression problems by separating data with a hyperplane or other nonlinear decision boundary. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__grp__crf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__crf.html">Conditional Random Field</a></td></tr>
-<tr class="memdesc:group__grp__crf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a Conditional Random Fields (CRF) model for labeling sequential data. <br /></td></tr>
+<tr class="memitem:group__grp__tree"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__tree.html">Tree Methods</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
@@ -135,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 Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 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/c506dd05/docs/latest/group__grp__super.js
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__super.js b/docs/latest/group__grp__super.js
index e8fc683..a83833b 100644
--- a/docs/latest/group__grp__super.js
+++ b/docs/latest/group__grp__super.js
@@ -1,6 +1,7 @@
 var group__grp__super =
 [
+    [ "Conditional Random Field", "group__grp__crf.html", null ],
     [ "Regression Models", "group__grp__regml.html", "group__grp__regml" ],
-    [ "Tree Methods", "group__grp__tree.html", "group__grp__tree" ],
-    [ "Conditional Random Field", "group__grp__crf.html", null ]
+    [ "Support Vector Machines", "group__grp__svm.html", null ],
+    [ "Tree Methods", "group__grp__tree.html", "group__grp__tree" ]
 ];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__support.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__support.html b/docs/latest/group__grp__support.html
deleted file mode 100644
index 5769e68..0000000
--- a/docs/latest/group__grp__support.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!-- 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: Support Modules</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>
-<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 src="../mathjax/MathJax.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', 'auto');
-  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.incubator.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.7dev</span>
-   </div>
-   <div id="projectbrief">User Documentation</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__support.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="summary">
-<a href="#groups">Modules</a>  </div>
-  <div class="headertitle">
-<div class="title">Support Modules</div>  </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:group__grp__array"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__array.html">Array Operations</a></td></tr>
-<tr class="memdesc:group__grp__array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides fast array operations supporting other MADlib modules. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__grp__svec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__svec.html">Sparse Vectors</a></td></tr>
-<tr class="memdesc:group__grp__svec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements a sparse vector data type that provides compressed storage of vectors that may have many duplicate elements. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__grp__prob"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__prob.html">Probability Functions</a></td></tr>
-<tr class="memdesc:group__grp__prob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides cumulative distribution, density/mass, and quantile functions for a wide range of probability distributions. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__grp__linalg"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__linalg.html">Linear Algebra Operations</a></td></tr>
-<tr class="memdesc:group__grp__linalg"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides utility functions for basic linear algebra operations. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__grp__pmml"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__pmml.html">PMML Export</a></td></tr>
-<tr class="memdesc:group__grp__pmml"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements the PMML XML standard to describe and exchange models produced by data mining and machine learning algorithms. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__grp__data__prep"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__data__prep.html">Data Preparation</a></td></tr>
-<tr class="memdesc:group__grp__data__prep"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides utility functions helpful for data preparation before modeling. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>A collection of methods commonly used in conjunction with other MADlib routines. </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 Jul 27 2015 20:27:22 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/c506dd05/docs/latest/group__grp__support.js
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__support.js b/docs/latest/group__grp__support.js
deleted file mode 100644
index 8be21d8..0000000
--- a/docs/latest/group__grp__support.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var group__grp__support =
-[
-    [ "Array Operations", "group__grp__array.html", null ],
-    [ "Sparse Vectors", "group__grp__svec.html", null ],
-    [ "Probability Functions", "group__grp__prob.html", null ],
-    [ "Linear Algebra Operations", "group__grp__linalg.html", null ],
-    [ "PMML Export", "group__grp__pmml.html", null ],
-    [ "Data Preparation", "group__grp__data__prep.html", null ]
-];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__svd.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__svd.html b/docs/latest/group__grp__svd.html
index fd1837f..b97d3ad 100644
--- a/docs/latest/group__grp__svd.html
+++ b/docs/latest/group__grp__svd.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </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 src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<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 -->
@@ -40,7 +34,7 @@
   (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', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <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.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -112,7 +106,7 @@ $(document).ready(function(){initNavTree('group__grp__svd.html','');});
 
 <div class="header">
   <div class="headertitle">
-<div class="title">Singular Value Decomposition<div class="ingroups"><a class="el" href="group__grp__datatrans.html">Data Types and Transforms</a> &raquo; <a class="el" href="group__grp__arraysmatrix.html">Arrays and Matrices</a> &raquo; <a class="el" href="group__grp__matrix__factorization.html">Matrix Factorization</a></div></div>  </div>
+<div class="title">Singular Value Decomposition<div class="ingroups"><a class="el" href="group__grp__datatrans.html">Data Types and Transformations</a> &raquo; <a class="el" href="group__grp__arraysmatrix.html">Arrays and Matrices</a> &raquo; <a class="el" href="group__grp__matrix__factorization.html">Matrix Factorization</a></div></div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><b>Contents</b> </p><ul>
@@ -128,12 +122,12 @@ $(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 \(A\) be a \(mxn\) matrix, where \(m \ge n\). Then \(A\) can be decomposed as follows: </p><p class="formulaDsp">
-\[ A = U \Sigma V^T, \]
+<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>
-<p> where \(U\) is a \(m \times n\) orthonormal matrix, \(\Sigma\) is a \(n \times n\) diagonal matrix, and \(V\) is an \(n \times n\) orthonormal matrix. The diagonal elements of \(\Sigma\) are called the <em>{singular</em> values}.</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><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 matrices, sparse matrices, and block matrices. In addition, a native implementation is provided for sparse matrices for improved performance.</p>
+<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>
 <pre class="syntax">
 svd( source_table,
@@ -146,7 +140,7 @@ svd( source_table,
 </pre><p> <b>Arguments</b> </p><dl class="arglist">
 <dt>source_table </dt>
 <dd><p class="startdd">TEXT. Source table name (dense matrix).</p>
-<p class="enddd">The table contains a <code>row_id</code> column that identifies each row. Further, the other columns are assumed to be the data for the matrix represented in two possible forms, illustrated by the following 2x2 matrix example:</p><ol type="1">
+<p class="enddd">The table contains a <code>row_id</code> column that identifies each row, with numbering starting from 1. The other columns contain the data for the matrix. There are two possible dense formats as illustrated by the 2x2 matrix example below. You can use either of these dense formats:</p><ol type="1">
 <li><pre class="example">
             row_id     col1     col2
 row1         1           1         0
@@ -160,19 +154,20 @@ row2        2       {0, 1}
 </ol>
 </dd>
 <dt>output_table_prefix </dt>
-<dd>TEXT. Prefix for output tables. See <a href="#output">Output Tables</a>. </dd>
+<dd>TEXT. Prefix for output tables. See <a href="#output">Output Tables</a> below for a description of the convention used. </dd>
 <dt>row_id </dt>
 <dd>TEXT. ID for each row. </dd>
 <dt>k </dt>
-<dd>INTEGER. Number of singular vectors to compute. </dd>
-<dt>n_iterations (optional) </dt>
-<dd>INTEGER. Number of iterations to run. </dd>
+<dd>INTEGER. Number of singular values to compute. </dd>
+<dt>n_iterations (optional).  </dt>
+<dd>INTEGER. Number of iterations to run. <dl class="section note"><dt>Note</dt><dd>The number of iterations must be in the range [k, column dimension], where k is number of singular values. </dd></dl>
+</dd>
 <dt>result_summary_table (optional) </dt>
-<dd>TEXT. The name of the table to store result summary. </dd>
+<dd>TEXT. The name of the table to store the result summary. </dd>
 </dl>
 <hr/>
-<p> <b>SVD Function for Sparse Matrix input</b></p>
-<p>Use this function for matrices that are represented in the sparse-matrix format (example below). <b>The input matrix is converted to a dense matrix before the SVD operation.</b></p>
+<p> <b>SVD Function for Sparse Matrices</b></p>
+<p>Use this function for matrices that are represented in the sparse-matrix format (example below). <b>Note that the input matrix is converted to a dense matrix before the SVD operation, for efficient computation reasons. </b></p>
 <pre class="syntax">
 svd_sparse( source_table,
             output_table_prefix,
@@ -188,16 +183,21 @@ svd_sparse( source_table,
 </pre><p> <b>Arguments</b> </p><dl class="arglist">
 <dt>source_table </dt>
 <dd><p class="startdd">TEXT. Source table name (sparse matrix).</p>
-<p>An example sparse matrix representation is given below: </p><pre class="example">
-       row_id    col_id    value
-row1      1         1        2
-row2      2         1        1
-row3      3         2        1
-</pre><p> The <code>row_id</code> represents the row number, <code>col_id</code> represents the column number and the <code>value</code> represents the matrix value at [<code>row_id</code>, <code>col_id</code>]. The <code>row_id</code> and <code>col_id</code> values are indexed starting from 0. Thus the <code>row_id</code> ranges from 1 to <code>row_dim</code>, while the <code>col_id</code> ranges from 1 to <code>col_dim</code> </p>
-<p class="enddd"></p>
+<p>A sparse matrix is represented using the row and column indices for each non-zero entry of the matrix. This representation is useful for matrices containing multiple zero elements. Below is an example of a sparse 4x7 matrix with just 6 out of 28 entries being non-zero. The dimensionality of the matrix is inferred using the max value in <em>row</em> and <em>col</em> columns. Note the last entry is included (even though it is 0) to provide the dimensionality of the matrix, indicating that the 4th row and 7th column contain all zeros. </p><pre class="example">
+ row_id | col_id | value
+--------+--------+-------
+      1 |      1 |     9
+      1 |      5 |     6
+      1 |      6 |     6
+      2 |      1 |     8
+      3 |      1 |     3
+      3 |      2 |     9
+      4 |      7 |     0
+(6 rows)
+</pre> <p class="enddd"></p>
 </dd>
 <dt>output_table_prefix </dt>
-<dd>TEXT. Prefix for output tables. See <a href="#output">Output Tables</a>. </dd>
+<dd>TEXT. Prefix for output tables. See <a href="#output">Output Tables</a> below for a description of the convention used.  </dd>
 <dt>row_id </dt>
 <dd>TEXT. Name of the column containing the row index for each entry in sparse matrix. </dd>
 <dt>col_id </dt>
@@ -209,15 +209,16 @@ row3      3         2        1
 <dt>col_dim </dt>
 <dd>INTEGER. Number of columns in matrix. </dd>
 <dt>k </dt>
-<dd>INTEGER. Number of singular vectors to compute. </dd>
+<dd>INTEGER. Number of singular values to compute. </dd>
 <dt>n_iterations (optional) </dt>
-<dd>INTEGER. Number of iterations to run. </dd>
+<dd>INTEGER. Number of iterations to run. <dl class="section note"><dt>Note</dt><dd>The number of iterations must be in the range [k, column dimension], where k is number of singular values. </dd></dl>
+</dd>
 <dt>result_summary_table (optional) </dt>
-<dd>TEXT, default: NULL. The name of the table to store a summary of the results. </dd>
+<dd>TEXT. The name of the table to store the result summary. </dd>
 </dl>
 <hr/>
-<p> <b>Native implementation for sparse matrix</b></p>
-<p>Use this function for matrices that are represented in the sparse-matrix format (example below). This function use the native sparse representation while computing the SVD. <b>This function should be favored if the matrix is highly sparse.</b></p>
+<p> <b>Native Implementation for Sparse Matrices</b></p>
+<p>Use this function for matrices that are represented in the sparse-matrix format (see sparse matrix example above). This function uses the native sparse representation while computing the SVD. </p><dl class="section note"><dt>Note</dt><dd>Note that this function should be favored if the matrix is highly sparse, since it computes very sparse matrices efficiently. </dd></dl>
 <pre class="syntax">
 svd_sparse_native( source_table,
                    output_table_prefix,
@@ -234,7 +235,7 @@ svd_sparse_native( source_table,
 <dt>source_table </dt>
 <dd>TEXT. Source table name (sparse matrix - see example above). </dd>
 <dt>output_table_prefix </dt>
-<dd>TEXT. Prefix for output tables. See <a href="#output">Output Tables</a>. </dd>
+<dd>TEXT. Prefix for output tables. See <a href="#output">Output Tables</a> below for a description of the convention used. </dd>
 <dt>row_id </dt>
 <dd>TEXT. ID for each row. </dd>
 <dt>col_id </dt>
@@ -246,54 +247,35 @@ svd_sparse_native( source_table,
 <dt>col_dim </dt>
 <dd>INTEGER. Col dimension of sparse matrix. </dd>
 <dt>k </dt>
-<dd>INTEGER. Number of singular vectors to compute. </dd>
+<dd>INTEGER. Number of singular values to compute. </dd>
 <dt>n_iterations (optional) </dt>
-<dd>INTEGER. Number of iterations to run. </dd>
+<dd>INTEGER. Number of iterations to run. <dl class="section note"><dt>Note</dt><dd>The number of iterations must be in the range [k, column dimension], where k is number of singular values. </dd></dl>
+</dd>
 <dt>result_summary_table (optional) </dt>
 <dd>TEXT. Table name to store result summary. </dd>
 </dl>
 <hr/>
-<p> <b>Block matrices</b></p>
-<pre class="syntax">
-svd_block( source_table,
-           output_table_prefix,
-           k,
-           n_iterations,
-           result_summary_table
-         );
-</pre><p> <b>Arguments</b> </p><dl class="arglist">
-<dt>source_table </dt>
-<dd>TEXT. Source table name (block matrix). </dd>
-<dt>output_table_prefix </dt>
-<dd>TEXT. Prefix for output tables. See <a href="#output">Output Tables</a>. </dd>
-<dt>k </dt>
-<dd>INTEGER. Number of singular vectors to compute. </dd>
-<dt>n_iterations (optional) </dt>
-<dd>INTEGER. Number of iterations to run. </dd>
-<dt>result_summary_table (optional) </dt>
-<dd>TEXT. Table name to store result summary. </dd>
-</dl>
 <p><a class="anchor" id="output"></a></p><dl class="section user"><dt>Output Tables</dt><dd></dd></dl>
-<p>Output for eigen vectors/values is in the following three tables:</p><ul>
-<li>Left singular matrix: Table named &lt;output_table_prefix&gt;_left (e.g. ‘netflix_u’)</li>
-<li>Right singular matrix: Table named &lt;output_table_prefix&gt;_right (e.g. ‘netflix_v’)</li>
-<li>Singular values: Table named &lt;output_table_prefix&gt;_s (e.g. ‘netflix_s’)</li>
+<p>Output for eigenvectors/values is in the following three tables:</p><ul>
+<li>Left singular matrix: Table is named &lt;output_table_prefix&gt;_u (e.g. ‘netflix_u’)</li>
+<li>Right singular matrix: Table is named &lt;output_table_prefix&gt;_v (e.g. ‘netflix_v’)</li>
+<li>Singular values: Table is named &lt;output_table_prefix&gt;_s (e.g. ‘netflix_s’)</li>
 </ul>
-<p>The singular vector tables are of the format: </p><table  class="output">
+<p>The left and right singular vector tables are of the format: </p><table  class="output">
 <tr>
-<th>row_id </th><td>INTEGER. The ID corresponding to each eigen value (in decreasing order).  </td></tr>
+<th>row_id </th><td>INTEGER. The ID corresponding to each eigenvalue (in decreasing order).  </td></tr>
 <tr>
 <th>row_vec </th><td>FLOAT8[]. Singular vector elements for this row_id. Each array is of size k.  </td></tr>
 </table>
-<p>The singular values table is in a sparse table format, since only the diagonal elements of the matrix are non-zero: </p><table  class="output">
+<p>The singular values table is in sparse table format, since only the diagonal elements of the matrix are non-zero: </p><table  class="output">
 <tr>
-<th>row_id </th><td>INTEGER. <em>i</em> for <em>ith</em> eigen value.  </td></tr>
+<th>row_id </th><td>INTEGER. <em>i</em> for <em>ith</em> eigenvalue.  </td></tr>
 <tr>
-<th>col_id </th><td>INTEGER. <em>i</em> for <em>ith</em> eigen value (same as row_id).  </td></tr>
+<th>col_id </th><td>INTEGER. <em>i</em> for <em>ith</em> eigenvalue (same as row_id).  </td></tr>
 <tr>
-<th>value </th><td>FLOAT8. Eigen Value.  </td></tr>
+<th>value </th><td>FLOAT8. Eigenvalue.  </td></tr>
 </table>
-<p>All <code>row_id</code> (and <code>col_id</code>) in the above tables start from 0.</p>
+<p>All <code>row_id</code> and <code>col_id</code> in the above tables start from 1.</p>
 <p>The result summary table has the following columns: </p><table  class="output">
 <tr>
 <th>rows_used </th><td>INTEGER. Number of rows used for SVD calculation.  </td></tr>
@@ -304,91 +286,122 @@ svd_block( source_table,
 <tr>
 <th>recon_error </th><td>FLOAT8. Total quality score (i.e. approximation quality) for this set of orthonormal basis.  </td></tr>
 <tr>
-<th>relative_recon_error </th><td>FLOAT8. relative quality score.  </td></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 \( \sqrt{mean((X - USV^T)_{ij}^2)} \), where the average is over all elements of the matrices. The relative reconstruction error is then computed as ratio of the reconstruction error and \( \sqrt{mean(X_{ij}^2)} \).</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_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><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">
 SELECT madlib.svd();
 </pre></li>
 <li>Create an input dataset (dense matrix). <pre class="example">
+DROP TABLE IF EXISTS mat, mat_sparse, svd_summary_table, svd_u, svd_v, svd_s;
 CREATE TABLE mat (
     row_id integer,
     row_vec double precision[]
 );
-COPY mat (row_id, row_vec) FROM stdin delimiter '|';
-1|{396,840,353,446,318,886,15,584,159,383}
-2|{691,58,899,163,159,533,604,582,269,390}
-3|{293,742,298,75,404,857,941,662,846,2}
-4|{462,532,787,265,982,306,600,608,212,885}
-5|{304,151,337,387,643,753,603,531,459,652}
-6|{327,946,368,943,7,516,272,24,591,204}
-7|{877,59,260,302,891,498,710,286,864,675}
-8|{458,959,774,376,228,354,300,669,718,565}
-9|{824,390,818,844,180,943,424,520,65,913}
-10|{882,761,398,688,761,405,125,484,222,873}
-11|{528,1,860,18,814,242,314,965,935,809}
-12|{492,220,576,289,321,261,173,1,44,241}
-13|{415,701,221,503,67,393,479,218,219,916}
-14|{350,192,211,633,53,783,30,444,176,932}
-15|{909,472,871,695,930,455,398,893,693,838}
-16|{739,651,678,577,273,935,661,47,373,618}
-\.
+INSERT INTO mat VALUES
+(1,'{396,840,353,446,318,886,15,584,159,383}'),
+(2,'{691,58,899,163,159,533,604,582,269,390}'), 
+(3,'{293,742,298,75,404,857,941,662,846,2}'),
+(4,'{462,532,787,265,982,306,600,608,212,885}'),
+(5,'{304,151,337,387,643,753,603,531,459,652}'),
+(6,'{327,946,368,943,7,516,272,24,591,204}'),
+(7,'{877,59,260,302,891,498,710,286,864,675}'),
+(8,'{458,959,774,376,228,354,300,669,718,565}'),
+(9,'{824,390,818,844,180,943,424,520,65,913}'),
+(10,'{882,761,398,688,761,405,125,484,222,873}'),
+(11,'{528,1,860,18,814,242,314,965,935,809}'),
+(12,'{492,220,576,289,321,261,173,1,44,241}'),
+(13,'{415,701,221,503,67,393,479,218,219,916}'),
+(14,'{350,192,211,633,53,783,30,444,176,932}'),
+(15,'{909,472,871,695,930,455,398,893,693,838}'),
+(16,'{739,651,678,577,273,935,661,47,373,618}');
 </pre></li>
 <li>Run SVD function for a dense matrix. <pre class="example">
-DROP TABLE IF EXISTS svd_u;
-DROP TABLE IF EXISTS svd_v;
-DROP TABLE IF EXISTS svd_s;
-SELECT madlib.svd( 'mat',
-                   'svd',
-                   'row_id',
-                   10
+SELECT madlib.svd( 'mat',       -- Input table
+                   'svd',       -- Output table prefix
+                   'row_id',    -- Column name with row index 
+                   10,          -- Number of singular values to compute
+                   NULL,        -- Use default number of iterations
+                   'svd_summary_table'  -- Result summary table
                  );
 </pre></li>
-<li>Create a sparse matrix by running the <a class="el" href="matrix__ops_8sql__in.html#a9ed8df5fc43740c00bfdfd3f934429ef">matrix_sparsify()</a> utility function on the dense matrix. <pre class="example">
-DROP TABLE IF EXISTS mat_sparse;
-SELECT madlib.matrix_sparsify( 'mat',
-                               'mat_sparse',
-                               FALSE
-                             );
-DROP TABLE IF EXISTS svd_u;
-DROP TABLE IF EXISTS svd_v;
-DROP TABLE IF EXISTS svd_s;
+<li>Print out the singular values and the summary table. For the singular values: <pre class="example">
+SELECT * FROM svd_s ORDER BY row_id;
+</pre> Result: <pre class="result">
+ row_id | col_id |      value       
+&#160;--------+--------+------------------
+      1 |      1 | 6475.67225281804
+      2 |      2 | 1875.18065580415
+      3 |      3 | 1483.25228429636
+      4 |      4 | 1159.72262897427
+      5 |      5 | 1033.86092570574
+      6 |      6 | 948.437358703966
+      7 |      7 | 795.379572772455
+      8 |      8 | 709.086240684469
+      9 |      9 | 462.473775959371
+     10 |     10 | 365.875217945698
+     10 |     10 |                 
+(11 rows)
+</pre> For the summary table: <pre class="example">
+SELECT * FROM svd_summary_table;
+</pre> Result: <pre class="result">
+ rows_used | exec_time (ms) | iter |    recon_error    | relative_recon_error 
+&#160;-----------+----------------+------+-------------------+----------------------
+        16 |        1332.47 |   10 | 4.36920148766e-13 |    7.63134130332e-16
+(1 row)
+</pre></li>
+<li>Create a sparse matrix by running the <a class="el" href="matrix__ops_8sql__in.html#a390fb7234f49e17c780e961184873759">matrix_sparsify()</a> utility function on the dense matrix. <pre class="example">
+SELECT madlib.matrix_sparsify('mat', 
+                              'row=row_id, val=row_vec',
+                              'mat_sparse',
+                              'row=row_id, col=col_id, val=value');
 </pre></li>
 <li>Run the SVD function for a sparse matrix. <pre class="example">
-SELECT madlib.svd_sparse( 'mat_sparse',
-                          'svd',
-                          'row_id',
-                          'col_id',
-                          'value',
-                          10
-                        );
+SELECT madlib.svd_sparse( 'mat_sparse',   -- Input table
+                          'svd',          -- Output table prefix
+                          'row_id',       -- Column name with row index 
+                          'col_id',       -- Column name with column index 
+                          'value',        -- Matrix cell value
+                          16,             -- Number of rows in matrix
+                          10,             -- Number of columns in matrix    
+                          10              -- Number of singular values to compute
+                          );
 </pre></li>
-</ol>
-<p><a class="anchor" id="background"></a></p><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 \(A\) be a \(m \times n\) matrix, where \(m \ge n\). Then \(A\) can be decomposed as follows: <p class="formulaDsp">
-\[ A = U \Sigma V^T, \]
+<li>Run the SVD function for a very sparse matrix. <pre class="example">
+SELECT madlib.svd_sparse_native ( 'mat_sparse',   -- Input table
+                          'svd',          -- Output table prefix
+                          'row_id',       -- Column name with row index 
+                          'col_id',       -- Column name with column index 
+                          'value',        -- Matrix cell value
+                          16,             -- Number of rows in matrix
+                          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"/>
 </p>
- where \(U\) is a \(m \times n\) orthonormal matrix, \(\Sigma\) is a \(n \times n\) diagonal matrix, and \(V\) is an \(n \times n\) orthonormal matrix. The diagonal elements of \(\Sigma\) are called the <em>{singular</em> values}. It is possible to formulate the problem of computing the singular triplets ( \(\sigma_i, u_i, v_i\)) of \(A\) as an eigenvalue problem involving a Hermitian matrix related to \(A\). There are two possible ways of achieving this:<ol type="1">
-<li>With the cross product matrix, \(A^TA\) and \(AA^T\)</li>
+ 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>
+</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 cyclic matrix <p class="formulaDsp">
-\[ H(A) = \begin{bmatrix} 0 &amp; A\\ A^* &amp; 0 \end{bmatrix} \]
+<img class="formulaDsp" alt="\[ H(A) = \begin{bmatrix} 0 &amp; A\\ A^* &amp; 0 \end{bmatrix} \]" src="form_201.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">
-\[ A = P B Q^T, \]
+<img class="formulaDsp" alt="\[ A = P B Q^T, \]" src="form_202.png"/>
 </p>
- where \(P\) and \(Q\) are unitary matrices and \(B\) is an \(m \times n\) upper bidiagonal matrix. Then the tridiagonal matrix \(B*B\) is unitarily similar to \(A*A\). Additionally, specific methods exist that compute the singular values of \(B\) without forming \(B*B\). Therefore, after computing the SVD of B, <p class="formulaDsp">
-\[ B = X\Sigma Y^T, \]
+ 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"/>
 </p>
- it only remains to compute the SVD of the original matrix with \(U = PX\) and \(V = QY\). </li>
+ 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>
 </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 Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 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/c506dd05/docs/latest/group__grp__svdmf.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__svdmf.html b/docs/latest/group__grp__svdmf.html
index 07bc3ee..1738e34 100644
--- a/docs/latest/group__grp__svdmf.html
+++ b/docs/latest/group__grp__svdmf.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </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 src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<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 -->
@@ -40,7 +34,7 @@
   (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', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <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.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -115,90 +109,12 @@ $(document).ready(function(){initNavTree('group__grp__svdmf.html','');});
 <div class="title">Matrix Factorization<div class="ingroups"><a class="el" href="group__grp__deprecated.html">Deprecated Modules</a></div></div>  </div>
 </div><!--header-->
 <div class="contents">
-<dl class="section warning"><dt>Warning</dt><dd><em> This is an old implementation of Matrix Decomposition and has been deprecated. For SVD decomposition, please see <a class="el" href="group__grp__svd.html">Singular Value Decomposition</a>; for the latest version of low-rank approximation, please see <a class="el" href="group__grp__lmf.html">Low-rank Matrix Factorization</a></em></dd></dl>
-<div class="toc"><b>Contents</b> </p><ul>
-<li>
-<a href="#syntax">SVD Function Syntax</a> </li>
-<li>
-<a href="#xamples">Examples</a> </li>
-<li>
-<a href="#literature">Literature</a> </li>
-<li>
-<a href="#related">Related Topics</a> </li>
-</ul>
-</div><p>This module implements "partial SVD decomposition" method for representing a sparse matrix using a low-rank approximation. Mathematically, this algorithm seeks to find matrices U and V that, for any given A, minimizes:<br />
- </p><p class="formulaDsp">
-\[ ||\boldsymbol A - \boldsymbol UV ||_2 \]
-</p>
-<p> subject to \( rank(\boldsymbol UV) \leq k \), where \( ||\cdot||_2 \) denotes the Frobenius norm and \( k \leq rank(\boldsymbol A)\). If A is \( m \times n \), then U will be \( m \times k \) and V will be \( k \times n \).</p>
-<p>This algorithm is not intended to do the full decomposition, or to be used as part of inverse procedure. It effectively computes the SVD of a low-rank approximation of A (preferably sparse), with the singular values absorbed in U and V. Code is based on the write-up as appears at [1], with some modifications.</p>
-<p><a class="anchor" id="syntax"></a></p><dl class="section user"><dt>Function Syntax</dt><dd></dd></dl>
-<p>The SVD function is called as follows: </p><pre class="syntax">
-svdmf_run( input_table,
-           col_name,
-           row_name,
-           value, num_features)
-</pre><p>The <b>input matrix</b> is expected to be of the following form: </p><pre>{TABLE|VIEW} <em>input_table</em> (
-    <em>col_num</em> INTEGER,
-    <em>row_num</em> INTEGER,
-  <em>value</em> FLOAT
-)</pre><p>Input is contained in a table where column number and row number for each cell are sequential; that is to say that if the data was written as a matrix, those values would be the actual row and column numbers and not some random identifiers. All rows and columns must be associated with a value. There should not be any missing row, columns or values.</p>
-<p>The function returns two tables <code>matrix_u</code> and <code>matrix_v</code>, which represent the matrices U and V in table format.</p>
-<p><a class="anchor" id="examples"></a></p><dl class="section user"><dt>Examples</dt><dd></dd></dl>
-<ol type="1">
-<li>Prepare an input table/view. <pre class="example">
-CREATE TABLE svd_test ( col INT,
-                        row INT,
-                        val FLOAT
-                      );
-</pre></li>
-<li>Populate the input table with some data. <pre class="example">
-INSERT INTO svd_test SELECT ( g.a%1000)+1, g.a/1000+1, random()
-                     FROM generate_series(1,1000) AS g(a);
-</pre></li>
-<li><p class="startli">Call the <a class="el" href="svdmf_8sql__in.html#a6cff34415cca23aa0a826cc08a6283f5" title="Partial SVD decomposition of a sparse matrix into U and V components. ">svdmf_run()</a> stored procedure. </p><pre class="example">
-SELECT madlib.svdmf_run( 'svd_test',
-                         'col',
-                         'row',
-                         'val',
-                         3);
-</pre><p> Example result: </p><pre class="result">
-INFO:  ('Started <a class="el" href="svdmf_8sql__in.html#a6cff34415cca23aa0a826cc08a6283f5" title="Partial SVD decomposition of a sparse matrix into U and V components. ">svdmf_run()</a> with parameters:',)
-INFO:  (' * input_matrix = madlib_svdsparse_test.test',)
-INFO:  (' * col_name = col_num',)
-INFO:  (' * row_name = row_num',)
-INFO:  (' * value = val',)
-INFO:  (' * num_features = 3',)
-INFO:  ('Copying the source data into a temporary table...',)
-INFO:  ('Estimating feature: 1',)
-INFO:  ('...Iteration 1: residual_error = 33345014611.1, step_size = 4.9997500125e-10, min_improvement = 1.0',)
-INFO:  ('...Iteration 2: residual_error = 33345014557.6, step_size = 5.49972501375e-10, min_improvement = 1.0',)
-INFO:  ('...Iteration 3: residual_error = 33345014054.3, step_size = 6.04969751512e-10, min_improvement = 1.0',)
-...
-INFO:  ('...Iteration 78: residual_error = 2.02512133868, step_size = 5.78105354457e-10, min_improvement = 1.0',)
-INFO:  ('...Iteration 79: residual_error = 0.893810181282, step_size = 6.35915889903e-10, min_improvement = 1.0',)
-INFO:  ('...Iteration 80: residual_error = 0.34496773222, step_size = 6.99507478893e-10, min_improvement = 1.0',)
-INFO:  ('Swapping residual error matrix...',)
-                                         svdmf_run
-&#160;-------------------------------------------------------------------------------------------</pre><pre class="result"> Finished SVD matrix factorisation for madlib_svdsparse_test.test (row_num, col_num, val).
- Results:
-    total error = 0.34496773222
-    number of estimated features = 1
- Output:
-    table : madlib.matrix_u
-    table : madlib.matrix_v
- Time elapsed: 4 minutes 47.86839 seconds.
-</pre></li>
-</ol>
-<p><a class="anchor" id="literature"></a></p><dl class="section user"><dt>Literature</dt><dd></dd></dl>
-<p>[1] Simon Funk, Netflix Update: Try This at Home, December 11 2006, <a href="http://sifter.org/~simon/journal/20061211.html">http://sifter.org/~simon/journal/20061211.html</a></p>
-<p><a class="anchor" id="related"></a></p><dl class="section user"><dt>Related Topics</dt><dd>File <a class="el" href="svdmf_8sql__in.html" title="SQL functions for SVD Matrix Factorization. ">svdmf.sql_in</a> documenting the SQL functions.</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 Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:11 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/c506dd05/docs/latest/group__grp__svec.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__svec.html b/docs/latest/group__grp__svec.html
index cda46e9..2e03858 100644
--- a/docs/latest/group__grp__svec.html
+++ b/docs/latest/group__grp__svec.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </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 src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<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 -->
@@ -40,7 +34,7 @@
   (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', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <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.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -112,7 +106,7 @@ $(document).ready(function(){initNavTree('group__grp__svec.html','');});
 
 <div class="header">
   <div class="headertitle">
-<div class="title">Sparse Vectors<div class="ingroups"><a class="el" href="group__grp__datatrans.html">Data Types and Transforms</a> &raquo; <a class="el" href="group__grp__arraysmatrix.html">Arrays and Matrices</a></div></div>  </div>
+<div class="title">Sparse Vectors<div class="ingroups"><a class="el" href="group__grp__datatrans.html">Data Types and Transformations</a> &raquo; <a class="el" href="group__grp__arraysmatrix.html">Arrays and Matrices</a></div></div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><b>Contents</b> </p><ul>
@@ -160,7 +154,7 @@ SELECT madlib.svec_cast_positions_float8arr(
  svec_cast_positions_float8arr
  &#160;------------------------------
  {1,1,1,1,1,5}:{2,0,4,0,6,0}
-</pre><p>Add MADlib to the search_path to use the svec operators defined in the module.</p>
+</pre><p>Add madlib to the search_path to use the svec operators defined in the module.</p>
 <p><a class="anchor" id="vectorization"></a></p><dl class="section user"><dt>Document Vectorization into Sparse Vectors</dt><dd>This module implements an efficient way for document vectorization, converting text documents into sparse vector representation (MADlib.svec), required by various machine learning algorithms in MADlib.</dd></dl>
 <p>The function accepts two tables as input, dictionary table and documents table, and produces the specified output table containing sparse vectors for the represented documents (in documents table).</p>
 <pre class="syntax">
@@ -440,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 Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 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>