LookMath b3, (c)opyright Dan Goldwater. 1995. LookMath code is not in the public domain, but can be used for non-commercial purposes. For a commercial licence, please contact Dan Goldwater via email. LookMath is a portable c library of functions which use advanced lookup-table techniques to compute math functions very rapidly at low-medium precision. On the tested machines, the functions are from 2 to 10 times as fast as the corresponding math.h function. LookMath currently can compute the following functions: sin cos tan asin acos atan atan2 sqrt log2 log log10 erf erfz LookMath's main advancement over traditional lookup table packages is the use of linear interpolation. This squares the accuracy (twice as many bits of accuracy), at a minimal speed penalty. As a result, the size of the lookup table is small enough to fit in the cache memory of the computer, significantly speeding up performance. LookMath's lookup-table size is user-selectable, so you can configure it to the accuracy vs. memory use of your choice. At full IEEE single precision accuracy (7.2 digits), the memory use is under 200k, easily fitting inside the L2 cache of most machines. LookMath also uses a wacky pointer-manipulation technique to do bitwise operations on floating point values. it worked on the tested compilers, so lets hope it works on yours ;) LookMath is set up to be a drop-in replacement for the compiler's built-in math.h functions, since it's functions take and return float values: float sinLM (const float x); all you need to do is change the function calls to the lookmath functions. LookMath also implements traditional lookup functions which do not use linear interpolation and are slightly faster. These functions use the same tables as the other functions, so you can mix-and-match the two types of function within the same application, depending on the speed/accuracy desired.