<div dir="ltr">OK, I thought you were suggesting that:<div><br></div><div><pre class="" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-size:13px;width:auto;max-height:600px;overflow:auto;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;color:rgb(57,51,24);word-wrap:normal;background-color:rgb(239,240,241)"><code style="margin:0px;padding:0px;border:0px;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;white-space:inherit"><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(16,16,148)">unsigned</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(43,145,175)">int</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> hash</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">(</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(16,16,148)">unsigned</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(43,145,175)">int</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> x</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">)</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">{</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">
    x </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">=</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">((</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">x </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">>></span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(125,39,39)">16</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">)</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">^</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> x</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">)</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">*</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(125,39,39)">0x45d9f3b</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">;</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">
    x </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">=</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">((</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">x </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">>></span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(125,39,39)">16</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">)</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">^</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> x</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">)</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">*</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(125,39,39)">0x45d9f3b</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">;</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">
    x </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">=</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">((</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">x </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">>></span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(125,39,39)">16</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">)</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">^</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> x</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">);</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">
    </span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(16,16,148)">return</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> x</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">;</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">
</span><span class="" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">}</span></code></pre><div class="gmail_extra">But, Barry is vetoing this.</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 17, 2016 at 4:18 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="">Mark Adams <<a href="mailto:mfadams@lbl.gov">mfadams@lbl.gov</a>> writes:<br>
<br>
> Why not just set each index with hash(i) = (i >> 32)^i and forget<br>
> VecSetRandom in here?<br>
<br>
</span>Because if your vertices are numbered lexicographically on a Cartesian<br>
grid, this gives you a plane.  But just put in the legit hash (the one I<br>
linked is pretty good) and then you don't have to worry about<br>
accidentally stumbling upon pathological cases.<br>
</blockquote></div><br></div></div></div>