Hi, Yes that's what I noticed as well. I suppose this is a mistake, will this be changed in the next version or is there an explicit reason for this? Thanks, best regards, Martijn A 15:18 11/12/2003 +0300, Stanislav Nesterov a écrit : > 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