00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "Minuit2/SqrtUpParameterTransformation.h"
00017 #include "Minuit2/MnMachinePrecision.h"
00018
00019 namespace ROOT {
00020
00021 namespace Minuit2 {
00022
00023
00024
00025 double SqrtUpParameterTransformation::Int2ext(double value, double upper) const {
00026
00027 double val = upper + 1. - sqrt( value*value + 1.);
00028 return val;
00029 }
00030
00031
00032 double SqrtUpParameterTransformation::Ext2int(double value, double upper, const MnMachinePrecision& ) const {
00033
00034 double yy = upper - value + 1.;
00035 double yy2 = yy*yy;
00036 if (yy2 < 1. )
00037 return 0;
00038 else
00039 return sqrt( yy2 -1);
00040 }
00041
00042
00043 double SqrtUpParameterTransformation::DInt2Ext(double value, double) const {
00044
00045 double val = - value/( sqrt( value*value + 1.) );
00046 return val;
00047 }
00048
00049 }
00050
00051 }