Hi,
You are right. An integral of the absolute value is calculated since
ver. 1.68 of TF1.cxx (CVS rev.). I don't know why the statistical
functions required such thing.
----------------------------------------------------------------------
--- TF1.cxx 14 Jul 2003 12:58:22 -0000 1.67
+++ TF1.cxx 20 Aug 2003 07:00:47 -0000 1.68
@@ -1,4 +1,4 @@
-// @(#)root/hist:$Name: $:$Id: TF1.cxx,v 1.67 2003/07/14 12:58:22 brun
Exp $
+// @(#)root/hist:$Name: $:$Id: TF1.cxx,v 1.68 2003/08/20 07:00:47 brun
Exp $
// Author: Rene Brun 18/08/95
/*************************************************************************
@@ -1563,18 +1563,18 @@
for (i=0;i<4;i++) {
u = c2*x[i];
xx[0] = c1+u;
- f1 = EvalPar(xx,params);
+ f1 = TMath::Abs(EvalPar(xx,params));
xx[0] = c1-u;
- f2 = EvalPar(xx,params);
+ f2 = TMath::Abs(EvalPar(xx,params));
s8 += w[i]*(f1 + f2);
}
s16 = 0;
for (i=4;i<12;i++) {
u = c2*x[i];
xx[0] = c1+u;
- f1 = EvalPar(xx,params);
+ f1 = TMath::Abs(EvalPar(xx,params));
xx[0] = c1-u;
- f2 = EvalPar(xx,params);
+ f2 = TMath::Abs(EvalPar(xx,params));
s16 += w[i]*(f1 + f2);
}
s16 = c2*s16;
@@ -1749,14 +1749,14 @@
sum3 = 0;
for (j=0;j<n;j++) {
z[j] = ctr[j] - xl2*wth[j];
- f2 = EvalPar(z,fParams);
+ f2 = TMath::Abs(EvalPar(z,fParams));
z[j] = ctr[j] + xl2*wth[j];
- f2 += EvalPar(z,fParams);
+ f2 += TMath::Abs(EvalPar(z,fParams));
wthl[j] = xl4*wth[j];
z[j] = ctr[j] - wthl[j];
- f3 = EvalPar(z,fParams);
+ f3 = TMath::Abs(EvalPar(z,fParams));
z[j] = ctr[j] + wthl[j];
- f3 += EvalPar(z,fParams);
+ f3 += TMath::Abs(EvalPar(z,fParams));
sum2 += f2;
sum3 += f3;
dif = TMath::Abs(7*f2-f3-12*sum1);
@@ -1777,7 +1777,7 @@
for (m=0;m<2;m++) {
wthl[k] = -wthl[k];
z[k] = ctr[k] + wthl[k];
- sum4 += EvalPar(z,fParams);
+ sum4 += TMath::Abs(EvalPar(z,fParams));
}
}
z[k] = ctr[k];
@@ -1791,7 +1791,7 @@
z[j] = ctr[j] + wthl[j];
}
L90:
- sum5 += EvalPar(z,fParams);
+ sum5 += TMath::Abs(EvalPar(z,fParams));
for (j=0;j<n;j++) {
wthl[j] = -wthl[j];
z[j] = ctr[j] + wthl[j];
--------------------------------------------------------------
As you can see function value everywhere is replaced by its absolute value.
Best regards,
Stanislav.
Vincent Roberfroid wrote:
>Yes it's correct !
>This problem is present with root 3.10/00.
>It doesn't exist with root 3.05.
>
>Vincent
>
>On Wednesday 10 December 2003 19:42, Martijn Schellekens wrote:
>
>
>>Dear Rooters,
>>
>>I have this strange integral result:
>> > TH1 func("func","-x",-50,50)
>> >func.Integral(-1,1)
>>
>>result:
>> 1
>>Can someone explains this result to me???
>>(seems to compute the integral of the absolute value: negatif values are
>>not of this world after all???)
>>
>>Thanks a lot,
>>Martijn Schellekens
>>
>>
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:17 MET