commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sébastien Brisard (JIRA) <j...@apache.org>
Subject [jira] [Commented] (MATH-738) Incomplete beta function I(x, a, b) is inaccurate for large values of a and/or b
Date Fri, 30 Nov 2012 21:15:58 GMT

    [ https://issues.apache.org/jira/browse/MATH-738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13507653#comment-13507653
] 

Sébastien Brisard commented on MATH-738:
----------------------------------------

In {{r1415853}}, committed new implementation of {{Beta.logBeta(double, double)}}. The accuracy
of the new implementation is reported in the table below. This change of the code leads to
the deprecation of {{Beta.logBeta(double, double, double, int)}}, as the computation is no
longer iterative.

|| Interval                  || Values tested                                            
        || Average error  || Standard deviation  || Maximum error  ||
| 0 < x ≤ 8, 0 < y ≤ 8       | x[i] = i / 32, i = 1, ..., 256, y[j] = j / 32, j
= 1, ..., 256     | 1.80 ulps       | 81.08 ulps           | 14031.0 ulps    |
| 0 < x ≤ 8, 8 < y ≤ 16      | x[i] = i / 32, i = 1, ..., 256, y[j] = j / 32, j
= 257, ..., 512   | 0.50 ulps       | 3.64 ulps            | 694.0 ulps      |
| 0 < x ≤ 8, 16 < y ≤ 256    | x[i] = i / 32, i = 1, ..., 256, y[j] = j, j = 17,
..., 256         | 1.04 ulps       | 139.32 ulps          | 34509.0 ulps    |
| 8 < x ≤ 16, 8 < y ≤ 16     | x[i] = i / 32, i = 257, ..., 512, y[j] = j / 32,
j = 257, ..., 512 | 0.35 ulps       | 0.48 ulps            | 2.0 ulps        |
| 8 < x ≤ 16, 16 < y ≤ 256   | x[i] = i / 32, i = 257, ..., 512, y[j] = j, j = 17,
..., 256       | 0.31 ulps       | 0.47 ulps            | 2.0 ulps        |
| 16 < x ≤ 256, 16 < y ≤ 256 | x[i] = i, i = 17, ..., 256, y[j] = j, j = 17, ...,
256             | 0.35 ulps       | 0.49 ulps            | 2.0 ulps        |

                
> Incomplete beta function I(x, a, b) is inaccurate for large values of a and/or b
> --------------------------------------------------------------------------------
>
>                 Key: MATH-738
>                 URL: https://issues.apache.org/jira/browse/MATH-738
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Sébastien Brisard
>            Assignee: Sébastien Brisard
>              Labels: special-functions
>             Fix For: 3.2, 4.0
>
>
> This was first reported in MATH-718. The result of the current implementation of the
incomplete beta function I(x, a, b) is inaccurate when a and/or b are large-ish. 
> I've skimmed through [slatec|http://www.netlib.org/slatec/fnlib/betai.f], GSL, [Boost|http://www.boost.org/doc/libs/1_38_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html]
as well as NR. At first sight, neither uses the same method to compute this function. I think
[TOMS-708|http://www.netlib.org/toms/708] is probably the best option.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message