SqrtLowParameterTransformation.cxx

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: SqrtLowParameterTransformation.cxx 29068 2009-06-17 16:28:51Z moneta $
00002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei   2003-2005  
00003 
00004 /**********************************************************************
00005  *                                                                    *
00006  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
00007  *                                                                    *
00008  **********************************************************************/
00009 
00010 // Project   : LCG
00011 // Package   : Minuit
00012 // Author    : Lorenzo.MONETA@cern.ch 
00013 // Created by: moneta  at Thu Apr  8 10:26:22 2004
00014 
00015 #include "Minuit2/SqrtLowParameterTransformation.h"
00016 #include "Minuit2/MnMachinePrecision.h"
00017 
00018 namespace ROOT {
00019 
00020    namespace Minuit2 {
00021 
00022 
00023 
00024 double SqrtLowParameterTransformation::Int2ext(double value, double lower) const {
00025    /// internal to external transformation 
00026    double val = lower - 1. + sqrt( value*value + 1.);
00027    return val; 
00028 }
00029 
00030 
00031 double SqrtLowParameterTransformation::Ext2int(double value, double lower, const MnMachinePrecision& ) const {
00032    // external to internal transformation
00033    double yy = value - lower + 1.; 
00034    double yy2 = yy*yy; 
00035    if (yy2 < 1. ) 
00036       return 0; 
00037    else 
00038       return sqrt( yy2 -1); 
00039 }
00040 
00041 
00042 double SqrtLowParameterTransformation::DInt2Ext(double value, double) const {
00043    // derivative of internal to external transofrmation   :  d (Int2Ext) / d Int  
00044    double val = value/( sqrt( value*value + 1.) );
00045    return val; 
00046 }
00047 
00048    }  // namespace Minuit2
00049 
00050 }  // namespace ROOT

Generated on Tue Jul 5 14:37:11 2011 for ROOT_528-00b_version by  doxygen 1.5.1