What actually happens is that if you try to use the fsin instruction on operands where |x| > 2^63, it does nothing and sets an error flag. The problem is that the glibc x86 libm doesn't recover accurately in this case (it should reduce the argument and use fsin again). -- - Geoffrey Keating <geoffk@geoffk.org>