http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/b5b51c69/docs/v1.11/graph_legend.html ---------------------------------------------------------------------- diff --git a/docs/v1.11/graph_legend.html b/docs/v1.11/graph_legend.html new file mode 100644 index 0000000..3bb5227 --- /dev/null +++ b/docs/v1.11/graph_legend.html @@ -0,0 +1,148 @@ +<!-- 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.13"/> +<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: Graph Legend</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); +</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.incubator.apache.org'); + ga('send', 'pageview'); +</script> +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr style="height: 56px;"> + <td id="projectlogo"><a href="http://madlib.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.11</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.13 --> +<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('graph_legend.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">Graph Legend</div> </div> +</div><!--header--> +<div class="contents"> +<p>This page explains how to interpret the graphs that are generated by doxygen.</p> +<p>Consider the following example: </p><div class="fragment"><div class="line">/*! Invisible class because of truncation */</div><div class="line">class Invisible { };</div><div class="line"></div><div class="line">/*! Truncated class, inheritance relation is hidden */</div><div class="line">class Truncated : public Invisible { };</div><div class="line"></div><div class="line">/* Class not documented with doxygen comments */</div><div class="line">class Undocumented { };</div><div class="line"></div><div class="line">/*! Class that is inherited using public inheritance */</div><div class="line">class PublicBase : public Truncated { };</div><div class="line"></div><div class="line">/*! A template class */</div><div class="line">template<class T> class Templ { };</div><div class="line"></div><div class="line">/*! Class that is inherited using protected inheritance */</div><div class="line">class ProtectedBase { };</div><div class="line"></div><div class="line">/*! Class that is inherited using private inheritance */</div><div class="line">class PrivateBase { };</div><div class="line"></div><div class="line">/*! Class that is used by the Inherited class */</div><div class="line">class Used { };</div><div class="line"></div><div class="line">/*! Super class that inherits a number of other classes */</div><div class="line">class Inherited : public PublicBase,</div><div class="line"> protected ProtectedBase,</div><div class="line"> private PrivateBase,</div><div class="line"> public Undocumented,</div><div class="line"> public Templ<int></div><div class="line">{</div><div class="line"> private:</div><div class="line"> Used *m_usedClass;</div><div class="line">};</div></div><!-- fragment --><p> This will result in the following graph:</p> +<center><iframe scrolling="no" frameborder="0" src="graph_legend.svg" width="680" height="206"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> </center><p>The boxes in the above graph have the following meaning: </p> +<ul> +<li> +A filled gray box represents the struct or class for which the graph is generated. </li> +<li> +A box with a black border denotes a documented struct or class. </li> +<li> +A box with a gray border denotes an undocumented struct or class. </li> +<li> +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li> +</ul> +<p>The arrows have the following meaning: </p> +<ul> +<li> +A dark blue arrow is used to visualize a public inheritance relation between two classes. </li> +<li> +A dark green arrow is used for protected inheritance. </li> +<li> +A dark red arrow is used for private inheritance. </li> +<li> +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li> +<li> +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li> +</ul> +</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 May 16 2017 13:24:39 for MADlib by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li> + </ul> +</div> +</body> +</html>
http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/b5b51c69/docs/v1.11/graph_legend.md5 ---------------------------------------------------------------------- diff --git a/docs/v1.11/graph_legend.md5 b/docs/v1.11/graph_legend.md5 new file mode 100644 index 0000000..a06ed05 --- /dev/null +++ b/docs/v1.11/graph_legend.md5 @@ -0,0 +1 @@ +387ff8eb65306fa251338d3c9bd7bfff \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/b5b51c69/docs/v1.11/graph_legend.svg ---------------------------------------------------------------------- diff --git a/docs/v1.11/graph_legend.svg b/docs/v1.11/graph_legend.svg new file mode 100644 index 0000000..12d6a4d --- /dev/null +++ b/docs/v1.11/graph_legend.svg @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Legend Pages: 1 --> +<svg width="510pt" height="154pt" + viewBox="0.00 0.00 509.69 154.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 150)"> +<title>Graph Legend</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-150 505.687,-150 505.687,4 -4,4"/> +<!-- Node9 --> +<g id="node1" class="node"><title>Node9</title> +<polygon fill="#bfbfbf" stroke="black" points="293.431,-18 238.599,-18 238.599,-0 293.431,-0 293.431,-18"/> +<text text-anchor="middle" x="266.015" y="-6" font-family="Helvetica,sans-Serif" font-size="10.00">Inherited</text> +</g> +<!-- Node10 --> +<g id="node2" class="node"><title>Node10</title> +<g id="a_node2"><a xlink:href="$classPublicBase.html" xlink:title="PublicBase"> +<polygon fill="none" stroke="black" points="66.044,-82 -0.0146549,-82 -0.0146549,-64 66.044,-64 66.044,-82"/> +<text text-anchor="middle" x="33.0146" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">PublicBase</text> +</a> +</g> +</g> +<!-- Node10->Node9 --> +<g id="edge1" class="edge"><title>Node10->Node9</title> +<path fill="none" stroke="midnightblue" d="M73.3674,-61.2624C120.605,-48.6928 197.564,-28.2142 238.451,-17.3346"/> +<polygon fill="midnightblue" stroke="midnightblue" points="72.239,-57.9407 63.4753,-63.8946 74.0391,-64.7054 72.239,-57.9407"/> +</g> +<!-- Node11 --> +<g id="node3" class="node"><title>Node11</title> +<g id="a_node3"><a xlink:href="$classTruncated.html" xlink:title="Truncated"> +<polygon fill="none" stroke="red" points="63.1738,-146 2.85549,-146 2.85549,-128 63.1738,-128 63.1738,-146"/> +<text text-anchor="middle" x="33.0146" y="-134" font-family="Helvetica,sans-Serif" font-size="10.00">Truncated</text> +</a> +</g> +</g> +<!-- Node11->Node10 --> +<g id="edge2" class="edge"><title>Node11->Node10</title> +<path fill="none" stroke="midnightblue" d="M33.0146,-117.828C33.0146,-106.079 33.0146,-91.3449 33.0146,-82.3053"/> +<polygon fill="midnightblue" stroke="midnightblue" points="29.5147,-117.895 33.0146,-127.895 36.5147,-117.895 29.5147,-117.895"/> +</g> +<!-- Node13 --> +<g id="node4" class="node"><title>Node13</title> +<g id="a_node4"><a xlink:href="$classProtectedBase.html" xlink:title="ProtectedBase"> +<polygon fill="none" stroke="black" points="165.611,-82 84.4179,-82 84.4179,-64 165.611,-64 165.611,-82"/> +<text text-anchor="middle" x="125.015" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">ProtectedBase</text> +</a> +</g> +</g> +<!-- Node13->Node9 --> +<g id="edge3" class="edge"><title>Node13->Node9</title> +<path fill="none" stroke="darkgreen" d="M152.713,-59.8204C180.778,-47.4799 223.402,-28.7375 247.577,-18.1074"/> +<polygon fill="darkgreen" stroke="darkgreen" points="151.193,-56.6654 143.448,-63.8946 154.011,-63.0733 151.193,-56.6654"/> +</g> +<!-- Node14 --> +<g id="node5" class="node"><title>Node14</title> +<g id="a_node5"><a xlink:href="$classPrivateBase.html" xlink:title="PrivateBase"> +<polygon fill="none" stroke="black" points="253.931,-82 184.099,-82 184.099,-64 253.931,-64 253.931,-82"/> +<text text-anchor="middle" x="219.015" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">PrivateBase</text> +</a> +</g> +</g> +<!-- Node14->Node9 --> +<g id="edge4" class="edge"><title>Node14->Node9</title> +<path fill="none" stroke="#8b1a1a" d="M231.432,-55.6198C240.534,-43.6129 252.513,-27.8108 259.719,-18.3053"/> +<polygon fill="#8b1a1a" stroke="#8b1a1a" points="228.411,-53.8111 225.159,-63.8946 233.989,-58.0399 228.411,-53.8111"/> +</g> +<!-- Node15 --> +<g id="node6" class="node"><title>Node15</title> +<polygon fill="none" stroke="#bfbfbf" points="355.837,-82 272.192,-82 272.192,-64 355.837,-64 355.837,-82"/> +<text text-anchor="middle" x="314.015" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">Undocumented</text> +</g> +<!-- Node15->Node9 --> +<g id="edge5" class="edge"><title>Node15->Node9</title> +<path fill="none" stroke="midnightblue" d="M301.606,-55.9718C292.278,-43.9234 279.876,-27.904 272.445,-18.3053"/> +<polygon fill="midnightblue" stroke="midnightblue" points="298.85,-58.1299 307.739,-63.8946 304.385,-53.8447 298.85,-58.1299"/> +</g> +<!-- Node16 --> +<g id="node7" class="node"><title>Node16</title> +<g id="a_node7"><a xlink:href="$classTempl.html" xlink:title="Templ< int >"> +<polygon fill="none" stroke="black" points="444.489,-82 373.54,-82 373.54,-64 444.489,-64 444.489,-82"/> +<text text-anchor="middle" x="409.015" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">Templ< int ></text> +</a> +</g> +</g> +<!-- Node16->Node9 --> +<g id="edge6" class="edge"><title>Node16->Node9</title> +<path fill="none" stroke="midnightblue" d="M380.923,-59.8204C352.46,-47.4799 309.232,-28.7375 284.714,-18.1074"/> +<polygon fill="midnightblue" stroke="midnightblue" points="379.753,-63.1278 390.32,-63.8946 382.537,-56.7055 379.753,-63.1278"/> +</g> +<!-- Node17 --> +<g id="node8" class="node"><title>Node17</title> +<g id="a_node8"><a xlink:href="$classTempl.html" xlink:title="Templ< T >"> +<polygon fill="none" stroke="black" points="441.683,-146 376.346,-146 376.346,-128 441.683,-128 441.683,-146"/> +<text text-anchor="middle" x="409.015" y="-134" font-family="Helvetica,sans-Serif" font-size="10.00">Templ< T ></text> +</a> +</g> +</g> +<!-- Node17->Node16 --> +<g id="edge7" class="edge"><title>Node17->Node16</title> +<path fill="none" stroke="orange" stroke-dasharray="5,2" d="M409.015,-117.828C409.015,-106.079 409.015,-91.3449 409.015,-82.3053"/> +<polygon fill="orange" stroke="orange" points="405.515,-117.895 409.015,-127.895 412.515,-117.895 405.515,-117.895"/> +<text text-anchor="middle" x="422.914" y="-102" font-family="Helvetica,sans-Serif" font-size="10.00">< int ></text> +</g> +<!-- Node18 --> +<g id="node9" class="node"><title>Node18</title> +<g id="a_node9"><a xlink:href="$classUsed.html" xlink:title="Used"> +<polygon fill="none" stroke="black" points="501.861,-82 462.168,-82 462.168,-64 501.861,-64 501.861,-82"/> +<text text-anchor="middle" x="482.015" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">Used</text> +</a> +</g> +</g> +<!-- Node18->Node9 --> +<g id="edge8" class="edge"><title>Node18->Node9</title> +<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M452.451,-63.5142C410.543,-51.4849 334.429,-29.6374 293.618,-17.9232"/> +<polygon fill="#9a32cd" stroke="#9a32cd" points="451.504,-66.8834 462.081,-66.2783 453.435,-60.1551 451.504,-66.8834"/> +<text text-anchor="middle" x="417.305" y="-38" font-family="Helvetica,sans-Serif" font-size="10.00">m_usedClass</text> +</g> +</g> +</svg> http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/b5b51c69/docs/v1.11/group__grp__arima.html ---------------------------------------------------------------------- diff --git a/docs/v1.11/group__grp__arima.html b/docs/v1.11/group__grp__arima.html new file mode 100644 index 0000000..19d174d --- /dev/null +++ b/docs/v1.11/group__grp__arima.html @@ -0,0 +1,414 @@ +<!-- 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.13"/> +<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: ARIMA</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); +</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.incubator.apache.org'); + ga('send', 'pageview'); +</script> +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr style="height: 56px;"> + <td id="projectlogo"><a href="http://madlib.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.11</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.13 --> +<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__arima.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">ARIMA<div class="ingroups"><a class="el" href="group__grp__tsa.html">Time Series Analysis</a></div></div> </div> +</div><!--header--> +<div class="contents"> +<div class="toc"><b>Contents</b> <ul> +<li class="level1"> +<a href="#train">Training Function</a> </li> +<li class="level1"> +<a href="#forecast">Forecasting Function</a> </li> +<li class="level1"> +<a href="#examples">Examples</a> </li> +<li class="level1"> +<a href="#background">Technical Background</a> </li> +<li class="level1"> +<a href="#literature">Literature</a> </li> +<li class="level1"> +<a href="#related">Related Topics</a> </li> +</ul> +</div><p>Given a time series of data X, the Autoregressive Integrated Moving Average (ARIMA) model is a tool for understanding and, perhaps, predicting future values in the series. The model consists of three parts, an autoregressive (AR) part, a moving average (MA) part, and an integrated (I) part where an initial differencing step can be applied to remove any non-stationarity in the signal. The model is generally referred to as an ARIMA(p, d, q) model where parameters p, d, and q are non-negative integers that refer to the order of the autoregressive, integrated, and moving average parts of the model respectively.</p> +<p><a class="anchor" id="train"></a></p><dl class="section user"><dt>Training Function</dt><dd></dd></dl> +<p>The ARIMA training function has the following syntax. </p><pre class="syntax"> +arima_train( input_table, + output_table, + timestamp_column, + timeseries_column, + grouping_columns, + include_mean, + non_seasonal_orders, + optimizer_params + ) +</pre><p><b>Arguments</b> </p><dl class="arglist"> +<dt>input_table </dt> +<dd><p class="startdd">TEXT. The name of the table containing time series data.</p> +<p class="enddd"></p> +</dd> +<dt>output_table </dt> +<dd><p class="startdd">TEXT. The name of the table to store the ARIMA model. Three tables are created, with names based on the value of the <em>output_table</em> argument in the training function:</p> +<ol type="1"> +<li><em>output_table</em>: Table containing the ARIMA model. Contains the following columns: <table class="output"> +<tr> +<th>mean </th><td>Model mean (only if 'include_mean' is TRUE) </td></tr> +<tr> +<th>mean_std_error </th><td>Standard errors for mean </td></tr> +<tr> +<th>ar_params </th><td>Auto-regressions parameters of the ARIMA model </td></tr> +<tr> +<th>ar_std_errors </th><td>Standard errors for AR parameters </td></tr> +<tr> +<th>ma_params </th><td>Moving average parameters of the ARIMA model </td></tr> +<tr> +<th>ma_std_errors </th><td>Standard errors for MA parameters </td></tr> +</table> +</li> +<li><em>output_table</em>_summary: Table containing descriptive statistics of the ARIMA model. Contains the following columns: <table class="output"> +<tr> +<th>input_table </th><td>Table name with the source data </td></tr> +<tr> +<th>timestamp_col </th><td>Column name in the source table that contains the timestamp index to data </td></tr> +<tr> +<th>timeseries_col </th><td>Column name in the source table that contains the data values </td></tr> +<tr> +<th>non_seasonal_orders </th><td>Orders of the non-seasonal ARIMA model </td></tr> +<tr> +<th>include_mean </th><td>TRUE if intercept was included in ARIMA model </td></tr> +<tr> +<th>residual_variance </th><td>Variance of the residuals </td></tr> +<tr> +<th>log_likelihood </th><td>Log likelihood value (when using MLE) </td></tr> +<tr> +<th>iter_num </th><td>The number of iterations executed </td></tr> +<tr> +<th>exec_time </th><td>Total time taken to train the model </td></tr> +</table> +</li> +<li><em>output_table</em>_residual: Table containing the residuals for each data point in 'input_table'. Contains the following columns: <table class="output"> +<tr> +<th>timestamp_col </th><td>Same as the 'timestamp_col' parameter (all indices from source table included except the first <em>d</em> elements, where <em>d</em> is the differencing order value from 'non_seasonal_orders') </td></tr> +<tr> +<th>residual </th><td>Residual value for each data point </td></tr> +</table> +</li> +</ol> +<p></p> +<p class="enddd"></p> +</dd> +<dt>timestamp_column </dt> +<dd><p class="startdd">TEXT. The name of the column containing the timestamp (index) data. This could be a serial index (INTEGER) or date/time value (TIMESTAMP).</p> +<p class="enddd"></p> +</dd> +<dt>timeseries_column </dt> +<dd><p class="startdd">TEXT. The name of the column containing the time series data. This data is currently restricted to DOUBLE PRECISION.</p> +<p class="enddd"></p> +</dd> +<dt>grouping_columns (optional) </dt> +<dd><p class="startdd">TEXT, default: NULL. <em>Not currently implemented. Any non-NULL value is ignored.</em></p> +<p>A comma-separated list of column names used to group the input dataset into discrete groups, training one ARIMA model per group. It is similar to the SQL <code>GROUP BY</code> clause. When this value is null, no grouping is used and a single result model is generated.</p> +<p class="enddd"></p> +</dd> +<dt>include_mean (optional) </dt> +<dd><p class="startdd">BOOLEAN, default: FALSE. Mean value of the data series is added in the ARIMA model if this variable is True. </p> +<p class="enddd"></p> +</dd> +<dt>non_seasonal_orders (optional) </dt> +<dd><p class="startdd">INTEGER[], default: 'ARRAY[1,1,1]'. Orders of the ARIMA model. The orders are [p, d, q], where parameters p, d, and q are non-negative integers that refer to the order of the autoregressive, integrated, and moving average parts of the model respectively. </p> +<p class="enddd"></p> +</dd> +<dt>optimizer_params (optional) </dt> +<dd>TEXT. Comma-separated list of optimizer-specific parameters of the form âname=value'. The order of the parameters does not matter. The following parameters are recognized:<ul> +<li><b>max_iter:</b> Maximum number of iterations to run learning algorithm (Default = 100)</li> +<li><b>tau:</b> Computes the initial step size for gradient algorithm (Default = 0.001)</li> +<li><b>e1:</b> Algorithm-specific threshold for convergence (Default = 1e-15)</li> +<li><b>e2:</b> Algorithm-specific threshold for convergence (Default = 1e-15)</li> +<li><b>e3:</b> Algorithm-specific threshold for convergence (Default = 1e-15)</li> +<li><b>hessian_delta:</b> Delta parameter to compute a numerical approximation of the Hessian matrix (Default = 1e-6) </li> +</ul> +</dd> +</dl> +<p><a class="anchor" id="forecast"></a></p><dl class="section user"><dt>Forecasting Function</dt><dd></dd></dl> +<p>The ARIMA forecast function has the following syntax. </p><pre class="syntax"> +arima_forecast( model_table, + output_table, + steps_ahead + ) +</pre><p> <b>Arguments</b> </p><dl class="arglist"> +<dt>model_table </dt> +<dd><p class="startdd">TEXT. The name of the table containing the ARIMA model trained on the time series dataset.</p> +<p class="enddd"></p> +</dd> +<dt>output_table </dt> +<dd><p class="startdd">TEXT. The name of the table to store the forecasted values. The output table produced by the forecast function contains the following columns. </p><table class="output"> +<tr> +<th>group_by_cols </th><td>Grouping column values (if grouping parameter is provided) </td></tr> +<tr> +<th>step_ahead </th><td>Time step for the forecast </td></tr> +<tr> +<th>forecast_value </th><td>Forecast of the current time step </td></tr> +</table> +<p class="enddd"></p> +</dd> +<dt>steps_ahead </dt> +<dd>INTEGER. The number of steps to forecast at the end of the time series. </dd> +</dl> +<p><a class="anchor" id="examples"></a></p><dl class="section user"><dt>Examples</dt><dd><ol type="1"> +<li>View online help for the ARIMA training function. <pre class="example"> +SELECT madlib.arima_train(); +</pre></li> +<li>Create an input data set. <pre class="example"> +DROP TABLE IF EXISTS arima_beer; +CREATE TABLE arima_beer (time_id integer NOT NULL, value double precision NOT NULL ); +COPY arima_beer (time_id, value) FROM stdin WITH DELIMITER '|'; +1 | 93.2 +2 | 96.0 +3 | 95.2 +4 | 77.0 +5 | 70.9 +6 | 64.7 +7 | 70.0 +8 | 77.2 +9 | 79.5 +10 | 100.5 +11 | 100.7 +12 | 107.0 +13 | 95.9 +14 | 82.7 +15 | 83.2 +16 | 80.0 +17 | 80.4 +18 | 67.5 +19 | 75.7 +20 | 71.0 +21 | 89.2 +22 | 101.0 +23 | 105.2 +24 | 114.0 +25 | 96.2 +26 | 84.4 +27 | 91.2 +28 | 81.9 +29 | 80.5 +30 | 70.4 +31 | 74.7 +32 | 75.9 +33 | 86.2 +34 | 98.7 +35 | 100.9 +36 | 113.7 +37 | 89.7 +38 | 84.4 +39 | 87.2 +40 | 85.5 +\. +</pre></li> +<li>Train an ARIMA model. <pre class="example"> +-- Train ARIMA model with 'grouping_columns'=NULL, 'include_mean'=TRUE, +-- and 'non_seasonal_orders'=[1,1,1] +SELECT madlib.arima_train( 'arima_beer', + 'arima_beer_output', + 'time_id', + 'value', + NULL, + FALSE, + ARRAY[1, 1, 1] + ); +</pre></li> +<li>Examine the ARIMA model. <pre class="example"> +\x ON +SELECT * FROM arima_beer_output; +</pre> Result: <pre class="result"> +-[ RECORD 1 ]-+------------------ +ar_params | {0.221954769696} +ar_std_errors | {0.575367782602} +ma_params | {-0.140623564576} +ma_std_errors | {0.533445214346} +</pre></li> +<li>View the summary statistics table. <pre class="example"> +SELECT * FROM arima_beer_output_summary; +</pre> Result: <pre class="result"> +-[ RECORD 1 ]-------+--------------- +input_table | arima_beer +timestamp_col | time_id +timeseries_col | value +non_seasonal_orders | {1,1,1} +include_mean | f +residual_variance | 100.989970539 +log_likelihood | -145.331516396 +iter_num | 28 +exec_time (s) | 2.75 +</pre></li> +<li>View the residuals. <pre class="example"> +\x OFF +SELECT * FROM arima_beer_output_residual; +</pre> Result: <pre class="result"> + time_id | residual +---------+-------------------- + 2 | 0 + 4 | -18.222328834394 + 6 | -5.49616627282665 +... + 35 | 1.06298837051437 + 37 | -25.0886854003757 + 39 | 3.48401666299571 +(40 rows) +</pre></li> +<li>Use the ARIMA forecast function to forecast 10 future values. <pre class="example"> +SELECT madlib.arima_forecast( 'arima_beer_output', + 'arima_beer_forecast_output', + 10 + ); +SELECT * FROM arima_beer_forecast_output; +</pre> Result: <pre class="result"> + steps_ahead | forecast_value +-------------+---------------- + 1 | 85.3802343659 + 3 | 85.3477516875 + 5 | 85.3461514635 + 7 | 85.3460726302 + 9 | 85.3460687465 + 2 | 85.3536518121 + 4 | 85.3464421267 + 6 | 85.3460869494 + 8 | 85.3460694519 + 10 | 85.34606859 +(10 rows) +</pre></li> +</ol> +</dd></dl> +<p><a class="anchor" id="background"></a></p><dl class="section user"><dt>Technical Background</dt><dd>An ARIMA model is an <em>a</em>uto-<em>r</em>egressive <em>i</em>ntegrated <em>m</em>oving <em>a</em>verage model. An ARIMA model is typically expressed in the form <p class="formulaDsp"> +<img class="formulaDsp" alt="\[ (1 - \phi(B)) Y_t = (1 + \theta(B)) Z_t, \]" src="form_535.png"/> +</p> +</dd></dl> +<p>where <img class="formulaInl" alt="$B$" src="form_207.png"/> is the backshift operator. The time <img class="formulaInl" alt="$ t $" src="form_536.png"/> is from <img class="formulaInl" alt="$ 1 $" src="form_537.png"/> to <img class="formulaInl" alt="$ N $" src="form_220.png"/>.</p> +<p>ARIMA models involve the following variables:</p><ul> +<li>The values of the time series: <img class="formulaInl" alt="$ X_t $" src="form_538.png"/>.</li> +<li>Parameters of the model: <img class="formulaInl" alt="$ p $" src="form_111.png"/>, <img class="formulaInl" alt="$ q $" src="form_539.png"/>, and <img class="formulaInl" alt="$ d $" src="form_468.png"/>; <img class="formulaInl" alt="$ d $" src="form_468.png"/> is the differencing order, <img class="formulaInl" alt="$ p $" src="form_111.png"/> is the order of the AR operator, and <img class="formulaInl" alt="$ q $" src="form_539.png"/> is the order of the MA operator.</li> +<li>The AR operator: <img class="formulaInl" alt="$ \phi(B) $" src="form_540.png"/>.</li> +<li>The MA operator: <img class="formulaInl" alt="$ \theta(B) $" src="form_541.png"/>.</li> +<li>The lag difference: <img class="formulaInl" alt="$ Y_{t} $" src="form_542.png"/>, where <img class="formulaInl" alt="$ Y_{t} = (1-B)^{d}(X_{t} - \mu) $" src="form_543.png"/>.</li> +<li>The mean value: <img class="formulaInl" alt="$ \mu $" src="form_288.png"/>, which is set to be zero for <img class="formulaInl" alt="$ d>0 $" src="form_544.png"/> and estimated from the data when d=0.</li> +<li>The error terms: <img class="formulaInl" alt="$ Z_t $" src="form_545.png"/>.</li> +</ul> +<p>The auto regression operator models the prediction for the next observation as some linear combination of the previous observations. More formally, an AR operator of order <img class="formulaInl" alt="$ p $" src="form_111.png"/> is defined as</p> +<p class="formulaDsp"> +<img class="formulaDsp" alt="\[ \phi(B) Y_t= \phi_1 Y_{t-1} + \dots + \phi_{p} Y_{t-p} \]" src="form_546.png"/> +</p> +<p>The moving average operator is similar, and it models the prediction for the next observation as a linear combination of the errors in the previous prediction errors. More formally, the MA operator of order <img class="formulaInl" alt="$ q $" src="form_539.png"/> is defined as</p> +<p class="formulaDsp"> +<img class="formulaDsp" alt="\[ \theta(B) Z_t = \theta_{1} Z_{t-1} + \dots + \theta_{q} Z_{t-q}. \]" src="form_547.png"/> +</p> +<p>We estimate the parameters using the Levenberg-Marquardt Algorithm. In mathematics and computing, the Levenberg-Marquardt algorithm (LMA), also known as the damped least-squares (DLS) method, provides a numerical solution to the problem of minimizing a function, generally nonlinear, over a space of parameters of the function.</p> +<p>Like other numeric minimization algorithms, LMA is an iterative procedure. To start a minimization, the user has to provide an initial guess for the parameter vector, $p$, as well as some tuning parameters <img class="formulaInl" alt="$\tau, \epsilon_1, \epsilon_2, \epsilon_3,$" src="form_548.png"/>.</p> +<p><a class="anchor" id="literature"></a></p><dl class="section user"><dt>Literature</dt><dd></dd></dl> +<p>[1] Rob J Hyndman and George Athanasopoulos: Forecasting: principles and practice, <a href="http://otexts.com/fpp/">http://otexts.com/fpp/</a></p> +<p>[2] Robert H. Shumway, David S. Stoffer: Time Series Analysis and Its Applications With R Examples, Third edition Springer Texts in Statistics, 2010</p> +<p>[3] Henri Gavin: The Levenberg-Marquardt method for nonlinear least squares curve-fitting problems, 2011</p> +<p><a class="anchor" id="related"></a></p><dl class="section user"><dt>Related Topics</dt><dd></dd></dl> +<p>File <a class="el" href="arima_8sql__in.html" title="Arima function for forecasting of timeseries data. ">arima.sql_in</a> documenting the ARIMA functions </p> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Tue May 16 2017 13:24:38 for MADlib by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li> + </ul> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/b5b51c69/docs/v1.11/group__grp__array.html ---------------------------------------------------------------------- diff --git a/docs/v1.11/group__grp__array.html b/docs/v1.11/group__grp__array.html new file mode 100644 index 0000000..8b48d77 --- /dev/null +++ b/docs/v1.11/group__grp__array.html @@ -0,0 +1,352 @@ +<!-- 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.13"/> +<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: Array Operations</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); +</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.incubator.apache.org'); + ga('send', 'pageview'); +</script> +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr style="height: 56px;"> + <td id="projectlogo"><a href="http://madlib.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.11</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.13 --> +<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__array.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">Array Operations<div class="ingroups"><a class="el" href="group__grp__datatrans.html">Data Types and Transformations</a> » <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> <ul> +<li> +<a href="#notes">Implementation Notes</a> </li> +<li> +<a href="#list">List of Array 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 set of basic array operations implemented in C and SQL. It is a support module for several machine learning algorithms that require fast array operations.</p> +<p><a class="anchor" id="notes"></a></p><dl class="section user"><dt>Implementation Notes</dt><dd></dd></dl> +<p>All functions (except <a class="el" href="array__ops_8sql__in.html#acb57ea4521dcb717f9e3148e0acccc74" title="This function normalizes an array as sum of squares to be 1. ">normalize()</a> and <a class="el" href="array__ops_8sql__in.html#acc295a568878940ffc3e2c9a75990efb" title="This function takes an array as the input and keep only elements that satisfy the operator on specifi...">array_filter()</a>) described in this module work with 2-D arrays.</p> +<p>These functions support several numeric types:</p><ul> +<li>SMALLINT</li> +<li>INTEGER</li> +<li>BIGINT</li> +<li>REAL</li> +<li>DOUBLE PRECISION (FLOAT8)</li> +<li>NUMERIC (internally casted into FLOAT8, loss of precisions can happen)</li> +</ul> +<p>Additionally, <a class="el" href="array__ops_8sql__in.html#af057b589f2a2cb1095caa99feaeb3d70" title="This function takes a 2-D array as the input and unnests it by one level. It returns a set of 1-D arr...">array_unnest_2d_to_1d()</a> supports other data types such as TEXT or VARCHAR.</p> +<p>Several of the function require NO NULL VALUES, while others omit NULLs and return results. See details in description of individual functions.</p> +<p><a class="anchor" id="list"></a></p><dl class="section user"><dt>Array Operations</dt><dd><table class="output"> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a91c8d3715142927b3967f05a4fbf1575" title="Adds two arrays. It requires that all the values are NON-NULL. Return type is the same as the input t...">array_add()</a></th><td><p class="starttd">Adds two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type.</p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a26e8508a2bae10a6574cec697a270eea" title="Aggregate, element-wise sum of arrays. It requires that all the values are NON-NULL. Return type is the same as the input type. ">sum()</a></th><td><p class="starttd">Aggregate, sums vector element-wisely. It requires that all the values are NON-NULL. Return type is the same as the input type.</p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a2875a161a01c7dcdea9a4997b074eefc" title="Subtracts two arrays. It requires that all the values are NON-NULL. Return type is the same as the in...">array_sub()</a></th><td><p class="starttd">Subtracts two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a652d70c480d484c4a1a92ded384b0dd7" title="Element-wise product of two arrays. It requires that all the values are NON-NULL. Return type is the ...">array_mult()</a></th><td><p class="starttd">Element-wise product of two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a6cc05e7052495f8b64692faf40219576" title="Element-wise division of two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type. ">array_div()</a></th><td><p class="starttd">Element-wise division of two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#acde10964ed23b7c8da515fb84cb8d5e0" title="Dot-product of two arrays. It requires that all the values are NON-NULL. Return type is the same as t...">array_dot()</a></th><td><p class="starttd">Dot-product of two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#aedf6cb13eb4803bcc12dc4d95ea8ff4e" title="Checks whether one array contains the other. This function returns TRUE if each non-zero element in t...">array_contains()</a></th><td><p class="starttd">Checks whether one array contains the other. This function returns TRUE if each non-zero element in the right array equals to the element with the same index in the left array. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#ae891429cc50705c530f3e5ca15541849" title="This function finds the maximum value in the array. NULLs are ignored. Return type is the same as the...">array_max()</a></th><td><p class="starttd">This function finds the maximum value in the array. NULLs are ignored. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#aa415256a9064aecc600dfb5e377fb7b1" title="This function finds the maximum value and corresponding index in the array. NULLs are ignored...">array_max_index()</a></th><td><p class="starttd">This function finds the maximum value and corresponding index in the array. NULLs are ignored. Return type is array in format [max, index], and its element type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a6659bf9d9363eb179fab34f81f8ac59b" title="This function finds the minimum value in the array. NULLs are ignored. Return type is the same as the...">array_min()</a></th><td><p class="starttd">This function finds the minimum value in the array. NULLs are ignored. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a813a4d9ffc1c18b1b3e18f6ecdb2051f" title="This function finds the minimum value and corresponding index in the array. NULLs are ignored...">array_min_index()</a></th><td><p class="starttd">This function finds the minimum value and corresponding index in the array. NULLs are ignored. Return type is array in format [min, index], and its element type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a4c98f20e6a737358806f63318daea5ec" title="This function finds the sum of the values in the array. NULLs are ignored. Return type is the same as...">array_sum()</a></th><td><p class="starttd">This function finds the sum of the values in the array. NULLs are ignored. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a418de59800833aa95f9b7cbd6b12901c" title="This function finds the sum of the values in the array. NULLs are ignored. Return type is always FLOA...">array_sum_big()</a></th><td><p class="starttd">This function finds the sum of the values in the array. NULLs are ignored. Return type is always FLOAT8 regardless of input. This function is meant to replace <a class="el" href="array__ops_8sql__in.html#a4c98f20e6a737358806f63318daea5ec" title="This function finds the sum of the values in the array. NULLs are ignored. Return type is the same as...">array_sum()</a> in cases when a sum may overflow the element type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a13c0b0c53e8b0dc4e08c21bb8152ee7d" title="This function finds the sum of abs of the values in the array. NULLs are ignored. Return type is the ...">array_abs_sum()</a></th><td><p class="starttd">This function finds the sum of abs of the values in the array. NULLs are ignored. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#ac14e74c10b58f5518cd0e3e56067e5ba" title="This function takes an array as the input and finds absolute value of each element in the array...">array_abs()</a></th><td><p class="starttd">This function takes an array as the input and finds abs of each element in the array, returning the resulting array. It requires that all the values are NON-NULL. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a407598f9eb70637798b02fd731bfca2c" title="This function finds the mean of the values in the array. NULLs are ignored. ">array_mean()</a></th><td><p class="starttd">This function finds the mean of the values in the array. NULLs are ignored. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a3b6c2d173a611e6d6b184d825c2b336d" title="This function finds the standard deviation of the values in the array. NULLs are ignored. ">array_stddev()</a></th><td><p class="starttd">This function finds the standard deviation of the values in the array. NULLs are ignored. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#ab066e65a41db78b00b4532996b2a6efc" title="This function creates an array of set size (the argument value) of FLOAT8, initializing the values to...">array_of_float()</a></th><td><p class="starttd">This function creates an array of set size (the argument value) of FLOAT8, initializing the values to 0.0. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#ab7d8550e66d2e0bd54b8f0997d93880c" title="This function creates an array of set size (the argument value) of BIGINT, initializing the values to...">array_of_bigint()</a></th><td><p class="starttd">This function creates an array of set size (the argument value) of BIGINT, initializing the values to 0. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a065a5323f3b742be47e39ad8b4c90fc2" title="This functions set every values in the array to some desired value (provided as the argument)...">array_fill()</a></th><td><p class="starttd">This functions set every value in the array to some desired value (provided as the argument). </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#acc295a568878940ffc3e2c9a75990efb" title="This function takes an array as the input and keep only elements that satisfy the operator on specifi...">array_filter()</a></th><td><p class="starttd">This function takes an array as the input and keep only elements that satisfy the operator on specified scalar. It requires that the array is 1-D and all the values are NON-NULL. Return type is the same as the input type. By default, this function removes all zeros. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#ae6881cc5c86941b6ffca35d7f3cd5c12" title="This function takes an array as the input and executes element-wise multiplication by the scalar prov...">array_scalar_mult()</a></th><td><p class="starttd">This function takes an array as the input and executes element-wise multiplication by the scalar provided as the second argument, returning the resulting array. It requires that all the values are NON-NULL. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a0b6ffe59b12c3dee076c3059f9ab363f" title="This function takes an array as the input and executes element-wise addition by the scalar provided a...">array_scalar_add()</a></th><td><p class="starttd">This function takes an array as the input and executes element-wise addition of the scalar provided as the second argument, returning the resulting array. It requires that all the values are NON-NULL. Return type is the same as the input type. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a83451ed0c3ca5a9c62751dba47e45df7" title="This function takes an array as the input and finds square root of each element in the array...">array_sqrt()</a></th><td><p class="starttd">This function takes an array as the input and finds square root of each element in the array, returning the resulting array. It requires that all the values are NON-NULL. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#a761e7ca753a5e1acf26896b37ed8b0bd" title="This function takes an array and a float8 as the input and finds power of each element in the array...">array_pow()</a></th><td><p class="starttd">This function takes an array and a float8 as the input and finds power of each element in the array, returning the resulting array. It requires that all the values are NON-NULL. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#aff60f4091bed6374683f047c8a70ef9a" title="This function takes an array as the input and finds square of each element in the array...">array_square()</a></th><td><p class="starttd">This function takes an array as the input and finds square of each element in the array, returning the resulting array. It requires that all the values are NON-NULL. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#acb57ea4521dcb717f9e3148e0acccc74" title="This function normalizes an array as sum of squares to be 1. ">normalize()</a></th><td><p class="starttd">This function normalizes an array as sum of squares to be 1. It requires that the array is 1-D and all the values are NON-NULL. </p> +<p class="endtd"></p> +</td></tr> +<tr> +<th><a class="el" href="array__ops_8sql__in.html#af057b589f2a2cb1095caa99feaeb3d70" title="This function takes a 2-D array as the input and unnests it by one level. It returns a set of 1-D arr...">array_unnest_2d_to_1d()</a></th><td><p class="starttd">This function takes a 2-D array as the input and unnests it by one level. It returns a set of 1-D arrays that correspond to rows of the input array as well as an ID column with values corresponding to row positions occupied by those 1-D arrays within the 2-D array. </p> +<p class="endtd"></p> +</td></tr> +</table> +</dd></dl> +<p><a class="anchor" id="examples"></a></p><dl class="section user"><dt>Examples</dt><dd></dd></dl> +<ol type="1"> +<li>Create a database table with two integer array columns and add some data. <pre class="example"> +CREATE TABLE array_tbl ( id integer, + array1 integer[], + array2 integer[] + ); +INSERT INTO array_tbl VALUES + ( 1, '{1,2,3,4,5,6,7,8,9}', '{9,8,7,6,5,4,3,2,1}' ), + ( 2, '{1,1,0,1,1,2,3,99,8}','{0,0,0,-5,4,1,1,7,6}' ); +</pre></li> +<li>Find the minimum, maximum, mean, and standard deviation of the <code>array1</code> column. <pre class="example"> +SELECT id, madlib.array_min(array1), madlib.array_max(array1), + madlib.array_min_index(array1), madlib.array_max_index(array1), + madlib.array_mean(array1), madlib.array_stddev(array1) +FROM array_tbl; +</pre> Result: <pre class="result"> +id | array_min | array_max | array_min_index | array_max_index | array_mean | array_stddev +----+-----------+-----------+---------------+---------------+------------------+------------------ + 1 | 1 | 9 | {1,1} | {9,9} | 5 | 2.73861278752583 + 2 | 0 | 99 | {0,3} | {99,8} | 12.8888888888889 | 32.3784050118457(2 rows) +</pre></li> +<li>Perform array addition and subtraction. <pre class="example"> +SELECT id, madlib.array_add(array1,array2), + madlib.array_sub(array1,array2) +FROM array_tbl; +</pre> Result: <pre class="result"> + id | array_add | array_sub + ---+------------------------------+------------------------- + 2 | {1,1,0,-4,5,3,4,106,14} | {1,1,0,6,-3,1,2,92,2} + 1 | {10,10,10,10,10,10,10,10,10} | {-8,-6,-4,-2,0,2,4,6,8} +(2 rows) +</pre></li> +<li>Perform element-wise array multiplication and division. The row with <code>id=2</code> is excluded because the divisor array contains zero, which would cause a divide-by-zero error. <pre class="example"> +SELECT id, madlib.array_mult(array1,array2), + madlib.array_div(array1,array2) +FROM array_tbl +WHERE 0 != ALL(array2);</pre> Result: <pre class="result"> + id | array_mult | array_div + ---+----------------------------+--------------------- + 1 | {9,16,21,24,25,24,21,16,9} | {0,0,0,0,1,1,2,4,9} +(1 row) +</pre></li> +<li>Calculate the dot product of the arrays. <pre class="example"> +SELECT id, madlib.array_dot(array1, array2) +FROM array_tbl; +</pre> Result: <pre class="result"> + id | array_dot + ---+---------- + 2 | 745 + 1 | 165 +(2 rows) +</pre></li> +<li>Multiply an array by a scalar 3. <pre class="example"> +SELECT id, madlib.array_scalar_mult(array1,3) +FROM array_tbl; +</pre> Result: <pre class="result"> + id | array_scalar_mult + ---+-------------------------- + 1 | {3,6,9,12,15,18,21,24,27} + 2 | {3,3,0,3,3,6,9,297,24} +(2 rows) +</pre></li> +<li>Construct a nine-element array with each element set to the value 1.3. <pre class="example"> +SELECT madlib.array_fill(madlib.array_of_float(9), 1.3::float); +</pre> Result: <pre class="result"> + array_fill + -------------------------------------- + {1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3} +(1 row) +</pre></li> +<li>Unnest a column of 2-D arrays into sets of 1-D arrays. <pre class="example"> +SELECT id, (madlib.array_unnest_2d_to_1d(val)).* +FROM ( + SELECT 1::INT AS id, ARRAY[[1.3,2.0,3.2],[10.3,20.0,32.2]]::FLOAT8[][] AS val + UNION ALL + SELECT 2, ARRAY[[pi(),pi()/2],[2*pi(),pi()],[pi()/4,4*pi()]]::FLOAT8[][] +) t +ORDER BY 1,2; +</pre> Result: <pre class="result"> + id | unnest_row_id | unnest_result +----+---------------+-------------------------------------- + 1 | 1 | {1.3,2,3.2} + 1 | 2 | {10.3,20,32.2} + 2 | 1 | {3.14159265358979,1.5707963267949} + 2 | 2 | {6.28318530717959,3.14159265358979} + 2 | 3 | {0.785398163397448,12.5663706143592} +(5 rows) +</pre> If the function is called without the .* notation then it will return a composite record type with two attributes: the row ID and corresponding unnested array result.</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="array__ops_8sql__in.html" title="implementation of array operations in SQL ">array_ops.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 Tue May 16 2017 13:24:38 for MADlib by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li> + </ul> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/b5b51c69/docs/v1.11/group__grp__arraysmatrix.html ---------------------------------------------------------------------- diff --git a/docs/v1.11/group__grp__arraysmatrix.html b/docs/v1.11/group__grp__arraysmatrix.html new file mode 100644 index 0000000..33ed74b --- /dev/null +++ b/docs/v1.11/group__grp__arraysmatrix.html @@ -0,0 +1,169 @@ +<!-- 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.13"/> +<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: Arrays and Matrices</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); +</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.incubator.apache.org'); + ga('send', 'pageview'); +</script> +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr style="height: 56px;"> + <td id="projectlogo"><a href="http://madlib.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.11</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.13 --> +<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__arraysmatrix.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">Arrays and Matrices<div class="ingroups"><a class="el" href="group__grp__datatrans.html">Data Types and Transformations</a></div></div> </div> +</div><!--header--> +<div class="contents"> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>These modules provide basic mathematical operations to be run on array and matrices.</p> +<p>For a distributed system, a matrix cannot simply be represented as a 2D array of numbers in memory. <b>We provide two forms of distributed representation of a matrix</b>:</p> +<ul> +<li>Dense: The matrix is represented as a distributed collection of 1-D arrays. An example 3x10 matrix would be the below table: <pre> + row_id | row_vec +--------+------------------------- + 1 | {9,6,5,8,5,6,6,3,10,8} + 2 | {8,2,2,6,6,10,2,1,9,9} + 3 | {3,9,9,9,8,6,3,9,5,6} +</pre></li> +<li>Sparse: The matrix is represented using the row and column indices for each non-zero entry of the matrix. Example: <pre> + 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>   All matrix operations work with either form of representation.</li> +</ul> +<p>In many cases, a matrix function can be <b>decomposed to vector operations applied independently on each row of a matrix (or corresponding rows of two matrices)</b>. We have also provided access to these internal vector operations (<a class="el" href="group__grp__array.html">Array Operations</a>) for greater flexibility. Matrix operations like <em>matrix_add</em> use the corresponding vector operation (<em>array_add</em>) and also include additional validation and formating. Other functions like <em>matrix_mult</em> are complex and use a combination of such vector operations and other SQL operations.</p> +<p><b>It's important to note</b> that these array functions are only available for the dense format representation of the matrix. In general, the scope of a single array function invocation is limited to only an array (1-dimensional or 2-dimensional) that fits in memory. When such function is executed on a table of arrays, the function is called multiple times - once for each array (or pair of arrays). On contrary, scope of a single matrix function invocation is the complete matrix stored as a distributed table. </p> +<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"> </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"> </td><td class="mdescRight">Provides fast array operations supporting other MADlib modules. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__grp__matrix"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__matrix.html">Matrix Operations</a></td></tr> +<tr class="memdesc:group__grp__matrix"><td class="mdescLeft"> </td><td class="mdescRight">Provides fast matrix operations supporting other MADlib modules. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__grp__matrix__factorization"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__matrix__factorization.html">Matrix Factorization</a></td></tr> +<tr class="memdesc:group__grp__matrix__factorization"><td class="mdescLeft"> </td><td class="mdescRight">Matrix Factorization methods including Singular Value Decomposition and Low-rank Matrix Factorization. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__grp__linalg"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__linalg.html">Norms and Distance functions</a></td></tr> +<tr class="memdesc:group__grp__linalg"><td class="mdescLeft"> </td><td class="mdescRight">Provides utility functions for basic linear algebra operations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__grp__svec"><td class="memItemLeft" align="right" valign="top"> </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"> </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"> </td></tr> +</table> +</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 May 16 2017 13:24:38 for MADlib by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li> + </ul> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/b5b51c69/docs/v1.11/group__grp__arraysmatrix.js ---------------------------------------------------------------------- diff --git a/docs/v1.11/group__grp__arraysmatrix.js b/docs/v1.11/group__grp__arraysmatrix.js new file mode 100644 index 0000000..5e12094 --- /dev/null +++ b/docs/v1.11/group__grp__arraysmatrix.js @@ -0,0 +1,8 @@ +var group__grp__arraysmatrix = +[ + [ "Array Operations", "group__grp__array.html", null ], + [ "Matrix Operations", "group__grp__matrix.html", null ], + [ "Matrix Factorization", "group__grp__matrix__factorization.html", "group__grp__matrix__factorization" ], + [ "Norms and Distance functions", "group__grp__linalg.html", null ], + [ "Sparse Vectors", "group__grp__svec.html", null ] +]; \ No newline at end of file