@Override protected WeightedLPNormDistanceFunction makeInstance() { return p == 1. ? new WeightedManhattanDistanceFunction(weights) // : p == 2. ? new WeightedEuclideanDistanceFunction(weights) // : p == Double.POSITIVE_INFINITY ? new WeightedMaximumDistanceFunction(weights) // : new WeightedLPNormDistanceFunction(p, weights); } }
@Override protected LPNormDistanceFunction makeInstance() { return p == (double) (int) p ? // Integer test (p == 1. ? ManhattanDistanceFunction.STATIC : // p == 2. ? EuclideanDistanceFunction.STATIC : // new LPIntegerNormDistanceFunction((int) p) // ) : p == Double.POSITIVE_INFINITY ? MaximumDistanceFunction.STATIC : // new LPNormDistanceFunction(p); } }
@Override protected WeightedEuclideanDistanceFunction makeInstance() { return new WeightedEuclideanDistanceFunction(weights); } }
@Override protected WeightedSquaredEuclideanDistanceFunction makeInstance() { return new WeightedSquaredEuclideanDistanceFunction(weights); } }
@Override protected WeightedManhattanDistanceFunction makeInstance() { return new WeightedManhattanDistanceFunction(weights); } }
@Override protected WeightedMaximumDistanceFunction makeInstance() { return new WeightedMaximumDistanceFunction(weights); } }
@Override protected LPIntegerNormDistanceFunction makeInstance() { return p == 1 ? ManhattanDistanceFunction.STATIC : // p == 2 ? EuclideanDistanceFunction.STATIC : // F new LPIntegerNormDistanceFunction(p); } }
@Override protected WeightedLPNormDistanceFunction makeInstance() { return p == 1. ? new WeightedManhattanDistanceFunction(weights) // : p == 2. ? new WeightedEuclideanDistanceFunction(weights) // : p == Double.POSITIVE_INFINITY ? new WeightedMaximumDistanceFunction(weights) // : new WeightedLPNormDistanceFunction(p, weights); } }
@Override protected LPNormDistanceFunction makeInstance() { return p == (double) (int) p ? // Integer test (p == 1. ? ManhattanDistanceFunction.STATIC : // p == 2. ? EuclideanDistanceFunction.STATIC : // new LPIntegerNormDistanceFunction((int) p) // ) : p == Double.POSITIVE_INFINITY ? MaximumDistanceFunction.STATIC : // new LPNormDistanceFunction(p); } }
@Override protected WeightedEuclideanDistanceFunction makeInstance() { return new WeightedEuclideanDistanceFunction(weights); } }
@Override protected WeightedSquaredEuclideanDistanceFunction makeInstance() { return new WeightedSquaredEuclideanDistanceFunction(weights); } }
@Override protected WeightedManhattanDistanceFunction makeInstance() { return new WeightedManhattanDistanceFunction(weights); } }
@Override protected WeightedMaximumDistanceFunction makeInstance() { return new WeightedMaximumDistanceFunction(weights); } }
@Override protected LPIntegerNormDistanceFunction makeInstance() { if(p == 1) { return ManhattanDistanceFunction.STATIC; } if(p == 2) { return EuclideanDistanceFunction.STATIC; } return new LPIntegerNormDistanceFunction(p); } }
@Override protected WeightedLPNormDistanceFunction makeInstance() { if(p == 1.) { return new WeightedManhattanDistanceFunction(weights); } if(p == 2.) { return new WeightedEuclideanDistanceFunction(weights); } if(p == Double.POSITIVE_INFINITY) { return new WeightedMaximumDistanceFunction(weights); } return new WeightedLPNormDistanceFunction(p, weights); } }
@Override protected WeightedEuclideanDistanceFunction makeInstance() { return new WeightedEuclideanDistanceFunction(weights); } }
@Override protected WeightedSquaredEuclideanDistanceFunction makeInstance() { return new WeightedSquaredEuclideanDistanceFunction(weights); } }
@Override protected WeightedManhattanDistanceFunction makeInstance() { return new WeightedManhattanDistanceFunction(weights); } }
@Override protected WeightedMaximumDistanceFunction makeInstance() { return new WeightedMaximumDistanceFunction(weights); } }
@Override protected LPIntegerNormDistanceFunction makeInstance() { return p == 1 ? ManhattanDistanceFunction.STATIC : // p == 2 ? EuclideanDistanceFunction.STATIC : // F new LPIntegerNormDistanceFunction(p); } }