D - Disappointing
- Helmut Leitner (5/46) May 03 2003 I can't understand why there was no release fixing the bug in the meanti...
- Walter (5/6) May 03 2003 meantime.
On Apr 6 2003 I wrote to Walter Bright:Walter, a number of floating point type arrays don't sort correctly under certain circumstances. This is the code: class TypeInfo_d : TypeInfo { ... int compare(void *p1, void *p2) { return *(double *)p1 - *(double *)p2; } ... } When values are small (I tried to sort uSecond timings like the following): sectab[0] 0.0000070792 sectab[1] 0.0000072514 sectab[2] 0.0000066818 sectab[3] 0.0000067485 sectab[4] 0.0000066986 sectab[5] 0.0000068492 sectab[6] 0.0000066601 sectab[7] 0.0000065775 sectab[8] 0.0000068234 sectab[9] 0.0000067371 sectab[10] 0.0000067350 rounding will make the return value unusable and the array remains unsorted. I think similar problems would turn up, when numbers are too large for the int range. The typical construction that you use in other places, will avoid the problem: type a = *(type *) p1; type b = *(type *) p2; return a < b ? -1 : a > b ? 1 : 0; ...I can't understand why there was no release fixing the bug in the meantime. -- Helmut Leitner leitner hls.via.at Graz, Austria www.hls-software.com
May 03 2003
"Helmut Leitner" <helmut.leitner chello.at> wrote in message news:3EB3B096.838DB3BB chello.at...I can't understand why there was no release fixing the bug in themeantime. Because I'm trying to get the linux version working. In the meantime, you can apply the workaround you specified. I apologize.
May 03 2003