1. Ported fast Cray libm routines now available !
Hello all,
a first version 0.90 of my port of the (scalar) benchlib routines by
Cray is now available at
http://people.frankfurt.netsurf.de/Joachim.Wesner/libfm.0.90.tar.gz
It contains instructions to create a static library libfm.a that can be
linked with your executables (put it in /usr/lib). Temporary variables
are now stored on the stack, instead with the other *constants*, so the
software could also be changed into a shareable object in future.
I made many other small fixes to the appearence of the source code as
elimation of commented out code and unused variables etc., besides the
differences in assembler source format. Especially trying to
automatically convert the block data subprograms into appropriate
assembler data statements while interchanging several lines etc., by a
simple patch, seemed too complicated or would have ended in a patch:
"Delete all original lines, insert the following new lines ..."
So in the end I decided to publish my complete final version together
with the orginal sources. Remember, the software is still Copyright by
Cray, see the file reply.cray for a first promising statement of one of
the developers of the code about use of the code.
libfm 0.90 contains the following functions:
double sin(double x);
double cos(double x);
double tan(double x); /* derived using cossin() below */
struct complex {double re, im;} cossin(double x);
/* simultaneous cos()/sin() at a running time only slightly
longer than cos() ! */
double exp(double x);
double log(double x);
double log10(double x); /* derived from log() */
double sqrt(double x);
double sqrti(double x); /* Somewhat faster version of 1./sqrt(x) */
double powr(double x, double y);
/* Less accurate, but MUCH faster 'quick and dirty' variant of
pow() that also does no special handling of integer
exponents.
If you like it to completely replace pow(), change all
references
to powr in file powr.S and recompile */
/* Float precision variants that even squeeze out a bit more running
time.
However, these routines turn out to be only marginally faster on my
LX 533, see the file 'timings' */
double exp32(double x);
double log32(double x);
double sqrt32(doubel x);
I hope you will like that code, please send any bug reports etc. to my
email adress.
HOWEVER, better, fully GPL, math routines will probably be also
available in the future on "another track":
Kazushige Goto was able to port my old sincos routine I had mentioned
before on this group to assembler and to further improve it, now running
faster than the above cray routines, even for large arguments (sin() in
functions.
I will be on a conference till saturday, I hope dowloading will work OK,
(this is the first time I use my homepage), DON'T crash the server of my
ISP !!
Best wishes,
Joachim Wesner
2. Message "idle task may not sleep"
3. Version 0.21 of free fast math routines (libffm, preliminary version) now released !
4. NEWBIE : HELP needed w/Apache
5. routine "finite()" not in libm.a
6. fcagent RPC program number
7. Fast cray libm routines available !?
8. Solaris x86 2.6 CDE / Xaccel color palette problem
9. Floating Exception with acos(-2.0) in libm.4.5.26
10. Floating point conversion routines
11. Floating point routines built under Redhat 5.x return unexpected "NaN" value?
12. Float conversion routines from VMS to UNIX
13. libm.so.5, needed by /usr/lib/libstdc++.so, conflicts with libm.so.6