Message61444
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. |
|
Date |
User |
Action |
Args |
2008-01-21 20:42:15 | mark.dickinson | set | spambayes_score: 0.00207123 -> 0.00207123 recipients:
+ mark.dickinson, tim.peters, Rhamphoryncus, christian.heimes, gmcastil |
2008-01-21 20:42:15 | mark.dickinson | set | spambayes_score: 0.00207123 -> 0.00207123 messageid: <1200948135.63.0.0562083307068.issue1640@psf.upfronthosting.co.za> |
2008-01-21 20:42:14 | mark.dickinson | link | issue1640 messages |
2008-01-21 20:42:13 | mark.dickinson | create | |
|