package org.freehep.math.minuit;
/**
*
* @version $Id: SqrtLowParameterTransformation.java 8584 2006-08-10 23:06:37Z duns $
*/
class SqrtLowParameterTransformation
{
// transformation from internal to external
double int2ext(double value, double lower)
{
return lower - 1. + Math.sqrt( value*value + 1.);
}
// transformation from external to internal
double ext2int(double value, double lower, MnMachinePrecision prec)
{
double yy = value - lower + 1.;
double yy2 = yy*yy;
if (yy2 < (1. + prec.eps2()) )
return 8*Math.sqrt(prec.eps2());
else
return Math.sqrt( yy2 -1);
}
// derivative of transformation from internal to external
double dInt2Ext(double value, double lower)
{
return value/( Math.sqrt( value*value + 1.) );
}
}