commons-issues mailing list archives

Site index · List index
Message view
Top
From "Gilles (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (MATH-905) FastMath.[cosh, sinh] do not support the same range of values as the Math counterparts
Date Mon, 26 Nov 2012 13:26:58 GMT

[ https://issues.apache.org/jira/browse/MATH-905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Gilles resolved MATH-905.
-------------------------

Resolution: Fixed

Committed revision 1413600.

> FastMath.[cosh, sinh] do not support the same range of values as the Math counterparts
> --------------------------------------------------------------------------------------
>
>                 Key: MATH-905
>                 URL: https://issues.apache.org/jira/browse/MATH-905
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Thomas Neidhart
>             Fix For: 3.1
>
>         Attachments: MATH-905.diff
>
>
> As reported by Jeff Hain:
> cosh(double) and sinh(double):
> Math.cosh(709.783) = 8.991046692770538E307
> FastMath.cosh(709.783) = Infinity
> Math.sinh(709.783) = 8.991046692770538E307
> FastMath.sinh(709.783) = Infinity
> ===> This is due to using exp( x )/2 for values of |x|
> above 20: the result sometimes should not overflow,
> but exp( x ) does, so we end up with some infinity.
> ===> for values of |x| >= StrictMath.log(Double.MAX_VALUE),
> exp will overflow, so you need to use that instead:
> for x positive:
> double t = exp(x*0.5);
> return (0.5*t)*t;
> for x negative:
> double t = exp(-x*0.5);
> return (-0.5*t)*t;

--
This message is automatically generated by JIRA.