next up previous contents
Next: Dynamic memory Up: CLW functions Previous: Libc function   Contents

Mathmatical functions

Also the math library has been wrapped, as the default implementation of several functions lead to unsafe behaviour. Some examples hereof are listed below:
asin(5);            /* causes a bus error on Solaris */
atan(M_PI_2);       /* results in .. ? */
log(0);             /* segv */
exp(0, 0);          /* segv,  (defined as 1.0) */
The library checks for incorrect input (domain errors) and raies an exception when incorrect input is given, like the other functions. Furthermore, it checks the value of errno afterwards. This can also result in an exception. It will do this if needed, without changing As with the libC functions, the behaviour of the math functions is only changes when they are are known to be unsafe. Again, an exception is raised instead of crash The safe math wrapper are declared in clwmath.h



Erwin Nijmeijer 2002-09-26