
moa.clusterers.outliers.utils.mtree.ComposedSplitFunction Maven / Gradle / Ivy
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
*/
package moa.clusterers.outliers.utils.mtree;
import java.util.Set;
import moa.clusterers.outliers.utils.mtree.utils.Pair;
/**
* A {@linkplain SplitFunction split function} that is defined by composing
* a {@linkplain PromotionFunction promotion function} and a
* {@linkplain PartitionFunction partition function}.
*
* @param The type of the data objects.
*/
public class ComposedSplitFunction implements SplitFunction {
private PromotionFunction promotionFunction;
private PartitionFunction partitionFunction;
/**
* The constructor of a {@link SplitFunction} composed by a
* {@link PromotionFunction} and a {@link PartitionFunction}.
*/
public ComposedSplitFunction(
PromotionFunction promotionFunction,
PartitionFunction partitionFunction
)
{
this.promotionFunction = promotionFunction;
this.partitionFunction = partitionFunction;
}
@Override
public SplitResult process(Set dataSet, DistanceFunction super DATA> distanceFunction) {
Pair promoted = promotionFunction.process(dataSet, distanceFunction);
Pair> partitions = partitionFunction.process(promoted, dataSet, distanceFunction);
return new SplitResult(promoted, partitions);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy