From 6fe017e1bd9937e8d252bb093dbeef903c6c8517 Mon Sep 17 00:00:00 2001 From: David Widmann Date: Thu, 2 Jun 2022 19:36:45 +0200 Subject: [PATCH] Backport #401 and prepare release of SpecialFunctions 1.8.6 (#402) * Fix `beta_inc_inv` bug introduced in #399 (#401) * Release 1.8.6 --- Project.toml | 2 +- src/beta_inc.jl | 2 +- test/beta_inc.jl | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 75e55c27..760883a2 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "SpecialFunctions" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "1.8.5" +version = "1.8.6" [deps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" diff --git a/src/beta_inc.jl b/src/beta_inc.jl index 622c8e3f..34f4a757 100644 --- a/src/beta_inc.jl +++ b/src/beta_inc.jl @@ -967,7 +967,7 @@ function _beta_inc_inv(a::Float64, b::Float64, p::Float64, q::Float64=1-p) sq = 1.0 prev = 1.0 - x = clamp(x, fpu, prevfloat(1.0)) + x = clamp(x, 0.0001, 0.9999) # This first argument was proposed in # diff --git a/test/beta_inc.jl b/test/beta_inc.jl index 36e5e528..c2133ad0 100644 --- a/test/beta_inc.jl +++ b/test/beta_inc.jl @@ -305,4 +305,10 @@ end y = 2.0e-280 @test beta_inc(2.0, 1.0, beta_inc_inv(2.0, 1.0, y, 1.0)[1])[1] ≈ y end + + @testset "StatsFuns#145" begin + y = 0.92 + @test beta_inc_inv(0.01, 0.1, y)[1] ≈ 0.7803014210919872 + @test beta_inc(0.01, 0.1, beta_inc_inv(0.01, 0.1, y)[1])[1] ≈ y + end end