blob: ad679e2a8fed929450faa6cd29f87f0091016ec7 [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: linalg.sql_in File Reference</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/./linalg_8sql__in.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('linalg_8sql__in.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">linalg.sql_in File Reference</div> </div>
</div>
<div class="contents">
<p>SQL functions for linear algebra.
<a href="#details">More...</a></p>
<p><a href="linalg_8sql__in_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#a300300fe4b8576ba0b97b95d8dea3057">norm1</a> (float8[] x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">1-norm of a vector <a href="#a300300fe4b8576ba0b97b95d8dea3057"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#a50fdfe30cc0edc6888a909dbb4b4c239">norm2</a> (float8[] x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">2-norm of a vector <a href="#a50fdfe30cc0edc6888a909dbb4b4c239"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#aad193850e79c4b9d811ca9bc53e13476">dist_norm1</a> (float8[] x, float8[] y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">1-norm of the difference between two vectors <a href="#aad193850e79c4b9d811ca9bc53e13476"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#aa58e51526edea6ea98db30b6f250adb4">dist_norm2</a> (float8[] x, float8[] y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">2-norm of the difference between two vectors <a href="#aa58e51526edea6ea98db30b6f250adb4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#a00a08e69f27524f2096032214e15b668">squared_dist_norm2</a> (float8[] x, float8[] y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Squared 2-norm of the difference between two vectors. <a href="#a00a08e69f27524f2096032214e15b668"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#a8c7b9281a72ff22caf06161701b27e84">dist_angle</a> (float8[] x, float8[] y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Angle between two vectors. <a href="#a8c7b9281a72ff22caf06161701b27e84"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#afa13b4c6122b99422d666dedea136c18">dist_tanimoto</a> (float8[] x, float8[] y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tanimoto distance between two vectors. <a href="#afa13b4c6122b99422d666dedea136c18"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">closest_column_result&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#aa2856d10fa6cb12a5b168bab217197ed">closest_column</a> (float8[][] m, float8[] x, regproc dist=&quot;squared_dist_norm2&quot;)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Given matrix \( M \) and vector \( \vec x \) compute the column of \( M \) that is closest to \( \vec x \). <a href="#aa2856d10fa6cb12a5b168bab217197ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">closest_columns_result&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#ad3e16fc5435474b96b182ba20905461e">closest_columns</a> (float8[][] m, float8[] x, integer num, regproc dist=&quot;squared_dist_norm2&quot;)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Given matrix \( M \) and vector \( \vec x \) compute the columns of \( M \) that are closest to \( \vec x \). <a href="#ad3e16fc5435474b96b182ba20905461e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">aggregate float8[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#a1aa37f73fb1cd8d7d106aa518dd8c0b4">avg</a> (float8[] x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the average of vectors. <a href="#a1aa37f73fb1cd8d7d106aa518dd8c0b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">aggregate float8[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#a0b04663ca206f03e66aed5ea2b4cc461">normalized_avg</a> (float8[] x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the normalized average of vectors. <a href="#a0b04663ca206f03e66aed5ea2b4cc461"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">aggregate float8[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#a9c439706f35d6cac89f151d553a5f111">matrix_agg</a> (float8[] x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Combine vectors to a matrix. <a href="#a9c439706f35d6cac89f151d553a5f111"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float8[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linalg_8sql__in.html#a24a4f14f171a12ec31f609af2f07ac18">matrix_column</a> (float8[][] matrix, integer col)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the column of a matrix. <a href="#a24a4f14f171a12ec31f609af2f07ac18"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><dl class="see"><dt><b>See also:</b></dt><dd>For an overview of linear-algebra functions, see the module description <a class="el" href="group__grp__linalg.html">Linear-Algebra Operations</a>. </dd></dl>
<p>Definition in file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a1aa37f73fb1cd8d7d106aa518dd8c0b4"></a><!-- doxytag: member="linalg.sql_in::avg" ref="a1aa37f73fb1cd8d7d106aa518dd8c0b4" args="(float8[] x)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">aggregate float8 [] avg </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Given vectors \( x_1, \dots, x_n \), compute the average \( \frac 1n \sum_{i=1}^n x_i \).</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Point \( x_i \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Average \( \frac 1n \sum_{i=1}^n x_i \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00291">291</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="aa2856d10fa6cb12a5b168bab217197ed"></a><!-- doxytag: member="linalg.sql_in::closest_column" ref="aa2856d10fa6cb12a5b168bab217197ed" args="(float8[][] m, float8[] x, regproc dist=&quot;squared_dist_norm2&quot;)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">closest_column_result closest_column </td>
<td>(</td>
<td class="paramtype">float8&#160;</td>
<td class="paramname"><em>m</em>[][], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">regproc&#160;</td>
<td class="paramname"><em>dist</em> = <code>&quot;squared_dist_norm2&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">M</td><td>Matrix \( M = (\vec{m_0} \dots \vec{m_{l-1}}) \in \mathbb{R}^{k \times l} \) </td></tr>
<tr><td class="paramname">x</td><td>Vector \( \vec x \in \mathbb R^k \) </td></tr>
<tr><td class="paramname">dist</td><td>The metric \( \operatorname{dist} \). This needs to be a function with signature <code>DOUBLE PRECISION[] x DOUBLE PRECISION[] -&gt; DOUBLE PRECISION</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A composite value:<ul>
<li><code>columns_id INTEGER</code> - The 0-based index of the column of \( M \) that is closest to \( x \). In case of ties, the first such index is returned. That is, <code>columns_id</code> is the minimum element in the set \( \arg\min_{i=0,\dots,l-1} \operatorname{dist}(\vec{m_i}, \vec x) \).</li>
<li><code>distance DOUBLE PRECISION</code> - The minimum distance between any column of \( M \) and \( x \). That is, \( \min_{i=0,\dots,l-1} \operatorname{dist}(\vec{m_i}, \vec x) \). </li>
</ul>
</dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00186">186</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="ad3e16fc5435474b96b182ba20905461e"></a><!-- doxytag: member="linalg.sql_in::closest_columns" ref="ad3e16fc5435474b96b182ba20905461e" args="(float8[][] m, float8[] x, integer num, regproc dist=&quot;squared_dist_norm2&quot;)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">closest_columns_result closest_columns </td>
<td>(</td>
<td class="paramtype">float8&#160;</td>
<td class="paramname"><em>m</em>[][], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">integer&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">regproc&#160;</td>
<td class="paramname"><em>dist</em> = <code>&quot;squared_dist_norm2&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function does essentially the same as <a class="el" href="linalg_8sql__in.html#aa2856d10fa6cb12a5b168bab217197ed">closest_column()</a>, except that it allows to specify the number of closest columns to return. The return value is a composite value:</p>
<ul>
<li><code>columns_ids INTEGER[]</code> - The 0-based indices of the <code>num</code> columns of \( M \) that are closest to \( x \). In case of ties, the first such indices are returned.</li>
<li><code>distances DOUBLE PRECISION[]</code> - The distances between the columns of \( M \) with indices in <code>columns_ids</code> and \( x \). That is, <code>distances[i]</code> contains \( \operatorname{dist}(\vec{m_j}, \vec x) \), where \( j = \) <code>columns_ids[i]</code>. </li>
</ul>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00232">232</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="a8c7b9281a72ff22caf06161701b27e84"></a><!-- doxytag: member="linalg.sql_in::dist_angle" ref="a8c7b9281a72ff22caf06161701b27e84" args="(float8[] x, float8[] y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float8 dist_angle </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Vector \( \vec x = (x_1, \dots, x_n) \) </td></tr>
<tr><td class="paramname">y</td><td>Vector \( \vec y = (y_1, \dots, y_n) \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>\( \arccos\left(\frac{\langle \vec x, \vec y \rangle} {\| \vec x \| \cdot \| \vec y \|}\right) \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00131">131</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="aad193850e79c4b9d811ca9bc53e13476"></a><!-- doxytag: member="linalg.sql_in::dist_norm1" ref="aad193850e79c4b9d811ca9bc53e13476" args="(float8[] x, float8[] y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float8 dist_norm1 </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Vector \( \vec x = (x_1, \dots, x_n) \) </td></tr>
<tr><td class="paramname">y</td><td>Vector \( \vec y = (y_1, \dots, y_n) \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>\( \| x - y \|_1 = \sum_{i=1}^n |x_i - y_i| \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00082">82</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="aa58e51526edea6ea98db30b6f250adb4"></a><!-- doxytag: member="linalg.sql_in::dist_norm2" ref="aa58e51526edea6ea98db30b6f250adb4" args="(float8[] x, float8[] y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float8 dist_norm2 </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Vector \( \vec x = (x_1, \dots, x_n) \) </td></tr>
<tr><td class="paramname">y</td><td>Vector \( \vec y = (y_1, \dots, y_n) \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>\( \| x - y \|_2 = \sqrt{\sum_{i=1}^n (x_i - y_i)^2} \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00098">98</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="afa13b4c6122b99422d666dedea136c18"></a><!-- doxytag: member="linalg.sql_in::dist_tanimoto" ref="afa13b4c6122b99422d666dedea136c18" args="(float8[] x, float8[] y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float8 dist_tanimoto </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Vector \( \vec x = (x_1, \dots, x_n) \) </td></tr>
<tr><td class="paramname">y</td><td>Vector \( \vec y = (y_1, \dots, y_n) \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>\( 1 - \frac{\langle \vec x, \vec y \rangle} {\| \vec x \|^2 \cdot \| \vec y \|^2 - \langle \vec x, \vec y \rangle} \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00149">149</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="a9c439706f35d6cac89f151d553a5f111"></a><!-- doxytag: member="linalg.sql_in::matrix_agg" ref="a9c439706f35d6cac89f151d553a5f111" args="(float8[] x)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">aggregate float8 [] matrix_agg </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Given vectors \( \vec x_1, \dots, \vec x_n \in \mathbb R^m \), return matrix \( ( \vec x_1 \dots \vec x_n ) \in \mathbb R^{m \times n}\).</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Vector \( x_i \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Matrix with columns \( x_1, \dots, x_n \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00365">365</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="a24a4f14f171a12ec31f609af2f07ac18"></a><!-- doxytag: member="linalg.sql_in::matrix_column" ref="a24a4f14f171a12ec31f609af2f07ac18" args="(float8[][] matrix, integer col)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float8 [] matrix_column </td>
<td>(</td>
<td class="paramtype">float8&#160;</td>
<td class="paramname"><em>matrix</em>[][], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">integer&#160;</td>
<td class="paramname"><em>col</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">matrix</td><td>Two-dimensional matrix </td></tr>
<tr><td class="paramname">col</td><td>Column of the matrix to return (0-based index) </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00382">382</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="a300300fe4b8576ba0b97b95d8dea3057"></a><!-- doxytag: member="linalg.sql_in::norm1" ref="a300300fe4b8576ba0b97b95d8dea3057" args="(float8[] x)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float8 norm1 </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Vector \( \vec x = (x_1, \dots, x_n) \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>\( \| x \|_1 = \sum_{i=1}^n |x_i| \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00053">53</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="a50fdfe30cc0edc6888a909dbb4b4c239"></a><!-- doxytag: member="linalg.sql_in::norm2" ref="a50fdfe30cc0edc6888a909dbb4b4c239" args="(float8[] x)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float8 norm2 </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Vector \( \vec x = (x_1, \dots, x_n) \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>\( \| x \|_2 = \sqrt{\sum_{i=1}^n x_i^2} \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00067">67</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="a0b04663ca206f03e66aed5ea2b4cc461"></a><!-- doxytag: member="linalg.sql_in::normalized_avg" ref="a0b04663ca206f03e66aed5ea2b4cc461" args="(float8[] x)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">aggregate float8 [] normalized_avg </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Given vectors \( x_1, \dots, x_n \), define \( \widetilde{x} := \frac 1n \sum_{i=1}^n \frac{x_i}{\| x_i \|} \), and compute the normalized average \( \frac{\widetilde{x}}{\| \widetilde{x} \|} \).</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Point \( x_i \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Normalized average \( \frac{\widetilde{x}}{\| \widetilde{x} \|} \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00329">329</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
<a class="anchor" id="a00a08e69f27524f2096032214e15b668"></a><!-- doxytag: member="linalg.sql_in::squared_dist_norm2" ref="a00a08e69f27524f2096032214e15b668" args="(float8[] x, float8[] y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float8 squared_dist_norm2 </td>
<td>(</td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float8[]&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>Vector \( \vec x = (x_1, \dots, x_n) \) </td></tr>
<tr><td class="paramname">y</td><td>Vector \( \vec y = (y_1, \dots, y_n) \) </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>\( \| x - y \|_2^2 = \sum_{i=1}^n (x_i - y_i)^2 \) </dd></dl>
<p>Definition at line <a class="el" href="linalg_8sql__in_source.html#l00114">114</a> of file <a class="el" href="linalg_8sql__in_source.html">linalg.sql_in</a>.</p>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="linalg_8sql__in.html">linalg.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>