/** * Constructor. * * @param database Database to query * @param preprocessor Preprocessor to use */ public PreprocessorRKNNQuery(Relation<O> database, MaterializeKNNAndRKNNPreprocessor.Factory<O> preprocessor) { this(database, preprocessor.instantiate(database)); }
@Override protected Factory<?> makeInstance() { return new Factory<DoubleVector>(window, projections, proj, random); } }
@Override public PartitionApproximationMaterializeKNNPreprocessor<O> instantiate(Relation<O> relation) { PartitionApproximationMaterializeKNNPreprocessor<O> instance = new PartitionApproximationMaterializeKNNPreprocessor<>(relation, distanceFunction, k, partitions, rnd); return instance; }
@Override protected Factory<O> makeInstance() { return new Factory<>(k, distanceFunction, filename); } }
@Override protected Factory<O> makeInstance() { return new Factory<>(k, distanceFunction); } }
@Override public CachedDoubleDistanceKNNPreprocessor<O> instantiate(Relation<O> relation) { CachedDoubleDistanceKNNPreprocessor<O> instance = new CachedDoubleDistanceKNNPreprocessor<>(relation, distanceFunction, k, filename); return instance; }
@Override protected Factory<V> makeInstance() { return new Factory<>(k, distanceFunction, curvegen, window, variants, random); } }
@Override protected Factory<?> makeInstance() { return new Factory<DoubleVector>(curvegen, window, variants, odim, proj, random); } }
@Override public MetricalIndexApproximationMaterializeKNNPreprocessor<O, N, E> instantiate(Relation<O> relation) { MetricalIndexApproximationMaterializeKNNPreprocessor<O, N, E> instance = new MetricalIndexApproximationMaterializeKNNPreprocessor<>(relation, distanceFunction, k); return instance; }
@Override protected Factory<O> makeInstance() { return new Factory<>(k, distanceFunction, partitions, rnd); } }
@Override protected Factory<O> makeInstance() { return new Factory<>(k, distanceFunction); } }
@Override protected RandomSampleKNNPreprocessor.Factory<O> makeInstance() { return new RandomSampleKNNPreprocessor.Factory<>(k, distanceFunction, share, rnd); } }
@Override protected Factory<N, E> makeInstance() { return new Factory<>(k, distanceFunction); } }
@Override protected KNNJoinMaterializeKNNPreprocessor.Factory<O> makeInstance() { return new KNNJoinMaterializeKNNPreprocessor.Factory<>(k, distanceFunction); } }
@Override protected NNDescent.Factory<O> makeInstance() { return new NNDescent.Factory<>(k, distanceFunction, rnd, delta, rho, noInitialNeighbors, iterations); } }
@Override public PartitionApproximationMaterializeKNNPreprocessor<O> instantiate(Relation<O> relation) { PartitionApproximationMaterializeKNNPreprocessor<O> instance = new PartitionApproximationMaterializeKNNPreprocessor<>(relation, distanceFunction, k, partitions, rnd); return instance; }
@Override protected Factory<O> makeInstance() { return new Factory<>(k, distanceFunction, filename); } }
@Override protected Factory<O> makeInstance() { return new Factory<>(k, distanceFunction); } }
@Override public CachedDoubleDistanceKNNPreprocessor<O> instantiate(Relation<O> relation) { CachedDoubleDistanceKNNPreprocessor<O> instance = new CachedDoubleDistanceKNNPreprocessor<>(relation, distanceFunction, k, filename); return instance; }
@Override protected KNNJoinMaterializeKNNPreprocessor.Factory<O> makeInstance() { return new KNNJoinMaterializeKNNPreprocessor.Factory<>(k, distanceFunction); } }