1 // @(#)root/minuit2:$Id$
2 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei, E.G.P. Bos   2003-2017
3 
4 /**********************************************************************
5  *                                                                    *
6  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
7  *                                                                    *
8  **********************************************************************/
9 
10 // Project   : LCG
11 // Package   : Minuit
12 // Author    : Lorenzo.MONETA@cern.ch
13 // Created by: moneta  at Thu Apr  8 10:26:22 2004
14 
15 #ifndef ROOT_Minuit2_SqrtUpParameterTransformation
16 #define ROOT_Minuit2_SqrtUpParameterTransformation
17 
18 namespace ROOT {
19 
20 namespace Minuit2 {
21 
22 class MnMachinePrecision;
23 
24 /**
25  * Transformation from external to internal Parameter based on  sqrt(1 + x**2)
26  *
27  * This transformation applies for the case of single side Upper Parameter limits
28  */
29 
30 class SqrtUpParameterTransformation /* : public ParameterTransformation */ {
31 
32 public:
33    // create with user defined precision
SqrtUpParameterTransformation()34    SqrtUpParameterTransformation() {}
35 
~SqrtUpParameterTransformation()36    ~SqrtUpParameterTransformation() {}
37 
38    // transformation from internal to external
39    long double Int2ext(long double Value, long double Upper) const;
40 
41    // transformation from external to internal
42    long double Ext2int(long double Value, long double Upper, const MnMachinePrecision &) const;
43 
44    // derivative of transformation from internal to external
45    long double DInt2Ext(long double Value, long double Upper) const;
46 
47 private:
48 };
49 
50 } // namespace Minuit2
51 
52 } // namespace ROOT
53 
54 #endif
55