diff --git a/src/UnitTests/SpecialFunctionsTests/GammaTests.cs b/src/UnitTests/SpecialFunctionsTests/GammaTests.cs
index 94ea8681..0bbaea59 100644
--- a/src/UnitTests/SpecialFunctionsTests/GammaTests.cs
+++ b/src/UnitTests/SpecialFunctionsTests/GammaTests.cs
@@ -94,33 +94,43 @@ namespace MathNet.Numerics.UnitTests.SpecialFunctionsTests
///
/// Gamma lower regularized.
///
- /// Value of A parameter.
- /// Input X value.
- /// Function result.
- [TestCase(double.NaN, Double.NaN, Double.NaN)]
- [TestCase(0.1, 1.0, 0.97587265627367222115949155252812057714751052498477013)]
- [TestCase(0.1, 2.0, 0.99432617602018847196075251078067514034772764693462125)]
- [TestCase(0.1, 8.0, 0.99999507519205198048686442150578226823401842046310854)]
- [TestCase(1.5, 1.0, 0.42759329552912016600095238564127189392715996802703368)]
- [TestCase(1.5, 2.0, 0.73853587005088937779717792402407879809718939080920993)]
- [TestCase(1.5, 8.0, 0.99886601571021467734329986257903021041757398191304284)]
- [TestCase(2.5, 1.0, 0.15085496391539036377410688601371365034788861473418704)]
- [TestCase(2.5, 2.0, 0.45058404864721976739416885516693969548484517509263197)]
- [TestCase(2.5, 8.0, 0.99315592607757956900093935107222761316136944145439676)]
- [TestCase(5.5, 1.0, 0.0015041182825838038421585211353488839717739161316985392)]
- [TestCase(5.5, 2.0, 0.030082976121226050615171484772387355162056796585883967)]
- [TestCase(5.5, 8.0, 0.85886911973294184646060071855669224657735916933487681)]
- public void GammaLowerRegularized(double a, double x, double f)
+ [TestCase(double.NaN, Double.NaN, Double.NaN, 14)]
+ [TestCase(0.1, 1.0, 0.97587265627367222115949155252812057714751052498477013, 14)]
+ [TestCase(0.1, 2.0, 0.99432617602018847196075251078067514034772764693462125, 14)]
+ [TestCase(0.1, 8.0, 0.99999507519205198048686442150578226823401842046310854, 14)]
+ [TestCase(1.5, 1.0, 0.42759329552912016600095238564127189392715996802703368, 14)]
+ [TestCase(1.5, 2.0, 0.73853587005088937779717792402407879809718939080920993, 14)]
+ [TestCase(1.5, 8.0, 0.99886601571021467734329986257903021041757398191304284, 14)]
+ [TestCase(2.5, 1.0, 0.15085496391539036377410688601371365034788861473418704, 14)]
+ [TestCase(2.5, 2.0, 0.45058404864721976739416885516693969548484517509263197, 14)]
+ [TestCase(2.5, 8.0, 0.99315592607757956900093935107222761316136944145439676, 14)]
+ [TestCase(5.5, 1.0, 0.0015041182825838038421585211353488839717739161316985392, 14)]
+ [TestCase(5.5, 2.0, 0.030082976121226050615171484772387355162056796585883967, 14)]
+ [TestCase(5.5, 8.0, 0.85886911973294184646060071855669224657735916933487681, 14)]
+ [TestCase(100, 0.5, 0.0, 14)]
+ [TestCase(100, 1.5, 0.0, 14)]
+ [TestCase(100, 90, 0.1582209891864301681049696996709105316998233457433473, 12)]
+ [TestCase(100, 100, 0.5132987982791486648573142565640291634709251499279450, 12)]
+ [TestCase(100, 110, 0.8417213299399129061982996209829688531933500308658222, 12)]
+ [TestCase(100, 200, 1.0, 14)]
+ [TestCase(500, 0.5, 0.0, 14)]
+ [TestCase(500, 1.5, 0.0, 14)]
+ [TestCase(500, 200, 0.0, 14)]
+ [TestCase(500, 450, 0.0107172380912897415573958770655204965434869949241480, 12)]
+ [TestCase(500, 500, 0.5059471461707603580470479574412058032802735425634263, 12)]
+ [TestCase(500, 550, 0.9853855918737048059548470006900844665580616318702748, 12)]
+ [TestCase(500, 700, 1.0, 14)]
+ [TestCase(1000, 10000, 1.0, 14)]
+ [TestCase(1e+50, 1e+48, 0.0, 14)]
+ [TestCase(1e+50, 1e+52, 1.0, 14)]
+ public void GammaLowerRegularized(double a, double x, double f, int digits)
{
- AssertHelpers.AlmostEqual(f, SpecialFunctions.GammaLowerRegularized(a, x), 14);
+ AssertHelpers.AlmostEqual(f, SpecialFunctions.GammaLowerRegularized(a, x), digits);
}
///
/// Gamma lower incomplete.
///
- /// Value of A parameter.
- /// Input X value.
- /// Function result.
[TestCase(double.NaN, Double.NaN, Double.NaN)]
[TestCase(0.1, 1.0, 9.2839720283798852469443229940217320532607158711056334)]
[TestCase(0.1, 2.0, 9.4595297305559030536119885480983751098528458886962883)]
@@ -142,35 +152,45 @@ namespace MathNet.Numerics.UnitTests.SpecialFunctionsTests
///
/// Gamma upper regularized.
///
- /// Value of A parameter.
- /// Input X value.
- /// Function result.
- [TestCase(double.NaN, Double.NaN, Double.NaN)]
- [TestCase(0.1, 1.0, 0.024127343726327778840508447471879422852489475015229)]
- [TestCase(0.1, 2.0, 0.0056738239798115280392474892193248596522723530653781)]
- [TestCase(0.1, 8.0, 0.0000049248079480195131355784942177317659815795368919702)]
- [TestCase(1.5, 1.0, 0.57240670447087983399904761435872810607284003197297)]
- [TestCase(1.5, 2.0, 0.26146412994911062220282207597592120190281060919079)]
- [TestCase(1.5, 8.0, 0.0011339842897853226567001374209697895824260180869567)]
- [TestCase(2.5, 1.0, 0.84914503608460963622589311398628634965211138526581)]
- [TestCase(2.5, 2.0, 0.54941595135278023260583114483306030451515482490737)]
- [TestCase(2.5, 8.0, 0.0068440739224204309990606489277723868386305585456026)]
- [TestCase(5.5, 1.0, 0.9984958817174161961578414788646511160282260838683)]
- [TestCase(5.5, 2.0, 0.96991702387877394938482851522761264483794320341412)]
- [TestCase(5.5, 8.0, 0.14113088026705815353939928144330775342264083066512)]
- public void GammaUpperRegularized(double a, double x, double f)
+ [TestCase(double.NaN, Double.NaN, Double.NaN, 14)]
+ [TestCase(0.1, 1.0, 0.0241273437263277773829694356333550393309597428392044, 14)]
+ [TestCase(0.1, 2.0, 0.0056738239798115280392474892193248596522723530653781, 14)]
+ [TestCase(0.1, 8.0, 0.0000049248079480195131355784942177317659815795368919702, 14)]
+ [TestCase(1.5, 1.0, 0.57240670447087983399904761435872810607284003197297, 14)]
+ [TestCase(1.5, 2.0, 0.26146412994911062220282207597592120190281060919079, 14)]
+ [TestCase(1.5, 8.0, 0.0011339842897853226567001374209697895824260180869567, 14)]
+ [TestCase(2.5, 1.0, 0.84914503608460963622589311398628634965211138526581, 14)]
+ [TestCase(2.5, 2.0, 0.54941595135278023260583114483306030451515482490737, 14)]
+ [TestCase(2.5, 8.0, 0.0068440739224204309990606489277723868386305585456026, 14)]
+ [TestCase(5.5, 1.0, 0.9984958817174161961578414788646511160282260838683, 14)]
+ [TestCase(5.5, 2.0, 0.96991702387877394938482851522761264483794320341412, 14)]
+ [TestCase(5.5, 8.0, 0.14113088026705815353939928144330775342264083066512, 14)]
+ [TestCase(100, 0.5, 1.0, 14)]
+ [TestCase(100, 1.5, 1.0, 14)]
+ [TestCase(100, 90, 0.8417790108135698318950303003290894683001766542566526, 12)]
+ [TestCase(100, 100, 0.4867012017208513351426857434359708365290748500720549, 12)]
+ [TestCase(100, 110, 0.1582786700600870938017003790170311468066499691341777, 12)]
+ [TestCase(100, 200, 0.0, 14)]
+ [TestCase(500, 0.5, 1.0, 14)]
+ [TestCase(500, 1.5, 1.0, 14)]
+ [TestCase(500, 200, 1.0, 14)]
+ [TestCase(500, 450, 0.9892827619087102584426041229344795034565130050758519, 12)]
+ [TestCase(500, 500, 0.4940528538292396419529520425587941967197264574365736, 12)]
+ [TestCase(500, 550, 0.0146144081262951940451529993099155334419383681297251, 12)]
+ [TestCase(500, 700, 0.0, 14)]
+ [TestCase(1000, 10000, 0.0, 14)]
+ [TestCase(1e+50, 1e+48, 1.0, 14)]
+ [TestCase(1e+50, 1e+52, 0.0, 14)]
+ public void GammaUpperRegularized(double a, double x, double f, int digits)
{
- AssertHelpers.AlmostEqual(f, SpecialFunctions.GammaUpperRegularized(a, x), 14);
+ AssertHelpers.AlmostEqual(f, SpecialFunctions.GammaUpperRegularized(a, x), digits);
}
///
/// Gamma upper incomplete.
///
- /// Value of A parameter.
- /// Input X value.
- /// Function result.
[TestCase(double.NaN, Double.NaN, Double.NaN)]
- [TestCase(0.1, 1.0, 0.22953567028884603886365690180350044765300023528467)]
+ [TestCase(0.1, 1.0, 0.2295356702888460382790772147651768201739736396141314)]
[TestCase(0.1, 2.0, 0.053977968112828232195991347726857391060870217694027)]
[TestCase(0.1, 8.0, 0.000046852198327948595220974570460669512682180005810156)]
[TestCase(1.5, 1.0, 0.50728223381177330984514007570018045349008617228036)]