Hi Christian, I will make these functions inline. On my machine, I tested that you can call TMath::Floor 10 million times in 0.3 seconds Rene Brun On Wed, 28 Apr 2004, cstrato wrote: > Dear Rene > > I have also a question regarding TMath: > I have a method, where I call floor or ceiling more than > 500,000 times. Is there a reason why TMath::Ceil and > TMath::Floor are not defined as inline methods? > Would calling TMath::Floor instead of floor increase > the execution time? > > Best regards > Christian > > Rene Brun wrote: > > > Hi F.X, > > > > I have protected TMath::Acos and ASin in the CVS version. > > > > Rene Brun > > > > On Wed, 28 Apr > > 2004, GENTIT Francois-Xavier DAPNIA wrote: > > > > > >>Hello Rooters, > >> > >> > >> > >>Concerning the discussion about modifications in TMath, I want to report > >>about a problem I had recently. Try the following (in CINT or in compile > >>mode, it does not matter) > >> > >> > >> > >>--> Double_t a = 1.0; > >> > >>--> Double_t b = 4.0e-16; > >> > >>--> a += b ; > >> > >>--> Double_t c = TMath ::ACos(a) > >> > >> > >> > >> c is now equal to -1.#IND. If you are a purist, you will say ok, nothing > >>wrong, because the ACos of a value bigger than 1 does not make sense. But > >>such a small error as 4.0e-16 is normal when calculating in double > >>precision. So that it happens! For me, it happened when doing the scalar > >>product of 2 unit vectors which were parallel. And it does not crash the > >>program, but the program continues delivering wrong results! > >> > >> This is a nasty problem which obliged me to derive a new ACos (and ASin) > >>function with protections. > >> > >> > >> > >>F.X.Gentit > >> > >>DAPNIA/SPP CEA Saclay > >> > >>http://gentit.home.cern.ch/gentit/ > >> > >> > >> > >> > > > > > > > > >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET