We had a few reports from Root users under Windows that the function TH1::GetRMS was not functioning correctly. After investigation, we traced the problem to be a bug in VisualC++ mathematical function "pow" The error is pretty nasty and occurs apparently only for some patterns of the arguments given to the pow function. Meanwhile, I have modified the GetRMS function to not use this function at all. This change will appear in the next version. With the help of Valery Fine, we have been looking in the Microsoft "Errors data base" and found the following information describing the error. We did not find any reports that the bug was fixed. So Be careful when using pow or TMath::Power under Windows. Results may be wrong!! Rene Brun BUG: The pow() Function Doesn't Set Underflow Condition Last reviewed: July 31, 1997 Article ID: Q167750 -------------------------------------------------- The information in this article applies to: The C Run-time (CRT) included with: - Microsoft Visual C++, 32-bit Editions, version 5.0 SYMPTOMS The pow() function does not set the errno variable to indicate that an underflow condition has occurred. STATUS Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available. MORE INFORMATION The help topic for pow() states: "No error message is printed on overflow or underflow." However, an overflow does set errno to the value of 34 indicating "Result too large". When an underflow occurs, the returned value is 0. Keywords : CRTIss vcbuglist500 kbtool kbbuglist Version : 5.0 Platform : NT WINDOWS Issue type : kbbug
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:39 MET