
org.mydotey.quantile.gk.GkQuantileEstimator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of quantile-estimator Show documentation
Show all versions of quantile-estimator Show documentation
quantile algorithms' implementations for stream data
The newest version!
package org.mydotey.quantile.gk;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.mydotey.quantile.QuantileEstimator;
/**
* @author koqizhao
*
* Apr 2, 2018
*/
public class GkQuantileEstimator implements QuantileEstimator {
private GkQuantileEstimatorConfig _config;
private QuantileEstimationGK _quantileEstimationGK;
public GkQuantileEstimator(GkQuantileEstimatorConfig config) {
Objects.requireNonNull(config, "config is null");
_config = config;
_quantileEstimationGK = new QuantileEstimationGK<>(_config.getComparator(), _config.getError(),
_config.getCompactThreshold());
}
@Override
public void add(T value) {
_quantileEstimationGK.insert(value);
}
@Override
public Map get(List quantiles) {
HashMap results = null;
for (Double quantile : quantiles) {
T result = _quantileEstimationGK.query(quantile);
if (_quantileEstimationGK.isEmpty())
return null;
if (results == null)
results = new HashMap<>();
results.put(quantile, result);
}
if (results == null)
results = new HashMap<>();
return results;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy