Mark Dickinson added the comment: Also: -1.0 shouldn't be returned at this level to indicate an error; these are pure C functions we're writing---the Python wrappers, and Python error conventions, apply further up the chain somewhere.
Just so I'm doing something a little more constructive than yelling criticisms from the sideline, I've attached a file invhyp.c that's how I think the C functions should look. Some notes: - it doesn't touch errno, but lets the platform decide how to handle errors (i.e. produce a special value/set errno/signal a floating-point exception/some combination of these). This will make the asinh, acosh, atanh functions behave in the same way that the regular libm functions behave on any platform. So e.g. if a particular platform is used to setting errno for domain errors like sqrt(-1), it'll do so for atanh/asinh/acosh. And another platform that signals a floating-point exception for sqrt(-1) will do the same for atanh(3). - I've left in the "huge+x > 1.0" test in asinh; it's kinda pointless, but also fairly harmless. I think its only point is to make sure that the inexact flag gets set where appropriate, and Python doesn't much care about the inexact flag. - I'm reasonably sure that the test "x == 1." in acosh is safe. Added file: http://bugs.python.org/file9252/invhyp.c __________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1640> __________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com