WARNING to Root users under Windows

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Nov 17 1998 - 23:24:38 MET


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