Skip to content

Commit 58fbb31

Browse files
committed
Deploying to gh-pages from @ afee904 🚀
1 parent 0d00eff commit 58fbb31

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

docs/Kmknn_8hpp_source.html

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -273,16 +273,16 @@
273273
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> }</div>
274274
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
275275
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> Index_ ncenters = std::ceil(std::pow(my_obs, options.power));</div>
276-
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> my_centers.resize(sanisizer::product&lt;I&lt;<span class="keyword">decltype</span>(my_centers.size())&gt; &gt;(ncenters, my_dim));</div>
276+
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> my_centers.resize(sanisizer::product&lt;I&lt;<span class="keyword">decltype</span>(my_centers.size())&gt; &gt;(sanisizer::attest_gez(ncenters), my_dim));</div>
277277
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
278278
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <a class="code hl_classRef" href="https://ltla.github.io/CppKmeans/classkmeans_1_1SimpleMatrix.html">kmeans::SimpleMatrix&lt;Index_, Data_&gt;</a> mat(my_dim, my_obs, my_data.data());</div>
279-
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">auto</span> clusters = sanisizer::create&lt;std::vector&lt;Index_&gt; &gt;(my_obs);</div>
279+
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">auto</span> clusters = sanisizer::create&lt;std::vector&lt;Index_&gt; &gt;(sanisizer::attest_gez(my_obs));</div>
280280
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">auto</span> output = <a class="code hl_functionRef" href="https://ltla.github.io/CppKmeans/namespacekmeans.html#a46d49b7746f7d2e0b6f50ec799e0010d">kmeans::compute</a>(mat, *init, *refine, ncenters, my_centers.data(), clusters.data());</div>
281281
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
282282
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// Removing empty clusters, e.g., due to duplicate points.</span></div>
283283
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> {</div>
284-
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> sanisizer::resize(my_sizes, ncenters);</div>
285-
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">auto</span> remap = sanisizer::create&lt;std::vector&lt;Index_&gt; &gt;(ncenters);</div>
284+
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> sanisizer::resize(my_sizes, sanisizer::attest_gez(ncenters));</div>
285+
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">auto</span> remap = sanisizer::create&lt;std::vector&lt;Index_&gt; &gt;(sanisizer::attest_gez(ncenters));</div>
286286
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> Index_ survivors = 0;</div>
287287
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">for</span> (Index_ c = 0; c &lt; ncenters; ++c) {</div>
288288
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keywordflow">if</span> (output.sizes[c]) {</div>
@@ -307,13 +307,13 @@
307307
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> }</div>
308308
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> }</div>
309309
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
310-
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> sanisizer::resize(my_offsets, ncenters);</div>
310+
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> sanisizer::resize(my_offsets, sanisizer::attest_gez(ncenters));</div>
311311
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">for</span> (Index_ i = 1; i &lt; ncenters; ++i) {</div>
312312
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> my_offsets[i] = my_offsets[i - 1] + my_sizes[i - 1];</div>
313313
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> }</div>
314314
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
315315
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="comment">// Organize points correctly; firstly, sorting by distance from the assigned center.</span></div>
316-
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">auto</span> by_distance = sanisizer::create&lt;std::vector&lt;std::pair&lt;Distance_, Index_&gt; &gt; &gt;(my_obs);</div>
316+
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">auto</span> by_distance = sanisizer::create&lt;std::vector&lt;std::pair&lt;Distance_, Index_&gt; &gt; &gt;(sanisizer::attest_gez(my_obs));</div>
317317
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> {</div>
318318
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">auto</span> sofar = my_offsets;</div>
319319
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keyword">auto</span> host = my_data.data();</div>
@@ -339,11 +339,11 @@
339339
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="comment">// Permuting in-place to mirror the reordered distances, so that the search is more cache-friendly.</span></div>
340340
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> {</div>
341341
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keyword">auto</span> host = my_data.data();</div>
342-
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">auto</span> used = sanisizer::create&lt;std::vector&lt;unsigned char&gt; &gt;(my_obs);</div>
342+
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">auto</span> used = sanisizer::create&lt;std::vector&lt;unsigned char&gt; &gt;(sanisizer::attest_gez(my_obs));</div>
343343
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">auto</span> buffer = sanisizer::create&lt;std::vector&lt;Data_&gt; &gt;(my_dim);</div>
344-
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> sanisizer::resize(my_observation_id, my_obs);</div>
345-
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> sanisizer::resize(my_dist_to_centroid, my_obs);</div>
346-
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> sanisizer::resize(my_new_location, my_obs);</div>
344+
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> sanisizer::resize(my_observation_id, sanisizer::attest_gez(my_obs));</div>
345+
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> sanisizer::resize(my_dist_to_centroid, sanisizer::attest_gez(my_obs));</div>
346+
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> sanisizer::resize(my_new_location, sanisizer::attest_gez(my_obs));</div>
347347
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> </div>
348348
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">for</span> (Index_ o = 0; o &lt; my_obs; ++o) {</div>
349349
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">if</span> (used[o]) {</div>
@@ -565,21 +565,21 @@
565565
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keyword">auto</span> num_centers = my_sizes.size();</div>
566566
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#ac5079c0b39b7f9e10bd97341ccfad46c">knncolle::quick_load</a>(prefix + <span class="stringliteral">&quot;num_centers&quot;</span>, &amp;num_centers, 1);</div>
567567
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> </div>
568-
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> my_data.resize(sanisizer::product&lt;I&lt;<span class="keyword">decltype</span>(my_data.size())&gt; &gt;(my_obs, my_dim));</div>
568+
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> my_data.resize(sanisizer::product&lt;I&lt;<span class="keyword">decltype</span>(my_data.size())&gt; &gt;(sanisizer::attest_gez(my_obs), my_dim));</div>
569569
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#ac5079c0b39b7f9e10bd97341ccfad46c">knncolle::quick_load</a>(prefix + <span class="stringliteral">&quot;data&quot;</span>, my_data.data(), my_data.size());</div>
570570
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> </div>
571-
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> sanisizer::resize(my_sizes, num_centers);</div>
571+
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> sanisizer::resize(my_sizes, sanisizer::attest_gez(num_centers));</div>
572572
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#ac5079c0b39b7f9e10bd97341ccfad46c">knncolle::quick_load</a>(prefix + <span class="stringliteral">&quot;sizes&quot;</span>, my_sizes.data(), my_sizes.size());</div>
573-
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> sanisizer::resize(my_offsets, num_centers);</div>
573+
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> sanisizer::resize(my_offsets, sanisizer::attest_gez(num_centers));</div>
574574
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#ac5079c0b39b7f9e10bd97341ccfad46c">knncolle::quick_load</a>(prefix + <span class="stringliteral">&quot;offsets&quot;</span>, my_offsets.data(), my_offsets.size());</div>
575-
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> my_centers.resize(sanisizer::product&lt;I&lt;<span class="keyword">decltype</span>(my_centers.size())&gt; &gt;(my_dim, num_centers));</div>
575+
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> my_centers.resize(sanisizer::product&lt;I&lt;<span class="keyword">decltype</span>(my_centers.size())&gt; &gt;(my_dim, sanisizer::attest_gez(num_centers)));</div>
576576
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#ac5079c0b39b7f9e10bd97341ccfad46c">knncolle::quick_load</a>(prefix + <span class="stringliteral">&quot;centers&quot;</span>, my_centers.data(), my_centers.size());</div>
577577
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> </div>
578-
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> sanisizer::resize(my_observation_id, my_obs);</div>
578+
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> sanisizer::resize(my_observation_id, sanisizer::attest_gez(my_obs));</div>
579579
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#ac5079c0b39b7f9e10bd97341ccfad46c">knncolle::quick_load</a>(prefix + <span class="stringliteral">&quot;observation_id&quot;</span>, my_observation_id.data(), my_observation_id.size());</div>
580-
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> sanisizer::resize(my_new_location, my_obs);</div>
580+
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> sanisizer::resize(my_new_location, sanisizer::attest_gez(my_obs));</div>
581581
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#ac5079c0b39b7f9e10bd97341ccfad46c">knncolle::quick_load</a>(prefix + <span class="stringliteral">&quot;new_location&quot;</span>, my_new_location.data(), my_new_location.size());</div>
582-
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> sanisizer::resize(my_dist_to_centroid, my_obs);</div>
582+
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> sanisizer::resize(my_dist_to_centroid, sanisizer::attest_gez(my_obs));</div>
583583
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#ac5079c0b39b7f9e10bd97341ccfad46c">knncolle::quick_load</a>(prefix + <span class="stringliteral">&quot;dist_to_centroid&quot;</span>, my_dist_to_centroid.data(), my_dist_to_centroid.size());</div>
584584
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
585585
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <span class="keyword">auto</span> dptr = <a class="code hl_functionRef" href="https://knncolle.github.io/knncolle/namespaceknncolle.html#a5c0df62bd7206b0b3892aedadb2a962c">knncolle::load_distance_metric_raw&lt;Data_, Distance_&gt;</a>(prefix + <span class="stringliteral">&quot;distance_&quot;</span>);</div>

0 commit comments

Comments
 (0)