9a99763
diff -ur root-6.06.02.orig/math/mathmore/test/testSpecFunc.cxx root-6.06.02/math/mathmore/test/testSpecFunc.cxx
9a99763
--- root-6.06.02.orig/math/mathmore/test/testSpecFunc.cxx	2016-03-03 10:36:03.000000000 +0100
9a99763
+++ root-6.06.02/math/mathmore/test/testSpecFunc.cxx	2016-04-09 20:03:06.376713840 +0200
9a99763
@@ -179,7 +179,7 @@
9a99763
 
9a99763
    iret |= compare("hyperg(8, -8, 1, 0.5) ", hyperg(8, -8, 1, 0.5), 0.13671875);
9a99763
 
9a99763
-   iret |= compare("laguerre(4, 1.) ", laguerre(4, 1.), -0.6250); // need to find more precise value
9a99763
+   iret |= compare("laguerre(4, 1.) ", laguerre(4, 1.), -0.6250, 4); // need to find more precise value
9a99763
 
9a99763
    iret |= compare("legendre(10, -0.5) ", legendre(10, -0.5), -0.1882286071777345);
9a99763
 
9a99763
diff -ur root-6.06.02.orig/test/stressMathCore.cxx root-6.06.02/test/stressMathCore.cxx
9a99763
--- root-6.06.02.orig/test/stressMathCore.cxx	2016-03-03 10:36:03.000000000 +0100
9a99763
+++ root-6.06.02/test/stressMathCore.cxx	2016-04-09 20:03:06.395714018 +0200
9a99763
@@ -1121,7 +1121,7 @@
9a99763
    if (Dim==4 && VecType<V2>::name() == "PtEtaPhiMVector") scale *= 10;
9a99763
 #if defined (R__LINUX) && !defined(R__B64)
9a99763
    // problem of precision on linux 32
9a99763
-   if (Dim ==4) scale = 1000000000;
9a99763
+   if (Dim ==4) scale = 5000000000;
9a99763
 #endif
9a99763
    // for problem with PtEtaPhiE
9a99763
    if (Dim==4 && VecType<V2>::name() == "PtEtaPhiEVector") scale = 0.01/(std::numeric_limits<double>::epsilon());
9a99763
diff -ur root-6.06.02.orig/test/TFormulaParsingTests.h root-6.06.02/test/TFormulaParsingTests.h
9a99763
--- root-6.06.02.orig/test/TFormulaParsingTests.h	2016-03-03 10:36:03.000000000 +0100
9a99763
+++ root-6.06.02/test/TFormulaParsingTests.h	2016-04-09 20:03:06.395714018 +0200
9a99763
@@ -312,7 +312,7 @@
9a99763
    ok &= (f1->Eval(1.5,2.5) == f0->Eval(1.5,2.5) );
9a99763
    double par[2] = {3,4};
9a99763
    double xx[2] = {0.8,1.6};
9a99763
-   ok &= (f1->EvalPar(xx,par) == f0->EvalPar(xx,par) );
9a99763
+   ok &= TMath::AreEqualAbs(f1->EvalPar(xx,par), f0->EvalPar(xx,par), 2e-16);
9a99763
    return ok; 
9a99763
 }
9a99763
 
9a99763
@@ -326,7 +326,7 @@
9a99763
    ok &= (f1->Eval(1.5,2.5,3.5) == f0->Eval(1.5,2.5,3.5) );
9a99763
    double par[2] = {3,4};
9a99763
    double xx[3] = {0.8,1.6,2.2};
9a99763
-   ok &= (f1->EvalPar(xx,par) == f0->EvalPar(xx,par) );
9a99763
+   ok &= TMath::AreEqualAbs(f1->EvalPar(xx,par), f0->EvalPar(xx,par), 2e-16);
9a99763
    return ok; 
9a99763
 }
9a99763
 
9a99763
@@ -369,12 +369,12 @@
9a99763
    TF1 f0("f0",[](double *x, double *p){ return p[0]+p[1]*TMath::Gaus(x[0],p[2],p[3]); },-3,3,4 );
9a99763
    f2.SetParameters(10,1,0,1);
9a99763
    f0.SetParameters(f2.GetParameters() );
9a99763
-   ok &= (f2.Eval(1) == f0.Eval(1) );
9a99763
+   ok &= TMath::AreEqualAbs(f2.Eval(1), f0.Eval(1), 7e-16);
9a99763
 
9a99763
    TF1 f3("f3","f1+[0]");
9a99763
    // param order should be the same
9a99763
    f3.SetParameters( f2.GetParameters() );
9a99763
-   ok &= (f2.Eval(1) == f0.Eval(1) );
9a99763
+   ok &= TMath::AreEqualAbs(f3.Eval(1), f0.Eval(1), 7e-16);
9a99763
    return ok;
9a99763
 }
9a99763
 
9a99763
@@ -465,7 +465,7 @@
9a99763
    auto func = [](double *x, double *p){ return TMath::Sqrt(((TMath::Sign(1,p[0])*TMath::Sq(p[0]/x[0]))+(TMath::Sq(p[1])*(TMath::Power(x[0],(p[3]-1)))))+TMath::Sq(p[2])); };
9a99763
    TF1 f6("f6",func,-10,10,4);
9a99763
    f5.SetParameters(-1,2,3,4); f6.SetParameters(f5.GetParameters());
9a99763
-   ok &= (f5.Eval(2) == f6.Eval(2) );
9a99763
+   ok &= TMath::AreEqualAbs(f5.Eval(2), f6.Eval(2), 4.e-16);
9a99763
    return ok;
9a99763
 }
9a99763
 
9a99763
@@ -485,7 +485,7 @@
9a99763
    // keep same order in evaluation
9a99763
    TF1 f0("f0",[](double *x, double *p){ return p[1]*sin(x[0]) + p[0]*cos(x[0]);},0.,10.,2);
9a99763
    f0.SetParameters(1.1,2.1);
9a99763
-   ok &= (fsincos.Eval(2) == f0.Eval(2) );
9a99763
+   ok &= TMath::AreEqualAbs(fsincos.Eval(2), f0.Eval(2), 3e-16);
9a99763
    return ok;
9a99763
 
9a99763
 }