Ticket #535 (Fixed)Sun Nov 14 15:32:42 UTC 2021
SharedCLibrary: fminf(x,y) and fmaxf(x,y) functions give wrong results
Reported by: | Stuart Swales (8827) | Severity: | Normal |
Part: | RISC OS: Module | Release: | |
Milestone: | Status | Fixed |
Details by Stuart Swales (8827):
If x==y and x!=0.0 then completely corrupt results are returned for these single precision functions due to a mismatch between double-in-ARM-registers and float-in-ARM-register. Their double precision equivalents function correctly.
Changelog:
Modified by Stuart Swales (8827) Sun, November 14 2021 - 15:34:21 GMT
- Attachment added: fminmaxf.zip
The attached test program demonstrates the errors, and proposes a fix for those two library routines (I can’t remember how to build a standalone SCL…)
Modified by Sprow (202) Sun, November 14 2021 - 18:16:17 GMT
Just run !MkLibs, wait a few seconds, result is in lib.CLib (and !MkLibs26 if you want a 26 bit one).
Modified by Stuart Swales (8827) Sun, November 14 2021 - 22:15:30 GMT
Thanks – I’ll run up a test CLib and then a GitLab request.
Modified by Stuart Swales (8827) Mon, November 22 2021 - 14:22:32 GMT
- Status changed from Open to Fixed
Fixed in SharedCLibrary 6.11