hep.aida.tdouble.bin.DoubleBinFunctions1D Maven / Gradle / Ivy
Show all versions of parallelcolt Show documentation
package hep.aida.tdouble.bin;
/**
* Function objects computing dynamic bin aggregations; to be passed to generic
* methods.
*
* @see cern.colt.matrix.tdouble.algo.DoubleFormatter
* @see cern.colt.matrix.tdouble.algo.DoubleStatistic
* @author [email protected]
* @version 1.0, 09/24/99
*/
public class DoubleBinFunctions1D extends Object {
/**
* Little trick to allow for "aliasing", that is, renaming this class. Using
* the aliasing you can instead write
*
* BinFunctions F = BinFunctions.functions;
someAlgo(F.max);
*/
public static final DoubleBinFunctions1D functions = new DoubleBinFunctions1D();
/**
* Function that returns bin.max().
*/
public static final DoubleBinFunction1D max = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.max();
}
public final String name() {
return "Max";
}
};
/**
* Function that returns bin.mean().
*/
public static final DoubleBinFunction1D mean = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.mean();
}
public final String name() {
return "Mean";
}
};
/**
* Function that returns bin.median().
*/
public static final DoubleBinFunction1D median = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.median();
}
public final String name() {
return "Median";
}
};
/**
* Function that returns bin.min().
*/
public static final DoubleBinFunction1D min = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.min();
}
public final String name() {
return "Min";
}
};
/**
* Function that returns bin.rms().
*/
public static final DoubleBinFunction1D rms = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.rms();
}
public final String name() {
return "RMS";
}
};
/**
* Function that returns bin.size().
*/
public static final DoubleBinFunction1D size = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.size();
}
public final String name() {
return "Size";
}
};
/**
* Function that returns bin.standardDeviation().
*/
public static final DoubleBinFunction1D stdDev = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.standardDeviation();
}
public final String name() {
return "StdDev";
}
};
/**
* Function that returns bin.sum().
*/
public static final DoubleBinFunction1D sum = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.sum();
}
public final String name() {
return "Sum";
}
};
/**
* Function that returns bin.sumOfLogarithms().
*/
public static final DoubleBinFunction1D sumLog = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.sumOfLogarithms();
}
public final String name() {
return "SumLog";
}
};
/**
* Function that returns bin.geometricMean().
*/
public static final DoubleBinFunction1D geometricMean = new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.geometricMean();
}
public final String name() {
return "GeomMean";
}
};
/**
* Makes this class non instantiable, but still let's others inherit from
* it.
*/
protected DoubleBinFunctions1D() {
}
/**
* Function that returns bin.quantile(percentage).
*
* @param percentage
* the percentage of the quantile (0 <= percentage <= 1
* ).
*/
public static DoubleBinFunction1D quantile(final double percentage) {
return new DoubleBinFunction1D() {
public final double apply(DynamicDoubleBin1D bin) {
return bin.quantile(percentage);
}
public final String name() {
return new cern.colt.matrix.FormerFactory().create("%1.2G").form(percentage * 100) + "% Q.";
}
};
}
}