To: djgpp AT sun DOT soe DOT clarkson DOT edu Subject: Second release of alternate math library Date: Mon, 26 Sep 1994 11:42:27 -0700 From: "J.T. Conklin" The second release of my fdlibm-derived math library which I maintain for NetBSD, FreeBSD, and now DJGPP is now available via anonymous ftp from ftp.cygnus.com in ~/pub/jtc/djgpp. "includes.zip" contains include/sys/cdefs.h, include/machine/asm.h, and include/machine/endian.h. include/sys/cdefs.h replaces the one distributed with djgpp 1.12, it fixes the __P macro so it omits the prototype when compiling with gcc's -traditional flag. And it adds the __BEGIN_DECLS and __END_DECLS macros used by *BSD. include/machine/asm.h and include/machine/endian.h are new files, derived from BSD. include/machine/asm.h contains macros useful to assembly language programming. include/machine/endian.h contains byte order constants constants. The file libm001.zip is the library. Unzip it in C:\DJGPP (or wherever you have unpacked DJGPP) and make. It installs itself as libnewm. You may want to copy this lib's math.h over djgpp's, but that may not be necessary. The major change in this version is that I've brought over the assembly language versions of the functions from the *BSD version. I've addressed most of the problems and sugestions that people have mailed me (missing __infinity[], etc.). This library should be about the same speed as the one distributed with djgpp. The primitive functions whose behavior is not affected by any standard (sin, cos, tan) will be the same speed. Functions like sqrt will be negligably slower (a few cycles) because the out-of-range and out-of-domain conditions are detected and handled according to the current standard mode. Some of the more complicated functions may actually be faster, since some of the primitive operations are done by bit manipulation instead of calculation. In general, I'd call it a toss up: performance alone a poor reason to favor one library over the other. I call this version 0.01 since I still haven't had time to provide any README files. Also I didn't get a chance to fix so that _PROF_PROLOGUE emits the correct code when -DPROF is defined. Don't expect execution profiles (of the assembly functions) to be accurate until I get it fixed. I should be able to finish those things next weekend and release a new version early next week. Let me know how you this version, --jtc