radius.add(furthest);
}
log.warn("Reference data stored");
log.warn("Starting add with speedup of {}", numDataVectors / (dimension * 2.0 * depth * 4.0));
Searcher sut = new FastProjectionSearch(new SquaredEuclideanDistanceMeasure(), dimension * 2, depth * 4);
sut.addAllMatrixSlicesAsWeightedVectors(data);
log.warn("Added data with speedup of {}", numDataVectors / (dimension * 2.0 * depth * 4.0));
long t0 = System.nanoTime();
for (MatrixSlice query : queries) {
List<WeightedThing<Vector>> r = sut.search(query.vector(), depth);
Set<Integer> x = Sets.newHashSet();
for (WeightedThing<Vector> vector : r) {
x.add(((WeightedVector)vector.getValue()).getIndex());
}
double overlap = Sets.intersection(reference.get(query.index()), x).size() / (double) depth;