ROOT
6.30.04
Reference Guide
All
Namespaces
Files
Pages
MnMachinePrecision.cxx
Go to the documentation of this file.
1
// @(#)root/minuit2:$Id$
2
// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4
/**********************************************************************
5
* *
6
* Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7
* *
8
**********************************************************************/
9
10
#include "
Minuit2/MnMachinePrecision.h
"
11
#include "
Minuit2/MnTiny.h
"
12
13
namespace
ROOT {
14
15
namespace
Minuit2 {
16
17
18
MnMachinePrecision::MnMachinePrecision() :
19
fEpsMac(4.0E-7),
20
fEpsMa2(2.*sqrt(4.0E-7)) {
21
22
//determine machine precision
23
/*
24
char e[] = {"e"};
25
fEpsMac = 8.*dlamch_(e);
26
fEpsMa2 = 2.*sqrt(fEpsMac);
27
*/
28
29
// std::cout<<"machine precision eps: "<<Eps()<<std::endl;
30
31
MnTiny mytiny;
32
33
//calculate machine precision
34
double
epstry = 0.5;
35
double
epsbak = 0.;
36
volatile
double
epsp1 = 0.;
// allow to run this method with fast-math
37
double
one = 1.0;
38
for
(
int
i = 0; i < 100; i++) {
39
epstry *= 0.5;
40
epsp1 = one + epstry;
41
epsbak = mytiny(epsp1);
42
if
(epsbak < epstry) {
43
fEpsMac = 8.*epstry;
44
fEpsMa2 = 2.*sqrt(fEpsMac);
45
break
;
46
}
47
}
48
49
}
50
51
}
// namespace Minuit2
52
53
}
// namespace ROOT
MnMachinePrecision.h
MnTiny.h
math
minuit2
src
MnMachinePrecision.cxx
Generated on Tue May 5 2020 14:03:07 for ROOT by
1.8.5