Viewing Issue Advanced Details
[ Jump to Notes ]
|
[ View Simple ]
[ Issue History ]
[ Print ]
|
ID |
Category |
Severity |
Reproducibility |
Date Submitted |
Last Update |
0000205 |
[ALGLIB] General |
minor |
have not tried |
2009-11-27 11:18 |
2009-12-14 10:37 |
|
Reporter |
SergeyB |
View Status |
public |
|
Assigned To |
SergeyB |
Priority |
normal |
Resolution |
fixed |
Platform |
|
Status |
resolved |
|
OS |
|
Projection |
none |
|
OS Version |
|
ETA |
none |
Fixed in Version |
2.2.0 |
Product Version |
|
|
Target Version |
|
Product Build |
|
|
Summary |
0000205: FIXED: non-IEEE floating point comparison in C++, C#, Delphi, FreePascal |
Description |
x86 FPU uses 80-bit floating point arithmetics for internal calculations, while in-memory data are stored in 64-bit precision.
Sometimes it leads to unexpected results, for example: you may assign sqrt(3) to A, and still get A<>sqrt(3) (just because A is stored in memory and has double precision, and second sqrt(3) is stored in FPU and has long double precision).
Several unit tests were (erroneously) failed due to floating point inconsistency.
Now all sources use IEEE-compliant floating point comparisons independently of compiler/platform. |
Steps To Reproduce |
|
Additional Information |
|
|
Programming language |
Unspecified |
|
Attached Files |
|
|