You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafu.apache.org by mh...@apache.org on 2018/01/29 19:01:47 UTC
svn commit: r1822555 [8/49] - in /incubator/datafu/site/docs: datafu/1.3.3/
datafu/1.3.3/datafu/ datafu/1.3.3/datafu/pig/ datafu/1.3.3/datafu/pig/bags/
datafu/1.3.3/datafu/pig/geo/ datafu/1.3.3/datafu/pig/hash/
datafu/1.3.3/datafu/pig/hash/lsh/ datafu/...
Added: incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/L2PStableHash.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/L2PStableHash.html?rev=1822555&view=auto
==============================================================================
--- incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/L2PStableHash.html (added)
+++ incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/L2PStableHash.html Mon Jan 29 19:01:43 2018
@@ -0,0 +1,485 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_79) on Mon Jan 29 10:58:36 PST 2018 -->
+<title>L2PStableHash (datafu-pig 1.3.3 API)</title>
+<meta name="date" content="2018-01-29">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="L2PStableHash (datafu-pig 1.3.3 API)";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../datafu/pig/hash/lsh/L1PStableHash.html" title="class in datafu.pig.hash.lsh"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFamily.html" title="class in datafu.pig.hash.lsh"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?datafu/pig/hash/lsh/L2PStableHash.html" target="_top">Frames</a></li>
+<li><a href="L2PStableHash.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a> | </li>
+<li><a href="#fields_inherited_from_class_datafu.pig.hash.lsh.LSHFunc">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">datafu.pig.hash.lsh</div>
+<h2 title="Class L2PStableHash" class="title">Class L2PStableHash</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.pig.EvalFunc<org.apache.pig.data.DataBag></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh">datafu.pig.hash.lsh.LSHFunc</a></li>
+<li>
+<ul class="inheritance">
+<li>datafu.pig.hash.lsh.L2PStableHash</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">L2PStableHash</span>
+extends <a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh">LSHFunc</a></pre>
+<div class="block">From wikipedia's article on <a href="http://en.wikipedia.org/wiki/Locality-sensitive_hashing" target="_blank">Locality Sensitive Hashing</a>:
+ <pre>
+ Locality-sensitive hashing (LSH) is a method of performing probabilistic dimension reduction of high-dimensional data.
+ The basic idea is to hash the input items so that similar items are mapped to the same buckets with high probability
+ (the number of buckets being much smaller than the universe of possible input items).
+ </pre>
+
+ In particular, this implementation implements a locality sensitive hashing scheme which maps high-dimensional vectors which are
+ close together (with high probability) according to the <a href="http://en.wikipedia.org/wiki/Lp_space" target="_blank">L2</a>
+ distance metric into the same buckets. This implementation uses a 2-stable distribution (a Gaussian distribution) in order
+ to accomplish this.
+
+ For more information, see Datar, M.; Immorlica, N.; Indyk, P.; Mirrokni, V.S. (2004). "Locality-Sensitive Hashing Scheme Based on p-Stable Distributions". Proceedings of the Symposium on Computational Geometry.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.apache.pig.EvalFunc">
+<!-- -->
+</a>
+<h3>Nested classes/interfaces inherited from class org.apache.pig.EvalFunc</h3>
+<code>org.apache.pig.EvalFunc.SchemaType</code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_datafu.pig.hash.lsh.LSHFunc">
+<!-- -->
+</a>
+<h3>Fields inherited from class datafu.pig.hash.lsh.<a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh">LSHFunc</a></h3>
+<code><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#lsh">lsh</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.apache.pig.EvalFunc">
+<!-- -->
+</a>
+<h3>Fields inherited from class org.apache.pig.EvalFunc</h3>
+<code>log, pigLogger, reporter, returnType</code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../datafu/pig/hash/lsh/L2PStableHash.html#L2PStableHash(java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String)">L2PStableHash</a></strong>(java.lang.String sDim,
+ java.lang.String sW,
+ java.lang.String sRepeat,
+ java.lang.String sNumHashes)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../datafu/pig/hash/lsh/L2PStableHash.html#L2PStableHash(java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String)">L2PStableHash</a></strong>(java.lang.String sDim,
+ java.lang.String sW,
+ java.lang.String sRepeat,
+ java.lang.String sNumHashes,
+ java.lang.String sSeed)</code>
+<div class="block">Locality sensitive hash that maps vectors onto a long in such a way that colliding
+ vectors are "near" one another according to cosine similarity with high probability.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../datafu/pig/hash/lsh/interfaces/LSHCreator.html" title="class in datafu.pig.hash.lsh.interfaces">LSHCreator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/L2PStableHash.html#createLSHCreator()">createLSHCreator</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/L2PStableHash.html#getDimension()">getDimension</a></strong>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.pig.hash.lsh.LSHFunc">
+<!-- -->
+</a>
+<h3>Methods inherited from class datafu.pig.hash.lsh.<a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh">LSHFunc</a></h3>
+<code><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#exec(org.apache.pig.data.Tuple)">exec</a>, <a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#getSeed()">getSeed</a>, <a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">outputSchema</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.apache.pig.EvalFunc">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.apache.pig.EvalFunc</h3>
+<code>allowCompileTimeCalculation, finish, getArgToFuncMapping, getCacheFiles, getInputSchema, getLogger, getPigLogger, getReporter, getReturnType, getSchemaName, getSchemaType, getShipFiles, isAsynchronous, progress, setInputSchema, setPigLogger, setReporter, setUDFContextSignature, warn</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="L2PStableHash(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>L2PStableHash</h4>
+<pre>public L2PStableHash(java.lang.String sDim,
+ java.lang.String sW,
+ java.lang.String sRepeat,
+ java.lang.String sNumHashes,
+ java.lang.String sSeed)</pre>
+<div class="block">Locality sensitive hash that maps vectors onto a long in such a way that colliding
+ vectors are "near" one another according to cosine similarity with high probability.
+
+ <p>
+ Generally, multiple LSH are combined via repetition to increase the range of the hash function to the full set of longs.
+ The number of functions which you want to internally repeat is specified by the sRepeat parameter.
+
+ The size of the hash family corresponds to the number of independent hashes you want to apply to the data.
+ In a k-near neighbors style of searching, this corresponds to the number of neighbors you want to find
+ (i.e. the number of vectors within a distance according to cosine similarity).
+
+ This UDF, indeed all p-stable LSH functions are parameterized with a quantization parameter (w or r in the literature
+ , depending on where you look). Consider the following excerpt from Datar, M.; Immorlica, N.; Indyk, P.; Mirrokni, V.S. (2004). "Locality-Sensitive Hashing Scheme Based on p-Stable Distributions". Proceedings of the Symposium on Computational Geometry.
+
+ <pre>
+ Decreasing the width of the projection (w) decreases the probability of collision for any two points.
+ Thus, it has the same effect as increasing k . As a result, we would like to set w as small as possible
+ and in this way decrease the number of projections we need to make.
+ </pre>
+
+ In the literature, the quantization parameter (or width of the projection) is found empirically given a sample of
+ the data and the likely threshold of for the metric. Tuning this parameter is very important for the performance
+ of this algorithm.
+
+ <p>
+ Consider the following example where we input some 3-dimensional points and a set of 3-dimensional queries
+ and find the nearest neighbors of the query points:
+ <pre>
+ -- Create a L2PStableHash of
+ -- 3 dimensional data
+ -- projection width of 200
+ -- 1 internal hashes
+ -- family of 5 hashes
+ -- with a seed of 0
+
+ -- This creates a bag of tuples:
+ -- lsh_id:Integer the family ID (in this case, 0-4)
+ -- hash:Long the hash
+
+ define LSH datafu.pig.hash.lsh.L2PStableHash('3', '200', '1', '5', '0');
+ define METRIC datafu.pig.hash.lsh.metric.L2();
+
+ PTS = LOAD 'input' AS (dim1:double, dim2:double, dim3:double);
+
+ --hash the input points
+ PTS_HASHED = foreach PTS generate TOTUPLE(dim1, dim2, dim3) as pt
+ , FLATTEN(LSH(TOTUPLE(dim1, dim2, dim3)));
+
+ -- the hash family ID and the hash should group the input points into partitions
+ PARTITIONS = group PTS_HASHED by (lsh_id, hash);
+
+ -- take in the query points and hash them
+ QUERIES = LOAD 'queries' as (dim1:double, dim2:double, dim3:double);
+ QUERIES_HASHED = foreach QUERIES generate TOTUPLE(dim1, dim2, dim3) as query_pt
+ , FLATTEN(LSH(TOTUPLE(dim1, dim2, dim3)))
+ ;
+
+ -- join the hashed query points with the (presumably larger) list of input data split by partitions
+ QUERIES_W_PARTS = join QUERIES_HASHED by (lsh_id, hash), PARTITIONS by (group.$0, group.$1);
+
+ -- Now, use the appropriate METRIC UDF (in this case L2 (aka Euclidean) distance) to find the first point within
+ -- a parameterized threshold (in this case, 1000). It takes:
+ -- query_pt:Tuple the query point
+ -- threshold:Double the threshold, so that if the distance between the query point and a point
+ -- in the partition is less than this threshold, it returns the point (and stops searching)
+ -- partition:Bag The bag of tuples in the partition.
+
+ tuples from
+ NEAR_NEIGHBORS = foreach QUERIES_W_PARTS generate query_pt as query_pt
+ , METRIC(query_pt, 1000, PTS_HASHED) as neighbor
+ ;
+ describe NEAR_NEIGHBORS;
+ describe NEAR_NEIGHBORS;
+ -- {query_pt: (dim1: double,dim2: double,dim3: double)
+ -- ,neighbor: (pt: (dim1: double,dim2: double,dim3: double)
+ -- ,lsh::lsh_id: int
+ -- ,lsh::hash: long
+ -- )
+ -- }
+
+ -- project out the query and the matching point
+ NEIGHBORS_PROJ = foreach NEAR_NEIGHBORS {
+ generate query_pt as query_pt, neighbor.pt as matching_pts;
+ };
+
+ -- Filter out the hashes which resulted in no matches
+ NOT_NULL = filter NEIGHBORS_PROJ by SIZE(matching_pts) > 0;
+
+ -- group by the query
+ NEIGHBORS_GRP = group NOT_NULL by query_pt;
+ describe NEIGHBORS_GRP;
+
+ -- Generate the query, the number of matches and the bag of matching points
+ NEIGHBOR_CNT = foreach NEIGHBORS_GRP{
+ MATCHING_PTS = foreach NOT_NULL generate FLATTEN(matching_pts);
+ DIST_MATCHING_PTS = DISTINCT MATCHING_PTS;
+ generate group as query_pt, COUNT(NOT_NULL), DIST_MATCHING_PTS;
+ };
+ describe NEIGHBOR_CNT;
+ -- NEIGHBOR_CNT: {query_pt: (dim1: double,dim2: double,dim3: double)
+ -- ,long
+ -- ,DIST_MATCHING_PTS: { (matching_pts::dim1: double,matching_pts::dim2: double,matching_pts::dim3: double)
+ -- }
+ -- }
+ STORE NEIGHBOR_CNT INTO 'neighbors';
+ </pre></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sDim</code> - Dimension of the vectors</dd><dd><code>sW</code> - A double representing the quantization parameter (also known as the projection width)</dd><dd><code>sRepeat</code> - Number of internal repetitions (generally this should be 1 as the p-stable hashes have a larger range than one bit)</dd><dd><code>sNumHashes</code> - Size of the hash family (if you're looking for k near neighbors, this is the k)</dd><dd><code>sSeed</code> - Seed to use when constructing LSH family</dd></dl>
+</li>
+</ul>
+<a name="L2PStableHash(java.lang.String, java.lang.String, java.lang.String, java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>L2PStableHash</h4>
+<pre>public L2PStableHash(java.lang.String sDim,
+ java.lang.String sW,
+ java.lang.String sRepeat,
+ java.lang.String sNumHashes)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="createLSHCreator()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createLSHCreator</h4>
+<pre>protected <a href="../../../../datafu/pig/hash/lsh/interfaces/LSHCreator.html" title="class in datafu.pig.hash.lsh.interfaces">LSHCreator</a> createLSHCreator()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#createLSHCreator()">createLSHCreator</a></code> in class <code><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh">LSHFunc</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getDimension()">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDimension</h4>
+<pre>protected int getDimension()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#getDimension()">getDimension</a></code> in class <code><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh">LSHFunc</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../datafu/pig/hash/lsh/L1PStableHash.html" title="class in datafu.pig.hash.lsh"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFamily.html" title="class in datafu.pig.hash.lsh"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?datafu/pig/hash/lsh/L2PStableHash.html" target="_top">Frames</a></li>
+<li><a href="L2PStableHash.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a> | </li>
+<li><a href="#fields_inherited_from_class_datafu.pig.hash.lsh.LSHFunc">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/LSHFamily.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/LSHFamily.html?rev=1822555&view=auto
==============================================================================
--- incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/LSHFamily.html (added)
+++ incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/LSHFamily.html Mon Jan 29 19:01:43 2018
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_79) on Mon Jan 29 10:58:36 PST 2018 -->
+<title>LSHFamily (datafu-pig 1.3.3 API)</title>
+<meta name="date" content="2018-01-29">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="LSHFamily (datafu-pig 1.3.3 API)";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../datafu/pig/hash/lsh/L2PStableHash.html" title="class in datafu.pig.hash.lsh"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?datafu/pig/hash/lsh/LSHFamily.html" target="_top">Frames</a></li>
+<li><a href="LSHFamily.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">datafu.pig.hash.lsh</div>
+<h2 title="Class LSHFamily" class="title">Class LSHFamily</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>datafu.pig.hash.lsh.LSHFamily</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">LSHFamily</span>
+extends java.lang.Object</pre>
+<div class="block">A family of k locality sensitive hashes. For a given point, k hashes will be computed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFamily.html#LSHFamily(java.util.List)">LSHFamily</a></strong>(java.util.List<<a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a>> hashes)</code>
+<div class="block">Construct a family of hashes</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Iterable<java.lang.Long></code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFamily.html#apply(org.apache.commons.math.linear.RealVector)">apply</a></strong>(org.apache.commons.math.linear.RealVector vector)</code>
+<div class="block">Compute the family of k-hashes for a vector.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LSHFamily(java.util.List)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LSHFamily</h4>
+<pre>public LSHFamily(java.util.List<<a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a>> hashes)</pre>
+<div class="block">Construct a family of hashes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>hashes</code> - Hashes which will be applied in turn to a given point</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="apply(org.apache.commons.math.linear.RealVector)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>apply</h4>
+<pre>public java.lang.Iterable<java.lang.Long> apply(org.apache.commons.math.linear.RealVector vector)</pre>
+<div class="block">Compute the family of k-hashes for a vector.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>vector</code> - the vector</dd>
+<dt><span class="strong">Returns:</span></dt><dd>An iterable of hashes</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../datafu/pig/hash/lsh/L2PStableHash.html" title="class in datafu.pig.hash.lsh"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?datafu/pig/hash/lsh/LSHFamily.html" target="_top">Frames</a></li>
+<li><a href="LSHFamily.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/LSHFunc.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/LSHFunc.html?rev=1822555&view=auto
==============================================================================
--- incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/LSHFunc.html (added)
+++ incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/LSHFunc.html Mon Jan 29 19:01:43 2018
@@ -0,0 +1,412 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_79) on Mon Jan 29 10:58:36 PST 2018 -->
+<title>LSHFunc (datafu-pig 1.3.3 API)</title>
+<meta name="date" content="2018-01-29">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="LSHFunc (datafu-pig 1.3.3 API)";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFamily.html" title="class in datafu.pig.hash.lsh"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../datafu/pig/hash/lsh/RepeatingLSH.html" title="class in datafu.pig.hash.lsh"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?datafu/pig/hash/lsh/LSHFunc.html" target="_top">Frames</a></li>
+<li><a href="LSHFunc.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a> | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">datafu.pig.hash.lsh</div>
+<h2 title="Class LSHFunc" class="title">Class LSHFunc</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.pig.EvalFunc<org.apache.pig.data.DataBag></li>
+<li>
+<ul class="inheritance">
+<li>datafu.pig.hash.lsh.LSHFunc</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../datafu/pig/hash/lsh/CosineDistanceHash.html" title="class in datafu.pig.hash.lsh">CosineDistanceHash</a>, <a href="../../../../datafu/pig/hash/lsh/L1PStableHash.html" title="class in datafu.pig.hash.lsh">L1PStableHash</a>, <a href="../../../../datafu/pig/hash/lsh/L2PStableHash.html" title="class in datafu.pig.hash.lsh">L2PStableHash</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="strong">LSHFunc</span>
+extends org.apache.pig.EvalFunc<org.apache.pig.data.DataBag></pre>
+<div class="block">The base UDF for locality sensitive hashing.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.apache.pig.EvalFunc">
+<!-- -->
+</a>
+<h3>Nested classes/interfaces inherited from class org.apache.pig.EvalFunc</h3>
+<code>org.apache.pig.EvalFunc.SchemaType</code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../datafu/pig/hash/lsh/LSHFamily.html" title="class in datafu.pig.hash.lsh">LSHFamily</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#lsh">lsh</a></strong></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected java.lang.Long</code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#seed">seed</a></strong></code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.apache.pig.EvalFunc">
+<!-- -->
+</a>
+<h3>Fields inherited from class org.apache.pig.EvalFunc</h3>
+<code>log, pigLogger, reporter, returnType</code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#LSHFunc(java.lang.String)">LSHFunc</a></strong>(java.lang.String sSeed)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../datafu/pig/hash/lsh/interfaces/LSHCreator.html" title="class in datafu.pig.hash.lsh.interfaces">LSHCreator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#createLSHCreator()">createLSHCreator</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.apache.pig.data.DataBag</code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#exec(org.apache.pig.data.Tuple)">exec</a></strong>(org.apache.pig.data.Tuple t)</code>
+<div class="block">The expectation is that the input is a Tuple of numeric data representing a real vector.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract int</code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#getDimension()">getDimension</a></strong>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#getSeed()">getSeed</a></strong>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.apache.pig.impl.logicalLayer.schema.Schema</code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html#outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">outputSchema</a></strong>(org.apache.pig.impl.logicalLayer.schema.Schema input)</code>
+<div class="block">The schema returned here is a bag containing pairs.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.apache.pig.EvalFunc">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.apache.pig.EvalFunc</h3>
+<code>allowCompileTimeCalculation, finish, getArgToFuncMapping, getCacheFiles, getInputSchema, getLogger, getPigLogger, getReporter, getReturnType, getSchemaName, getSchemaType, getShipFiles, isAsynchronous, progress, setInputSchema, setPigLogger, setReporter, setUDFContextSignature, warn</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="lsh">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lsh</h4>
+<pre>protected <a href="../../../../datafu/pig/hash/lsh/LSHFamily.html" title="class in datafu.pig.hash.lsh">LSHFamily</a> lsh</pre>
+</li>
+</ul>
+<a name="seed">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>seed</h4>
+<pre>protected java.lang.Long seed</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LSHFunc(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LSHFunc</h4>
+<pre>public LSHFunc(java.lang.String sSeed)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="createLSHCreator()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createLSHCreator</h4>
+<pre>protected abstract <a href="../../../../datafu/pig/hash/lsh/interfaces/LSHCreator.html" title="class in datafu.pig.hash.lsh.interfaces">LSHCreator</a> createLSHCreator()</pre>
+</li>
+</ul>
+<a name="getDimension()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDimension</h4>
+<pre>protected abstract int getDimension()</pre>
+</li>
+</ul>
+<a name="exec(org.apache.pig.data.Tuple)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exec</h4>
+<pre>public org.apache.pig.data.DataBag exec(org.apache.pig.data.Tuple t)
+ throws java.io.IOException</pre>
+<div class="block">The expectation is that the input is a Tuple of numeric data representing a real vector.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code>exec</code> in class <code>org.apache.pig.EvalFunc<org.apache.pig.data.DataBag></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>DataBag containing tuples which have the lsh_id (the hash ID in the family) and the hash</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd></dl>
+</li>
+</ul>
+<a name="getSeed()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSeed</h4>
+<pre>protected long getSeed()</pre>
+</li>
+</ul>
+<a name="outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>outputSchema</h4>
+<pre>public org.apache.pig.impl.logicalLayer.schema.Schema outputSchema(org.apache.pig.impl.logicalLayer.schema.Schema input)</pre>
+<div class="block">The schema returned here is a bag containing pairs.
+ The pairs are the lsh_id (or the ID of the hash) and the hash value.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>outputSchema</code> in class <code>org.apache.pig.EvalFunc<org.apache.pig.data.DataBag></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFamily.html" title="class in datafu.pig.hash.lsh"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../datafu/pig/hash/lsh/RepeatingLSH.html" title="class in datafu.pig.hash.lsh"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?datafu/pig/hash/lsh/LSHFunc.html" target="_top">Frames</a></li>
+<li><a href="LSHFunc.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested_classes_inherited_from_class_org.apache.pig.EvalFunc">Nested</a> | </li>
+<li><a href="#field_summary">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field_detail">Field</a> | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/RepeatingLSH.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/RepeatingLSH.html?rev=1822555&view=auto
==============================================================================
--- incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/RepeatingLSH.html (added)
+++ incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/RepeatingLSH.html Mon Jan 29 19:01:43 2018
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_79) on Mon Jan 29 10:58:36 PST 2018 -->
+<title>RepeatingLSH (datafu-pig 1.3.3 API)</title>
+<meta name="date" content="2018-01-29">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="RepeatingLSH (datafu-pig 1.3.3 API)";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?datafu/pig/hash/lsh/RepeatingLSH.html" target="_top">Frames</a></li>
+<li><a href="RepeatingLSH.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#fields_inherited_from_class_datafu.pig.hash.lsh.interfaces.LSH">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">datafu.pig.hash.lsh</div>
+<h2 title="Class RepeatingLSH" class="title">Class RepeatingLSH</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">datafu.pig.hash.lsh.interfaces.LSH</a></li>
+<li>
+<ul class="inheritance">
+<li>datafu.pig.hash.lsh.RepeatingLSH</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">RepeatingLSH</span>
+extends <a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a></pre>
+<div class="block">A composite hash which takes multiple hashes and composes them. This is useful
+ when a locality sensitive hash has a range that is very narrow and would want a wider
+ range for the hash.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_datafu.pig.hash.lsh.interfaces.LSH">
+<!-- -->
+</a>
+<h3>Fields inherited from class datafu.pig.hash.lsh.interfaces.<a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a></h3>
+<code><a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html#dim">dim</a>, <a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html#rg">rg</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../datafu/pig/hash/lsh/RepeatingLSH.html#RepeatingLSH(java.util.List)">RepeatingLSH</a></strong>(java.util.List<<a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a>> lshList)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../datafu/pig/hash/lsh/RepeatingLSH.html#apply(org.apache.commons.math.linear.RealVector)">apply</a></strong>(org.apache.commons.math.linear.RealVector vector)</code>
+<div class="block">Compute the aggregated hash of a vector.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.pig.hash.lsh.interfaces.LSH">
+<!-- -->
+</a>
+<h3>Methods inherited from class datafu.pig.hash.lsh.interfaces.<a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a></h3>
+<code><a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html#getDim()">getDim</a>, <a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html#getRandomGenerator()">getRandomGenerator</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RepeatingLSH(java.util.List)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RepeatingLSH</h4>
+<pre>public RepeatingLSH(java.util.List<<a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a>> lshList)
+ throws org.apache.commons.math.MathException</pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code>org.apache.commons.math.MathException</code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="apply(org.apache.commons.math.linear.RealVector)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>apply</h4>
+<pre>public long apply(org.apache.commons.math.linear.RealVector vector)</pre>
+<div class="block">Compute the aggregated hash of a vector. This is done by taking the output of the k hashes as a
+ vector and computing the dot product with a vector of uniformly distributed components between 0 and 10.
+
+ So, consider a_{0,k} such that a_i ~ U(0,10) and hash functions h_{0,k} treated as 2 k-dimensional vectors,
+ we return the dot product of h(v) and a.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html#apply(org.apache.commons.math.linear.RealVector)">apply</a></code> in class <code><a href="../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>vector</code> - A vector to be hashed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>A hash which collides with vectors close according to some metric (implementation dependent).</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../datafu/pig/hash/lsh/LSHFunc.html" title="class in datafu.pig.hash.lsh"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?datafu/pig/hash/lsh/RepeatingLSH.html" target="_top">Frames</a></li>
+<li><a href="RepeatingLSH.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#fields_inherited_from_class_datafu.pig.hash.lsh.interfaces.LSH">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/HyperplaneLSH.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/HyperplaneLSH.html?rev=1822555&view=auto
==============================================================================
--- incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/HyperplaneLSH.html (added)
+++ incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/HyperplaneLSH.html Mon Jan 29 19:01:43 2018
@@ -0,0 +1,327 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_79) on Mon Jan 29 10:58:35 PST 2018 -->
+<title>HyperplaneLSH (datafu-pig 1.3.3 API)</title>
+<meta name="date" content="2018-01-29">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="HyperplaneLSH (datafu-pig 1.3.3 API)";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?datafu/pig/hash/lsh/cosine/HyperplaneLSH.html" target="_top">Frames</a></li>
+<li><a href="HyperplaneLSH.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#fields_inherited_from_class_datafu.pig.hash.lsh.interfaces.LSH">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">datafu.pig.hash.lsh.cosine</div>
+<h2 title="Class HyperplaneLSH" class="title">Class HyperplaneLSH</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">datafu.pig.hash.lsh.interfaces.LSH</a></li>
+<li>
+<ul class="inheritance">
+<li>datafu.pig.hash.lsh.cosine.HyperplaneLSH</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="strong">HyperplaneLSH</span>
+extends <a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a></pre>
+<div class="block">From wikipedia's article on <a href="http://en.wikipedia.org/wiki/Locality-sensitive_hashing" target="_blank">Locality Sensitive Hashing</a>:
+
+ <pre>
+ Locality-sensitive hashing (LSH) is a method of performing probabilistic dimension reduction of high-dimensional data.
+ The basic idea is to hash the input items so that similar items are mapped to the same buckets with high probability
+ (the number of buckets being much smaller than the universe of possible input items).
+ </pre>
+
+ <p>
+ In particular, this implementation implements a locality sensitive hashing scheme which maps high-dimensional vectors which are
+ close together (with high probability) according to <a href="http://en.wikipedia.org/wiki/Cosine_similarity" target="_blank">Cosine Similarity</a>
+ into the same buckets. Each LSH maps a vector onto one side or the other of a random hyperplane, thereby producing a single
+ bit as the hash value. Multiple, independent, hashes can be run on the same input and aggregated together to form a more
+ broad domain than a single bit.
+ </p>
+
+ <p>
+ For more information, see Charikar, Moses S.. (2002). "Similarity Estimation Techniques from Rounding Algorithms". Proceedings of the 34th Annual ACM Symposium on Theory of Computing 2002.
+ </p></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_datafu.pig.hash.lsh.interfaces.LSH">
+<!-- -->
+</a>
+<h3>Fields inherited from class datafu.pig.hash.lsh.interfaces.<a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a></h3>
+<code><a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html#dim">dim</a>, <a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html#rg">rg</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../../datafu/pig/hash/lsh/cosine/HyperplaneLSH.html#HyperplaneLSH(int,%20org.apache.commons.math.random.RandomGenerator)">HyperplaneLSH</a></strong>(int dim,
+ org.apache.commons.math.random.RandomGenerator rg)</code>
+<div class="block">Locality sensitive hash that maps vectors onto 0,1 in such a way that colliding
+ vectors are "near" one another according to cosine similarity with high probability.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../../datafu/pig/hash/lsh/cosine/HyperplaneLSH.html#apply(org.apache.commons.math.linear.RealVector)">apply</a></strong>(org.apache.commons.math.linear.RealVector vector)</code>
+<div class="block">Compute which side of the hyperplane that the parameter is on.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_datafu.pig.hash.lsh.interfaces.LSH">
+<!-- -->
+</a>
+<h3>Methods inherited from class datafu.pig.hash.lsh.interfaces.<a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a></h3>
+<code><a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html#getDim()">getDim</a>, <a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html#getRandomGenerator()">getRandomGenerator</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="HyperplaneLSH(int, org.apache.commons.math.random.RandomGenerator)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>HyperplaneLSH</h4>
+<pre>public HyperplaneLSH(int dim,
+ org.apache.commons.math.random.RandomGenerator rg)</pre>
+<div class="block">Locality sensitive hash that maps vectors onto 0,1 in such a way that colliding
+ vectors are "near" one another according to cosine similarity with high probability.
+
+ <p>
+ Generally, multiple LSH are combined via repetition to increase the range of the hash function to the full set of longs.
+ This repetition is accomplished by wrapping instances of the LSH in a LSHFamily, which does the combination.
+ </p>
+
+ <p>
+ The size of the hash family corresponds to the number of independent hashes you want to apply to the data.
+ In a k-near neighbors style of searching, this corresponds to the number of neighbors you want to find
+ (i.e. the number of vectors within a distance according to cosine similarity).
+ </p></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dim</code> - The dimension of the vectors which are to be hashed</dd><dd><code>rg</code> - random number generator</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="apply(org.apache.commons.math.linear.RealVector)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>apply</h4>
+<pre>public long apply(org.apache.commons.math.linear.RealVector vector)</pre>
+<div class="block">Compute which side of the hyperplane that the parameter is on.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html#apply(org.apache.commons.math.linear.RealVector)">apply</a></code> in class <code><a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces">LSH</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>vector</code> - The vector to test.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>one if the dot product with the hyperplane is positive, 0 if negative.</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?datafu/pig/hash/lsh/cosine/HyperplaneLSH.html" target="_top">Frames</a></li>
+<li><a href="HyperplaneLSH.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li><a href="#fields_inherited_from_class_datafu.pig.hash.lsh.interfaces.LSH">Field</a> | </li>
+<li><a href="#constructor_summary">Constr</a> | </li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor_detail">Constr</a> | </li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-frame.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-frame.html?rev=1822555&view=auto
==============================================================================
--- incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-frame.html (added)
+++ incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-frame.html Mon Jan 29 19:01:43 2018
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_79) on Mon Jan 29 10:58:36 PST 2018 -->
+<title>datafu.pig.hash.lsh.cosine (datafu-pig 1.3.3 API)</title>
+<meta name="date" content="2018-01-29">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../datafu/pig/hash/lsh/cosine/package-summary.html" target="classFrame">datafu.pig.hash.lsh.cosine</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="HyperplaneLSH.html" title="class in datafu.pig.hash.lsh.cosine" target="classFrame">HyperplaneLSH</a></li>
+</ul>
+</div>
+</body>
+</html>
Added: incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-summary.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-summary.html?rev=1822555&view=auto
==============================================================================
--- incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-summary.html (added)
+++ incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-summary.html Mon Jan 29 19:01:43 2018
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_79) on Mon Jan 29 10:58:36 PST 2018 -->
+<title>datafu.pig.hash.lsh.cosine (datafu-pig 1.3.3 API)</title>
+<meta name="date" content="2018-01-29">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="datafu.pig.hash.lsh.cosine (datafu-pig 1.3.3 API)";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../datafu/pig/hash/lsh/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../datafu/pig/hash/lsh/interfaces/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?datafu/pig/hash/lsh/cosine/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package datafu.pig.hash.lsh.cosine</h1>
+<div class="docSummary">
+<div class="block">Implementation of <a href="http://en.wikipedia.org/wiki/Locality-sensitive_hashing" target="_blank">Locality Sensitive Hashing</a>
+ for <a href="http://en.wikipedia.org/wiki/Cosine_similarity" target="_blank">Cosine Similarity</a>.</div>
+</div>
+<p>See: <a href="#package_description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../datafu/pig/hash/lsh/cosine/HyperplaneLSH.html" title="class in datafu.pig.hash.lsh.cosine">HyperplaneLSH</a></td>
+<td class="colLast">
+<div class="block">From wikipedia's article on <a href="http://en.wikipedia.org/wiki/Locality-sensitive_hashing" target="_blank">Locality Sensitive Hashing</a>:</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package_description">
+<!-- -->
+</a>
+<h2 title="Package datafu.pig.hash.lsh.cosine Description">Package datafu.pig.hash.lsh.cosine Description</h2>
+<div class="block">Implementation of <a href="http://en.wikipedia.org/wiki/Locality-sensitive_hashing" target="_blank">Locality Sensitive Hashing</a>
+ for <a href="http://en.wikipedia.org/wiki/Cosine_similarity" target="_blank">Cosine Similarity</a>.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../datafu/pig/hash/lsh/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../datafu/pig/hash/lsh/interfaces/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?datafu/pig/hash/lsh/cosine/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
Added: incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-tree.html
URL: http://svn.apache.org/viewvc/incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-tree.html?rev=1822555&view=auto
==============================================================================
--- incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-tree.html (added)
+++ incubator/datafu/site/docs/datafu/1.3.3/datafu/pig/hash/lsh/cosine/package-tree.html Mon Jan 29 19:01:43 2018
@@ -0,0 +1,130 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_79) on Mon Jan 29 10:58:36 PST 2018 -->
+<title>datafu.pig.hash.lsh.cosine Class Hierarchy (datafu-pig 1.3.3 API)</title>
+<meta name="date" content="2018-01-29">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="datafu.pig.hash.lsh.cosine Class Hierarchy (datafu-pig 1.3.3 API)";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../datafu/pig/hash/lsh/package-tree.html">Prev</a></li>
+<li><a href="../../../../../datafu/pig/hash/lsh/interfaces/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?datafu/pig/hash/lsh/cosine/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package datafu.pig.hash.lsh.cosine</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.Object
+<ul>
+<li type="circle">datafu.pig.hash.lsh.interfaces.<a href="../../../../../datafu/pig/hash/lsh/interfaces/LSH.html" title="class in datafu.pig.hash.lsh.interfaces"><span class="strong">LSH</span></a>
+<ul>
+<li type="circle">datafu.pig.hash.lsh.cosine.<a href="../../../../../datafu/pig/hash/lsh/cosine/HyperplaneLSH.html" title="class in datafu.pig.hash.lsh.cosine"><span class="strong">HyperplaneLSH</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../datafu/pig/hash/lsh/package-tree.html">Prev</a></li>
+<li><a href="../../../../../datafu/pig/hash/lsh/interfaces/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?datafu/pig/hash/lsh/cosine/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>