Short: IEEE-libs best for WinUAE +src +bonus r9 Author: pkeunecke@arcor.de (Peter Keunecke) Uploader: pkeunecke@arcor.de (Peter Keunecke) Type: util/libs Version: 45.881 r9 Architecture: m68k-amigaos >= 2.0.0 Replaces: util/libs/MathLibs881.* Requires: real 68881/2 FPU or WinUAE (with 020+FPU or 040) German: Die deutsche Beschreibung steht in der zweiten Hälfte. Changes in r9: ============= Since the release of WinUAE v1.0 my replacement functions from r8 are part of its JIT/FPU emulation, thus these MathLibsUAE are mapping most IEEE functions directly to FPU commands now. Only my replacement for Pow() remains, because there is no FPU instruction for Pow() and the PCs don't know LogN() or EtoX(). For older UAE versions there are still the previous r8 files. Changes in r8: ============= Big speed gain under WinUAE for Pow(), LogN() and Log10() now, 3-5 times faster, because a Log2() substitute works much better and also eleminates most of these annoying UAE rounding bugs. Furthermore, SinH(), CosH() and TanH() have been replaced by a much faster code using Exp() instead and also SinCos() is new. The bonus: the madlibs have been updated to the latest changes. Description: =========== Yet another replacement for the AmigaOS MathIEEE libraries, but at least for WinUAE, these libs should be the best choice now: _________________________________ | | | these MathLibsUAE are freeware | | it's the fastest code for 68881 | | you get the smallest binaries | | correct working functions AFAIK | | it reduces WinUAE rounding bugs | | the free sources are included | |_________________________________| These libraries are optimized for the 68881/2 and need an FPU. 68881 emulations like in WinUAE will profit, real 68040/60 not. Special WinUAE versions are included for the best performance. BTW, the 68881 emulation under WinUAE is also present, while the CPU/FPU config is set up for an 68040 and will profit too. This, of course, only happens while applications use IEEE-libs. Systems without an FPU and also some ancient 68881 FPU cards, depending on the MathIEEEResource, are not supported anymore. In general the FPU is set to extended precision, round to zero, only reduced to the desired precision by arguments and results. SinglePrecision tries to get RoundToNearest mode, if possible. Because this concept is different from the original FPU setup, you should always install all four mathlibs together or none. These libraries are independent from the AmigaOS-development, thus this version is only an unofficial private experiment. _______________________________________________________________ HSML-Benchmark 1Mio loops on Win98 WinUAE 0822r4 PII 240MHz. ============== SingBas SingTrans DoubBas DoubTrans OS 3.9 Rom+V45 16.6s 151.2s 19.5s 174.2s HsDemo 44.50.2 22.1s 143.3s 23.2s 158.8s FastMath V40.6 16.6s 135.7s 19.1s 158.5s HS-040 44.50.8 16.8s 93.6s 17.3s 99.5s MathLibs881 r8 12.1s 75.1s 15.3s 87.6s MadLibs 8.881 10.4s 69.6s 14.1s 80.8s WinUAE v1.0+ ------------------------------------- OS 3.9 Rom+V45 15.3s 64.9s 18.7s 69.7s MathLibsUAE r9 13.3s 47.5s 17.0s 53.7s MadLibs 9.881 11.4s 43.6s 15.5s 49.9s But remember, that these timings are the results of a synthetic benchmark and such big differences will never exist in reality. Please send me an email, if you know a program which gains more than 1% in speed or if you've any suggestions for improvements. The Bonus: ========= The MadLibs are a quick&dirty hack to gain a little more speed improvement for most functions by misusing the jumptables and merging the structure into the resident part of the library. The source of the MadLibs is a perfect example for bad coding. NEVER try to PATCH the MadLibs with SnoopLibs or anything else! If you prefer an OS-friendly and safe version use the MathLibs. Everything else should work as usual, you may even flush these very strange constructions out of your system memory again. The functions of the MadLibs are the same as in the standard libs. Legal basis: =========== My libraries and the sourcecode are freeware. 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 to your system! In case, you are modifying this software and want to distribute it, choose another package name, but don't change this archive. Copyright 2005: ============== Peter Keunecke And the remainder of the story, don't trust benchmarks, sorry! ############################################################### ############# GERMAN ----- vvvvvv ----- DEUTSCH ############### ############################################################### MathLibsUAE r9 -------------- Änderungen in r9: ================ Seit Erscheinen von WinUAE v1.0 sind meine FPU-Funktionen (r8) ein Bestandteil der JIT/FPU-Emulation. Deshalb übersetzen diese MathLibs die meisten IEEE-Funktionen nun direkt in FPU-Befehle. Nur mein Pow()-Ersatz ist geblieben, weil es keinen FPU-Befehl für Pow() gibt und die PCs kein LogN() oder EtoX() kennen. Für die älteren UAE-Versionen sind noch die früheren r8 Dateien da. Änderungen in r8: ================ Unter WinUAE laufen Pow(), LogN() und Log10() jetzt 3-5 mal so schnell, weil ein Ersatz durch Log2() deutlich besser arbeitet und zusätzlich die meisten der störenden Rundungsfehler behebt. Außerdem wurden SinH(), CosH() und TanH() mit viel schnellerem Code durch Exp() ersetzt und auch SinCos() wurde beschleunigt. Der Bonus: aktuallisierte MadLibs mit den letzten Änderungen. Beschreibung: ============ Noch so'n Ersatz für die AmigaOS MathIEEE-Bibliotheken, aber zumindest unter WinUAE sollte dies jetzt die beste Wahl sein: _________________________________ | | | diese MathLibsUAE sind Freeware | | die schnellsten Libs fürn 68881 | | es sind die kürzesten Binaries | | korrekt rechnende Funktionen HI | | beseitigt WinUAE Rundungsfehler | | die freien Quellen liegen dabei | |_________________________________| Die Libs sind für den 68881/2 optimiert und brauchen eine FPU. Emulationen, wie in WinUAE, profitieren, echte 68040/60 nicht. Für die beste Leistung liegen spezielle WinUAE-Versionen bei. Übrigens läuft die 68881 Emulation bei WinUAE auch dann, wenn die CPU/FPU Konfiguration auf 68040 steht und wird begünstigt. Natürlich nur möglich, solange Programme die IEEE-Libs nutzen. Systeme ohne FPU, aber auch einige uralte FPU-Karten, die noch auf MathIEEEResource basieren, werden nicht mehr unterstützt. Die FPU ist stets auf erweiterte Genauigkeit mit Rundung gegen Null eingestellt und reduziert nur zur gewünschten Genauigkeit bei der Übergabe der Argumente und Ergebnisse. SinglePrecision versucht aber den RoundToNearest-Modus zu erhalten. Weil dies Konzept von den Standard-FPU-Einstellungen abweicht, solltest Du immer alle vier MathLibs zusammen oder keine installieren. Diese Libraries sind unabhängig von der AmigaOS-Entwicklung, drum ist diese Version nur ein inoffizieller privater Versuch. _______________________________________________________________ HSML-Benchmark 1Mio Schleifen Win98 WinUAE 0822r4 PII 240MHz. ============== SingBas SingTrans DoubBas DoubTrans OS 3.9 Rom+V45 16.6s 151.2s 19.5s 174.2s HsDemo 44.50.2 22.1s 143.3s 23.2s 158.8s FastMath V40.6 16.6s 135.7s 19.1s 158.5s HS-040 44.50.8 16.8s 93.6s 17.3s 99.5s MathLibs881 r8 12.1s 75.1s 15.3s 87.6s MadLibs 8.881 10.4s 69.6s 14.1s 80.8s WinUAE v1.0+ ------------------------------------- OS 3.9 Rom+V45 15.3s 64.9s 18.7s 69.7s MathLibsUAE r9 13.3s 47.5s 17.0s 53.7s MadLibs 9.881 11.4s 43.6s 15.5s 49.9s Bedenke aber, diese Zeiten sind Ergebnisse eines künstlichen Benchmarks und solch große Unterschiede existieren nicht real. Bitte schick mir eine Email, wenn Du ein Programm findest, das über 1% schneller wird oder Du Verbesserungsvorschläge hast. Die Zugabe: ========== Die MadLibs881 sind ein Bastler-Pfusch, um ein wenig Geschwin- digkeitsverbesserung für die meisten Funktionen zu erreichen mit Hilfe eines Mißbrauchs der Jumptables und des Hineinfügens der Library-Struktur in den residenten Teil der Library. Der MadLibs-Source ist ein perfektes Beispiel für schlechten Code. Versuche sie aber NIEMALS mit SnoopLibs oder anders zu PATCHEN. Bevorzuge die MathLibs als OS-freundliche und sichere Version. Alles andere sollte wie üblich laufen und auch das Rauswerfen dieser seltsamen Konstruktionen aus dem Speicher ist möglich. Die Funktionen der MadLibs sind sonst identisch zum Standard. Rechtliches: =========== Meine Libraries und die Quellen sind Freeware. Ich gebe keine Garantien. Die Benutzung dieser Software erfolgt auf eigenes Risiko. Der Anwender ist selbst verantwortlich für mögliche Schäden, die bei Benutzung an seinem System entstehen könnten. Falls Du diese Software modifizieren und verbreiten möchtest, wähle einen anderen Paketnamen, aber ändere nicht dies Archiv. Copyright 2005: ============== Peter Keunecke Und die Moral von der Geschicht', traue keinem Benchmark nicht! .