diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java | 77 |
1 files changed, 22 insertions, 55 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java b/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java index c0f12895..45a2e85f 100644 --- a/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java +++ b/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.mkapp; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2012 + Copyright (C) 2013 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,10 +24,10 @@ package de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.mkapp; */ import de.lmu.ifi.dbs.elki.database.relation.Relation; -import de.lmu.ifi.dbs.elki.distance.distancefunction.DistanceFunction; import de.lmu.ifi.dbs.elki.distance.distancevalue.NumberDistance; import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeFactory; import de.lmu.ifi.dbs.elki.persistent.PageFile; +import de.lmu.ifi.dbs.elki.persistent.PageFileFactory; import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID; import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.GreaterConstraint; @@ -46,7 +46,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * @param <O> Object type * @param <D> Distance type */ -public class MkAppTreeFactory<O, D extends NumberDistance<D, ?>> extends AbstractMTreeFactory<O, D, MkAppTreeNode<O, D>, MkAppEntry<D>, MkAppTreeIndex<O, D>> { +public class MkAppTreeFactory<O, D extends NumberDistance<D, ?>> extends AbstractMTreeFactory<O, D, MkAppTreeNode<O, D>, MkAppEntry, MkAppTreeIndex<O, D>, MkAppTreeSettings<O, D>> { /** * Parameter for nolog */ @@ -63,42 +63,19 @@ public class MkAppTreeFactory<O, D extends NumberDistance<D, ?>> extends Abstrac public static final OptionID P_ID = new OptionID("mkapp.p", "positive integer specifying the order of the polynomial approximation."); /** - * Parameter k. - */ - private int k_max; - - /** - * Parameter p. - */ - private int p; - - /** - * Flag log. - */ - private boolean log; - - /** * Constructor. * - * @param fileName - * @param pageSize - * @param cacheSize - * @param distanceFunction - * @param k_max - * @param p - * @param log + * @param pageFileFactory Data storage + * @param settings Tree settings */ - public MkAppTreeFactory(String fileName, int pageSize, long cacheSize, DistanceFunction<O, D> distanceFunction, int k_max, int p, boolean log) { - super(fileName, pageSize, cacheSize, distanceFunction); - this.k_max = k_max; - this.p = p; - this.log = log; + public MkAppTreeFactory(PageFileFactory<?> pageFileFactory, MkAppTreeSettings<O, D> settings) { + super(pageFileFactory, settings); } @Override public MkAppTreeIndex<O, D> instantiate(Relation<O> relation) { PageFile<MkAppTreeNode<O, D>> pagefile = makePageFile(getNodeClass()); - return new MkAppTreeIndex<O, D>(relation, pagefile, distanceFunction.instantiate(relation), distanceFunction, k_max, p, log); + return new MkAppTreeIndex<>(relation, pagefile, settings); } protected Class<MkAppTreeNode<O, D>> getNodeClass() { @@ -112,46 +89,36 @@ public class MkAppTreeFactory<O, D extends NumberDistance<D, ?>> extends Abstrac * * @apiviz.exclude */ - public static class Parameterizer<O, D extends NumberDistance<D, ?>> extends AbstractMTreeFactory.Parameterizer<O, D> { - /** - * Parameter k. - */ - protected int k_max; - - /** - * Parameter p. - */ - protected int p; - - /** - * Flag log. - */ - protected boolean log; - + public static class Parameterizer<O, D extends NumberDistance<D, ?>> extends AbstractMTreeFactory.Parameterizer<O, D, MkAppTreeNode<O, D>, MkAppEntry, MkAppTreeSettings<O, D>> { @Override protected void makeOptions(Parameterization config) { super.makeOptions(config); IntParameter kP = new IntParameter(K_ID); kP.addConstraint(new GreaterConstraint(0)); - if(config.grab(kP)) { - k_max = kP.getValue(); + if (config.grab(kP)) { + settings.k_max = kP.getValue(); } IntParameter pP = new IntParameter(P_ID); pP.addConstraint(new GreaterConstraint(0)); - if(config.grab(pP)) { - p = pP.getValue(); + if (config.grab(pP)) { + settings.p = pP.getValue(); } Flag nologF = new Flag(NOLOG_ID); - if(config.grab(nologF)) { - log = !nologF.getValue(); + if (config.grab(nologF)) { + settings.log = !nologF.getValue(); } } @Override protected MkAppTreeFactory<O, D> makeInstance() { - return new MkAppTreeFactory<O, D>(fileName, pageSize, cacheSize, distanceFunction, k_max, p, log); + return new MkAppTreeFactory<>(pageFileFactory, settings); + } + + @Override + protected MkAppTreeSettings<O, D> makeSettings() { + return new MkAppTreeSettings<>(); } } -}
\ No newline at end of file +} |