*
* @param observations observation for which the mixture will be estimated
* @return estimated mixture
*/
public NormalDistributionMixture estimate(ObservationProvider<Double> observations) {
Interval minMax = extractInterval(observations);
ValidationUtils.guardGreaterOrEqualDouble(minMax.getMin(), -1000000,
"observation interval is out of range for calcualtion");
ValidationUtils.guardGreaterOrEqualDouble(1000000, minMax.getMax(),
"observation interval is out of range for calcualtion");
NormalDistributionMixture res = initializeOneCompoenent(observations);
invokeStepListener(res);
double resL = Double.NEGATIVE_INFINITY;