blob: 604a04e1fbc438a9985f42a7242f56b07ac3cf3f [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>MADlib: array_ops.sql_in Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<script src="../mathjax/MathJax.js">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">MADlib
&#160;<span id="projectnumber">0.6</span> <span style="font-size:10pt; font-style:italic"><a href="../latest/./array__ops_8sql__in_source.html"> A newer version is available</a></span>
</div>
<div id="projectbrief">User Documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="dynsections.js"></script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('array__ops_8sql__in.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">array_ops.sql_in</div> </div>
</div>
<div class="contents">
<a href="array__ops_8sql__in.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* ----------------------------------------------------------------------- */</span><span class="comment">/** </span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * @file array_ops.sql_in</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * @brief implementation of array operations in SQL</span>
<a name="l00006"></a>00006 <span class="comment"> * @date April 2011</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> */</span><span class="comment">/* ----------------------------------------------------------------------- */</span>
<a name="l00010"></a>00010
<a name="l00011"></a>00011 m4_include(`SQLCommon.m4<span class="stringliteral">&#39;)</span>
<a name="l00012"></a>00012 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">/**</span>
<a name="l00014"></a>00014 <span class="comment">@addtogroup grp_array</span>
<a name="l00015"></a>00015 <span class="comment"></span>
<a name="l00016"></a>00016 <span class="comment"></span>
<a name="l00017"></a>00017 <span class="comment">@about</span>
<a name="l00018"></a>00018 <span class="comment"></span>
<a name="l00019"></a>00019 <span class="comment">This module provide a set of basic array operations implemented in C. It is a support module for several machine learning algorithms that</span>
<a name="l00020"></a>00020 <span class="comment">require fast array operations. </span>
<a name="l00021"></a>00021 <span class="comment"></span>
<a name="l00022"></a>00022 <span class="comment">@implementation</span>
<a name="l00023"></a>00023 <span class="comment"></span>
<a name="l00024"></a>00024 <span class="comment">-# At present these functions support several numeric types:</span>
<a name="l00025"></a>00025 <span class="comment"> - SHORTINT</span>
<a name="l00026"></a>00026 <span class="comment"> - INT</span>
<a name="l00027"></a>00027 <span class="comment"> - BIGINT</span>
<a name="l00028"></a>00028 <span class="comment"> - REAL</span>
<a name="l00029"></a>00029 <span class="comment"> - FLOAT</span>
<a name="l00030"></a>00030 <span class="comment">As of now they do not support variable size NUMERIC input. </span>
<a name="l00031"></a>00031 <span class="comment">-# Also several of them may require NO NULL VALUES, while others omit NULLs and </span>
<a name="l00032"></a>00032 <span class="comment">return results.</span>
<a name="l00033"></a>00033 <span class="comment"></span>
<a name="l00034"></a>00034 <span class="comment">@sa File array_ops.sql_in for list of functions and usage.</span>
<a name="l00035"></a>00035 <span class="comment">*/</span>
<a name="l00036"></a>00036 <span class="comment"></span>
<a name="l00037"></a>00037 <span class="comment">/**</span>
<a name="l00038"></a>00038 <span class="comment"> * @brief Adds two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type.</span>
<a name="l00039"></a>00039 <span class="comment"> *</span>
<a name="l00040"></a>00040 <span class="comment"> * @param x Array x</span>
<a name="l00041"></a>00041 <span class="comment"> * @param y Array y</span>
<a name="l00042"></a>00042 <span class="comment"> * @returns Sum of x and y.</span>
<a name="l00043"></a>00043 <span class="comment"> *</span>
<a name="l00044"></a>00044 <span class="comment"> */</span>
<a name="l00045"></a>00045 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_add(x anyarray, y anyarray) RETURNS anyarray
<a name="l00046"></a>00046 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00047"></a>00047 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00048"></a>00048 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00049"></a>00049 <span class="comment">/**</span>
<a name="l00050"></a>00050 <span class="comment"> * @brief Subtracts two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type.</span>
<a name="l00051"></a>00051 <span class="comment"> *</span>
<a name="l00052"></a>00052 <span class="comment"> * @param x Array x</span>
<a name="l00053"></a>00053 <span class="comment"> * @param y Array y</span>
<a name="l00054"></a>00054 <span class="comment"> * @returns x-y.</span>
<a name="l00055"></a>00055 <span class="comment"> *</span>
<a name="l00056"></a>00056 <span class="comment"> */</span>
<a name="l00057"></a>00057 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_sub(x anyarray, y anyarray) RETURNS anyarray
<a name="l00058"></a>00058 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00059"></a>00059 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00060"></a>00060 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00061"></a>00061 <span class="comment">/**</span>
<a name="l00062"></a>00062 <span class="comment"> * @brief Element-wise product of two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type.</span>
<a name="l00063"></a>00063 <span class="comment"> *</span>
<a name="l00064"></a>00064 <span class="comment"> * @param x Array x</span>
<a name="l00065"></a>00065 <span class="comment"> * @param y Array y</span>
<a name="l00066"></a>00066 <span class="comment"> * @returns Element-wise product of x and y.</span>
<a name="l00067"></a><a class="code" href="array__ops_8sql__in.html#a91c8d3715142927b3967f05a4fbf1575">00067</a> <span class="comment"> *</span>
<a name="l00068"></a>00068 <span class="comment"> */</span>
<a name="l00069"></a>00069 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_mult(x anyarray, y anyarray) RETURNS anyarray
<a name="l00070"></a>00070 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00071"></a>00071 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00072"></a>00072 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00073"></a>00073 <span class="comment">/**</span>
<a name="l00074"></a>00074 <span class="comment"> * @brief Element-wise division of two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type.</span>
<a name="l00075"></a>00075 <span class="comment"> *</span>
<a name="l00076"></a>00076 <span class="comment"> * @param x Array x</span>
<a name="l00077"></a>00077 <span class="comment"> * @param y Array y</span>
<a name="l00078"></a>00078 <span class="comment"> * @returns Element-wise division of x and y.</span>
<a name="l00079"></a><a class="code" href="array__ops_8sql__in.html#a2875a161a01c7dcdea9a4997b074eefc">00079</a> <span class="comment"> *</span>
<a name="l00080"></a>00080 <span class="comment"> */</span>
<a name="l00081"></a>00081 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_div(x anyarray, y anyarray) RETURNS anyarray
<a name="l00082"></a>00082 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00083"></a>00083 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00084"></a>00084 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00085"></a>00085 <span class="comment">/**</span>
<a name="l00086"></a>00086 <span class="comment"> * @brief Dot-product of two arrays. It requires that all the values are NON-NULL. Return type is the same as the input type.</span>
<a name="l00087"></a>00087 <span class="comment"> *</span>
<a name="l00088"></a>00088 <span class="comment"> * @param x Array x</span>
<a name="l00089"></a>00089 <span class="comment"> * @param y Array y</span>
<a name="l00090"></a>00090 <span class="comment"> * @returns Dot-product of x and y.</span>
<a name="l00091"></a><a class="code" href="array__ops_8sql__in.html#a652d70c480d484c4a1a92ded384b0dd7">00091</a> <span class="comment"> *</span>
<a name="l00092"></a>00092 <span class="comment"> */</span>
<a name="l00093"></a>00093 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_dot(x anyarray, y anyarray) RETURNS FLOAT8
<a name="l00094"></a>00094 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00095"></a>00095 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00096"></a>00096 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00097"></a>00097 <span class="comment">/**</span>
<a name="l00098"></a>00098 <span class="comment"> * @brief Checks whether one array contains the other.</span>
<a name="l00099"></a>00099 <span class="comment"> *</span>
<a name="l00100"></a>00100 <span class="comment"> * @param x Array x</span>
<a name="l00101"></a>00101 <span class="comment"> * @param y Array y</span>
<a name="l00102"></a>00102 <span class="comment"> * @returns Returns true if x contains y.</span>
<a name="l00103"></a><a class="code" href="array__ops_8sql__in.html#a6cc05e7052495f8b64692faf40219576">00103</a> <span class="comment"> *</span>
<a name="l00104"></a>00104 <span class="comment"> */</span>
<a name="l00105"></a>00105 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_contains(x anyarray, y anyarray) RETURNS BOOL
<a name="l00106"></a>00106 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" href="array__ops_8sql__in.html#aedf6cb13eb4803bcc12dc4d95ea8ff4e" title="Checks whether one array contains the other.">array_contains</a><span class="stringliteral">&#39;</span>
<a name="l00107"></a>00107 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00108"></a>00108 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00109"></a>00109 <span class="comment">/**</span>
<a name="l00110"></a>00110 <span class="comment"> * @brief This function finds the maximum value in the array. NULLs are ignored. Return type is the same as the input type.</span>
<a name="l00111"></a>00111 <span class="comment"> *</span>
<a name="l00112"></a>00112 <span class="comment"> * @param x Array x</span>
<a name="l00113"></a>00113 <span class="comment"> * @returns Max of x.</span>
<a name="l00114"></a>00114 <span class="comment"> *</span>
<a name="l00115"></a><a class="code" href="array__ops_8sql__in.html#acde10964ed23b7c8da515fb84cb8d5e0">00115</a> <span class="comment"> */</span>
<a name="l00116"></a>00116 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_max(x anyarray) RETURNS anyelement
<a name="l00117"></a>00117 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00118"></a>00118 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00119"></a>00119 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00120"></a>00120 <span class="comment">/**</span>
<a name="l00121"></a>00121 <span class="comment"> * @brief This function finds the minimum value in the array. NULLs are ignored. Return type is the same as the input type.</span>
<a name="l00122"></a>00122 <span class="comment"> *</span>
<a name="l00123"></a>00123 <span class="comment"> * @param x Array x</span>
<a name="l00124"></a>00124 <span class="comment"> * @returns Min of x.</span>
<a name="l00125"></a>00125 <span class="comment"> *</span>
<a name="l00126"></a>00126 <span class="comment"> */</span>
<a name="l00127"></a><a class="code" href="array__ops_8sql__in.html#aedf6cb13eb4803bcc12dc4d95ea8ff4e">00127</a> CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_min(x anyarray) RETURNS anyelement
<a name="l00128"></a>00128 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00129"></a>00129 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00130"></a>00130 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00131"></a>00131 <span class="comment">/**</span>
<a name="l00132"></a>00132 <span class="comment"> * @brief This function finds the sum of the values in the array. NULLs are ignored. Return type is the same as the input type.</span>
<a name="l00133"></a>00133 <span class="comment"> *</span>
<a name="l00134"></a>00134 <span class="comment"> * @param x Array x</span>
<a name="l00135"></a>00135 <span class="comment"> * @returns Sum of x.</span>
<a name="l00136"></a>00136 <span class="comment"> *</span>
<a name="l00137"></a>00137 <span class="comment"> */</span>
<a name="l00138"></a><a class="code" href="array__ops_8sql__in.html#ae891429cc50705c530f3e5ca15541849">00138</a> CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_sum(x anyarray) RETURNS anyelement
<a name="l00139"></a>00139 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00140"></a>00140 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00141"></a>00141 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00142"></a>00142 <span class="comment">/**</span>
<a name="l00143"></a>00143 <span class="comment"> * @brief 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 array_sum in the cases when sum may overflow the array type.</span>
<a name="l00144"></a>00144 <span class="comment"> *</span>
<a name="l00145"></a>00145 <span class="comment"> * @param x Array x</span>
<a name="l00146"></a>00146 <span class="comment"> * @returns Sum of x.</span>
<a name="l00147"></a>00147 <span class="comment"> *</span>
<a name="l00148"></a>00148 <span class="comment"> */</span>
<a name="l00149"></a><a class="code" href="array__ops_8sql__in.html#a6659bf9d9363eb179fab34f81f8ac59b">00149</a> CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_sum_big(x anyarray) RETURNS FLOAT8
<a name="l00150"></a>00150 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00151"></a>00151 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00152"></a>00152 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00153"></a>00153 <span class="comment">/**</span>
<a name="l00154"></a>00154 <span class="comment"> * @brief TThis function finds the mean of the values in the array. NULLs are ignored. Return type is the same as the input type.</span>
<a name="l00155"></a>00155 <span class="comment"> *</span>
<a name="l00156"></a>00156 <span class="comment"> * @param x Array x</span>
<a name="l00157"></a>00157 <span class="comment"> * @returns Mean of x.</span>
<a name="l00158"></a>00158 <span class="comment"> *</span>
<a name="l00159"></a>00159 <span class="comment"> */</span>
<a name="l00160"></a><a class="code" href="array__ops_8sql__in.html#a4c98f20e6a737358806f63318daea5ec">00160</a> CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_mean(x anyarray) RETURNS FLOAT8
<a name="l00161"></a>00161 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" href="array__ops_8sql__in.html#a407598f9eb70637798b02fd731bfca2c" title="TThis function finds the mean of the values in the array. NULLs are ignored. Return type is the same ...">array_mean</a><span class="stringliteral">&#39;</span>
<a name="l00162"></a>00162 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00163"></a>00163 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00164"></a>00164 <span class="comment">/**</span>
<a name="l00165"></a>00165 <span class="comment"> * @brief This function finds the standard deviation of the values in the array. NULLs are ignored. Return type is the same as the input type.</span>
<a name="l00166"></a>00166 <span class="comment"> *</span>
<a name="l00167"></a>00167 <span class="comment"> * @param x Array x</span>
<a name="l00168"></a>00168 <span class="comment"> * @returns Standard deviation of x.</span>
<a name="l00169"></a>00169 <span class="comment"> *</span>
<a name="l00170"></a>00170 <span class="comment"> */</span>
<a name="l00171"></a><a class="code" href="array__ops_8sql__in.html#a418de59800833aa95f9b7cbd6b12901c">00171</a> CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_stddev(x anyarray) RETURNS FLOAT8
<a name="l00172"></a>00172 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" href="array__ops_8sql__in.html#a3b6c2d173a611e6d6b184d825c2b336d" title="This function finds the standard deviation of the values in the array. NULLs are ignored. Return type is the same as the input type.">array_stddev</a><span class="stringliteral">&#39;</span>
<a name="l00173"></a>00173 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00174"></a>00174 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00175"></a>00175 <span class="comment">/**</span>
<a name="l00176"></a>00176 <span class="comment"> * @brief This function creates an array of set size (the argument value) of FLOAT8, initializing the values to 0.0;</span>
<a name="l00177"></a>00177 <span class="comment"> *</span>
<a name="l00178"></a>00178 <span class="comment"> * @param k Array size</span>
<a name="l00179"></a>00179 <span class="comment"> * @returns Array of size k.</span>
<a name="l00180"></a>00180 <span class="comment"> *</span>
<a name="l00181"></a>00181 <span class="comment"> */</span>
<a name="l00182"></a><a class="code" href="array__ops_8sql__in.html#a407598f9eb70637798b02fd731bfca2c">00182</a> CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_of_float(k INT4) RETURNS FLOAT8[]
<a name="l00183"></a>00183 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" href="array__ops_8sql__in.html#a2c42a29f01aeab521073bb329fa4d239" title="This function creates an array of set size (the argument value) of FLOAT8, initializing the values to...">array_of_float</a><span class="stringliteral">&#39;</span>
<a name="l00184"></a>00184 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00185"></a>00185 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00186"></a>00186 <span class="comment">/**</span>
<a name="l00187"></a>00187 <span class="comment"> * @brief This function creates an array of set size (the argument value) of BIGINT, initializing the values to 0;</span>
<a name="l00188"></a>00188 <span class="comment"> *</span>
<a name="l00189"></a>00189 <span class="comment"> * @param k Array size.</span>
<a name="l00190"></a>00190 <span class="comment"> * @returns Array of size k.</span>
<a name="l00191"></a>00191 <span class="comment"> *</span>
<a name="l00192"></a>00192 <span class="comment"> */</span>
<a name="l00193"></a><a class="code" href="array__ops_8sql__in.html#a3b6c2d173a611e6d6b184d825c2b336d">00193</a> CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_of_bigint(k INT4) RETURNS INT8[]
<a name="l00194"></a>00194 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" href="array__ops_8sql__in.html#a4b562ee8fb5b3f974fdc56093c0cc9dd" title="This function creates an array of set size (the argument value) of BIGINT, initializing the values to...">array_of_bigint</a><span class="stringliteral">&#39;</span>
<a name="l00195"></a>00195 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00196"></a>00196 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00197"></a>00197 <span class="comment">/**</span>
<a name="l00198"></a>00198 <span class="comment"> * @brief This functions set every values in the array to some desired value (provided as the argument).</span>
<a name="l00199"></a>00199 <span class="comment"> *</span>
<a name="l00200"></a>00200 <span class="comment"> * @param x Some array</span>
<a name="l00201"></a>00201 <span class="comment"> * @param k Desired value</span>
<a name="l00202"></a>00202 <span class="comment"> * @returns Fills array with desired value.</span>
<a name="l00203"></a>00203 <span class="comment"> *</span>
<a name="l00204"></a><a class="code" href="array__ops_8sql__in.html#a2c42a29f01aeab521073bb329fa4d239">00204</a> <span class="comment"> */</span>
<a name="l00205"></a>00205 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_fill(x anyarray, k anyelement) RETURNS anyarray
<a name="l00206"></a>00206 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" 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><span class="stringliteral">&#39;</span>
<a name="l00207"></a>00207 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00208"></a>00208 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00209"></a>00209 <span class="comment">/**</span>
<a name="l00210"></a>00210 <span class="comment"> * @brief This function takes an array as the input and executes element with 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.</span>
<a name="l00211"></a>00211 <span class="comment"> * @param x Array x</span>
<a name="l00212"></a>00212 <span class="comment"> * @param k Scalar</span>
<a name="l00213"></a>00213 <span class="comment"> * @returns Array with each element of x multiplied by scalar.</span>
<a name="l00214"></a>00214 <span class="comment"> *</span>
<a name="l00215"></a><a class="code" href="array__ops_8sql__in.html#a4b562ee8fb5b3f974fdc56093c0cc9dd">00215</a> <span class="comment"> */</span>
<a name="l00216"></a>00216 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_scalar_mult(x anyarray, k anyelement) RETURNS anyarray
<a name="l00217"></a>00217 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" href="array__ops_8sql__in.html#ae6881cc5c86941b6ffca35d7f3cd5c12" title="This function takes an array as the input and executes element with multiplication by the scalar prov...">array_scalar_mult</a><span class="stringliteral">&#39;</span>
<a name="l00218"></a>00218 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00219"></a>00219 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00220"></a>00220 <span class="comment">/**</span>
<a name="l00221"></a>00221 <span class="comment"> * @brief 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. Return type is the same as the input type. This means that if the input if of the size INT, the results would also be rounded.</span>
<a name="l00222"></a>00222 <span class="comment"> *</span>
<a name="l00223"></a>00223 <span class="comment"> * @param x Array x</span>
<a name="l00224"></a>00224 <span class="comment"> * @returns Square root of all elements of x.</span>
<a name="l00225"></a>00225 <span class="comment"> *</span>
<a name="l00226"></a>00226 <span class="comment"> */</span>
<a name="l00227"></a><a class="code" href="array__ops_8sql__in.html#a065a5323f3b742be47e39ad8b4c90fc2">00227</a> CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.array_sqrt(x anyarray) RETURNS anyarray
<a name="l00228"></a>00228 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span><a class="code" href="array__ops_8sql__in.html#a66195b7521ba0491f7fcbb54b10f335d" title="This function takes an array as the input and finds square root of each element in the array...">array_sqrt</a><span class="stringliteral">&#39;</span>
<a name="l00229"></a>00229 <span class="stringliteral">LANGUAGE C IMMUTABLE;</span>
<a name="l00230"></a>00230 <span class="stringliteral"></span>
<a name="l00231"></a>00231 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00232"></a>00232 <span class="comment">/**</span>
<a name="l00233"></a>00233 <span class="comment"> * @brief Array normalization function.</span>
<a name="l00234"></a>00234 <span class="comment"> *</span>
<a name="l00235"></a>00235 <span class="comment"> * @param x Array x.</span>
<a name="l00236"></a>00236 <span class="comment"> * @return Array normalized by its norm.</span>
<a name="l00237"></a>00237 <span class="comment"> * </span>
<a name="l00238"></a><a class="code" href="array__ops_8sql__in.html#ae6881cc5c86941b6ffca35d7f3cd5c12">00238</a> <span class="comment"> */</span>
<a name="l00239"></a>00239 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.normalize(x float8[]) RETURNS float8[]
<a name="l00240"></a>00240 AS &#39;MODULE_PATHNAME<span class="stringliteral">&#39;, &#39;</span>array_normalize<span class="stringliteral">&#39; LANGUAGE C IMMUTABLE STRICT;</span>
<a name="l00241"></a>00241 <span class="stringliteral"></span><span class="comment"></span>
<a name="l00242"></a>00242 <span class="comment">/**</span>
<a name="l00243"></a>00243 <span class="comment"> * @brief ARRAY_AGG aggregate for compatibility with GPDB &lt; 4.1 and Postgres &lt; 9.0</span>
<a name="l00244"></a>00244 <span class="comment"> * This is a slower solution than the built in array_agg that appears</span>
<a name="l00245"></a>00245 <span class="comment"> * in later GPDB and Postgres versions</span>
<a name="l00246"></a>00246 <span class="comment"> */</span>
<a name="l00247"></a>00247 CREATE AGGREGATE MADLIB_SCHEMA.array_agg( anyelement) (
<a name="l00248"></a>00248 SFUNC = array_append,
<a name="l00249"></a><a class="code" href="array__ops_8sql__in.html#a66195b7521ba0491f7fcbb54b10f335d">00249</a> STYPE = anyarray
<a name="l00250"></a>00250 m4_ifdef( `__GREENPLUM__&#39;,`, PREFUNC = array_cat<span class="stringliteral">&#39;)</span>
<a name="l00251"></a>00251 <span class="stringliteral">);</span>
</pre></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="array__ops_8sql__in.html">array_ops.sql_in</a> </li>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<li class="footer">Generated on Tue Apr 2 2013 14:57:03 for MADlib by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
</ul>
</div>
</body>
</html>