This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients Rhamphoryncus, christian.heimes, mark.dickinson
Date 2007-12-18.14:36:33
SpamBayes Score 0.12332722
Marked as misclassified No
Message-id <1197988593.82.0.462545018696.issue1640@psf.upfronthosting.co.za>
In-reply-to
Content
Unfortunately, implementing asinh, acosh, atanh correctly is not as simple as just using the formulas 
(this is one of the reasons that it's useful to be able to get at the library definitions).  For 
example, the formula

asinh(x) = log(x + sqrt(1.+(x*x)))

has significant error (i.e. much more than just a few ulps) when x is small (so that the argument of 
the log is close to 1), and when x is large and negative (so that the addition involves adding two 
numbers of almost equal magnitude but opposite sign).  It also overflows unnecessarily at around 
1e154 (on an IEEE754 system), as a result of the intermediate calculation x*x overflowing, and it 
fails to give the correct signs on zero arguments.  (asinh(0.) = 0., asinh(-0.) = -0.)

So either some serious work is required here, or code should be borrowed in an appropriately legal 
fashion from some other library, or those few people who don't have asinh, acosh, etc. already in 
libm will have to live without.

Mark
History
Date User Action Args
2007-12-18 14:36:34mark.dickinsonsetspambayes_score: 0.123327 -> 0.12332722
recipients: + mark.dickinson, Rhamphoryncus, christian.heimes
2007-12-18 14:36:33mark.dickinsonsetspambayes_score: 0.123327 -> 0.123327
messageid: <1197988593.82.0.462545018696.issue1640@psf.upfronthosting.co.za>
2007-12-18 14:36:33mark.dickinsonlinkissue1640 messages
2007-12-18 14:36:33mark.dickinsoncreate