InterpPivot optimize loop

This commit is contained in:
Pitchaya Boonsarngsuk
2018-02-02 13:30:37 +00:00
parent 92f9b83f28
commit 2601f18274

View File

@@ -80,7 +80,8 @@ export default function(sampleSet, remainderSet, numPivots, distanceFn, endingIt
let sampleSubset = takeSampleFrom(sampleSet, Math.sqrt(sampleSet.length)).sample; let sampleSubset = takeSampleFrom(sampleSet, Math.sqrt(sampleSet.length)).sample;
//Plot each of the remainder nodes //Plot each of the remainder nodes
for (let node of remainderSet) { for (let i = remainderSet.length-1; i>=0; i--) {
let node = remainderSet[i];
let sampleSubsetDistanceCache = [], let sampleSubsetDistanceCache = [],
minDist, nearSample; minDist, nearSample;
@@ -106,7 +107,8 @@ export default function(sampleSet, remainderSet, numPivots, distanceFn, endingIt
bucketNumber = 0; bucketNumber = 0;
} }
for (let candidateNode of pivotsBuckets[p][bucketNumber]) { for (let j = pivotsBuckets[p][bucketNumber].length-1; j>=0; j--) {
let candidateNode = pivotsBuckets[p][bucketNumber][j];
let index = sampleSubset.indexOf(candidateNode); let index = sampleSubset.indexOf(candidateNode);
if (index !== -1 && sampleSubsetDistanceCache[index] !== undefined) if (index !== -1 && sampleSubsetDistanceCache[index] !== undefined)
dist = sampleSubsetDistanceCache[index] dist = sampleSubsetDistanceCache[index]