Latest changes r14:
==================
This is the final cleanup now. Nothing can divide my concept
and conquer me. This is the greatest NaNsense I've ever done,
but it needs a little less memory and disk space or ROM now.
Removed a few hundred bytes. The additional branches can be
done by the CPU already whilst the FPU is still calculating.
Please, don't expect that anything gets faster in reality...
Changes in r11-r13:
==================
Set the global rounding mode to ext. nearest except for Fix()
to get more accurate rounded results for most functions. Only
Fix() really needs the rounding to zero, which I used before.
Some functions have better results now than the OS 3.9 libs.
I always checked my results with the reference values of the
HS benchmarks for correctness until I now found out with an
arbitrary precision math calculator that some references were
rounded to wrong values, the same as the results from OS 3.9.
Some functions also profit from the 80 bit FPU in WinUAE 4.0.
Changed the FMOD instruction in the Pow() function into FREM.
Some small optimizations in Tst(), Cmp(), Floor() and Ceil().
Safer fallback to the original libs when no FPU is detected.
The fallback is only supported with PatchMSB and loading the
libs from disk, not with LoadModule, LoadResident or a ROM.
Removed the segment list pointer from the resident module to
make it possible to add these libraries to a custom ROM, but
this has not been tested and is not recommended, because if
these libraries are resident a fallback to the original libs
can not be done anymore when no FPU is found in the system.
Description:
===========
These libraries are translating most floating point function
calls directly into FPU instructions. No integer calculations.
The Pow() function is optimized for PCs, but works on any FPU.
In case that no FPU is detected, the original libs are loaded.
Btw, the AmigaOS IEEE libraries also have support for FPUs. ;)
The standard installation, this is a safe setup:
===============================================
1) Copy c/PatchMSB to C:
2) Make a directory Libs:NoFPU
Copy your AmigaOS mathieeelibs to Libs:NoFPU ; as fallback
Copy the contents of libs/ to Libs:
3) Insert a line below SetPatch in your startup-sequence:
SetPatch QUIET ; ...
PatchMSB ; installs the same functions as in MSB-library
; remove all other patches for IEEE libraries
4) Reboot
Legal basis:
===========
The libraries and sources are funware and freely distributable.
I don't give any warranties. You're using this software on your
own risk and you are responsible for any damage it might cause!
Copyright 2018:
==============
Peter Keunecke
|