package org.freehep.math.minuit;
/**
* MnMigrad provides minimization of the function by the method of MIGRAD, the most
* efficient and complete single method, recommended for general functions,
* and the functionality for parameters interaction. It also retains the result from
* the last minimization in case the user may want to do subsequent minimization steps
* with parameter interactions in between the minimization requests.
* The minimization produces as a by-product the error matrix of the parameters, which
* is usually reliable unless warning messages are produced.
* @version $Id: MnMigrad.java 8584 2006-08-10 23:06:37Z duns $
*/
public class MnMigrad extends MnApplication
{
/** construct from FCNBase + double[] for parameters and errors with default strategy */
public MnMigrad(FCNBase fcn, double[] par, double[] err)
{
this(fcn,par,err,DEFAULT_STRATEGY);
}
/** construct from FCNBase + double[] for parameters and errors */
public MnMigrad(FCNBase fcn, double[] par, double[] err, int stra)
{
this(fcn, new MnUserParameterState(par,err), new MnStrategy(stra));
}
/** construct from FCNBase + double[] for parameters and MnUserCovariance with default strategy */
public MnMigrad(FCNBase fcn, double[] par, MnUserCovariance cov)
{
this(fcn,par,cov,DEFAULT_STRATEGY);
}
/** construct from FCNBase + double[] for parameters and MnUserCovariance */
public MnMigrad(FCNBase fcn, double[] par, MnUserCovariance cov, int stra)
{
this(fcn, new MnUserParameterState(par, cov), new MnStrategy(stra));
}
/** construct from FCNBase + MnUserParameters with default strategy */
public MnMigrad(FCNBase fcn, MnUserParameters par)
{
this(fcn,par,DEFAULT_STRATEGY);
}
/** construct from FCNBase + MnUserParameters */
public MnMigrad(FCNBase fcn, MnUserParameters par, int stra )
{
this(fcn, new MnUserParameterState(par), new MnStrategy(stra));
}
/** construct from FCNBase + MnUserParameters + MnUserCovariance with default strategy */
public MnMigrad(FCNBase fcn, MnUserParameters par, MnUserCovariance cov)
{
this(fcn,par,cov,DEFAULT_STRATEGY);
}
/** construct from FCNBase + MnUserParameters + MnUserCovariance */
public MnMigrad(FCNBase fcn, MnUserParameters par, MnUserCovariance cov, int stra)
{
this(fcn, new MnUserParameterState(par, cov), new MnStrategy(stra));
}
/** construct from FCNBase + MnUserParameterState + MnStrategy */
public MnMigrad(FCNBase fcn, MnUserParameterState par, MnStrategy str)
{
super(fcn, par, str);
}
ModularFunctionMinimizer minimizer()
{
return theMinimizer;
}
private VariableMetricMinimizer theMinimizer = new VariableMetricMinimizer();
}