glenn@suphys.physics.su.OZ.AU (Glenn Geers) (11/15/90)
Most (all?) of the generic 386 Unix systems (including Xenix) provide a math library that does not use many of the 387's inbuilt transcendental functions either at all or only in a restricted way. This is because they must be able to support a minimal system consisting of a 287 or an (incomplete) emulator. For example, sin(x) is not computed using the fsin instruction but rather using a polynomial expansion. I have completely rewritten the math library to use the 387 inbuilts and extended it to provide a full IEEE conforming implementation. Many of the routines are in assembler but the more esoteric functions are borrowed from the Berkley distribution (in C - Bessel functions, hyperbolic functions and the gamma function. The hyperbolics will be written in assembler soon.) and are freely distributable. The measured speed up is between 5 and 10 times depending on the function. I have used the Berkley approach, matherr is not used and in most cases range checks are left to the user. I wanted speed not niceties! The system requirements are a 386(SX)/387(SX) or a full emulator (ESIX provides one; do other vendors?). You *must* be using gcc/gas. The second requirement will eventually go away - anyone know where I can get an AT&T 386 assembler reference? Does one exist? If you are interested in being a beta tester please send me email and I will tell you how to get the source if you are on Internet or mail it out to you if not. Share and Enjoy, Glenn glenn@qed.physics.su.oz.au -- Glenn Geers | "So when it's over, we're back to people. Department of Theoretical Physics | Just to prove that human touch can have The University of Sydney | no equal." Sydney NSW 2006 Australia | - Basia Trzetrzelewska, 'Prime Time TV'