From f892fd053c84c8fc5cb334567ce8122f80605801 Mon Sep 17 00:00:00 2001 From: stepan <stepan.sindelar@oracle.com> Date: Thu, 29 Dec 2016 11:58:46 +0100 Subject: [PATCH] Stats: port non-central F (nf) distribution --- .../oracle/truffle/r/library/stats/Dnf.java | 78 +++ .../truffle/r/library/stats/PNBeta.java | 2 +- .../oracle/truffle/r/library/stats/Pnf.java | 54 ++ .../oracle/truffle/r/library/stats/Qnf.java | 43 ++ .../foreign/CallAndExternalFunctions.java | 9 + .../truffle/r/test/ExpectedTestOutput.test | 480 ++++++++++++++++++ .../test/library/stats/TestDistributions.java | 9 +- .../gnu_r.core.copyright.star.regex | 2 +- mx.fastr/copyrights/overrides | 2 + 9 files changed, 676 insertions(+), 3 deletions(-) create mode 100644 com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Dnf.java create mode 100644 com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Pnf.java create mode 100644 com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Qnf.java diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Dnf.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Dnf.java new file mode 100644 index 0000000000..4b4713273b --- /dev/null +++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Dnf.java @@ -0,0 +1,78 @@ +/* + * This material is distributed under the GNU General Public License + * Version 2. You may review the terms of this license at + * http://www.gnu.org/licenses/gpl-2.0.html + * + * Copyright (c) 2006, The R Core Team + * Copyright (c) 2016, Oracle and/or its affiliates + * + * All rights reserved. + */ +/* + * AUTHOR + * Peter Ruckdeschel, peter.ruckdeschel@uni-bayreuth.de. + * April 13, 2006. + * + */ +package com.oracle.truffle.r.library.stats; + +import static com.oracle.truffle.r.library.stats.GammaFunctions.dgamma; + +import com.oracle.truffle.r.library.stats.StatsFunctions.Function4_1; + +public class Dnf implements Function4_1 { + private final DNChisq dnchisq = new DNChisq(); + private final DNBeta dnbeta = new DNBeta(); + + @Override + public double evaluate(double x, double df1, double df2, double ncp, boolean giveLog) { + if (Double.isNaN(x) || Double.isNaN(df1) || Double.isNaN(df2) || Double.isNaN(ncp)) { + return x + df2 + df1 + ncp; + } + + /* + * want to compare dnf(ncp=0) behavior with df() one, hence *NOT* : if (ncp == 0) return + * df(x, df1, df2, giveLog); + */ + + if (df1 <= 0. || df2 <= 0. || ncp < 0) { + return RMathError.defaultError(); + } + if (x < 0.) { + return DPQ.rd0(giveLog); + } + if (!Double.isFinite(ncp)) { + /* ncp = +Inf -- GnuR: fix me?: in some cases, limit exists */ + return RMathError.defaultError(); + } + + /* + * This is not correct for df1 == 2, ncp > 0 - and seems unneeded: if (x == 0.) { return(df1 + * > 2 ? DPQ.rd0(log_p) : (df1 == 2 ? DPQ.rd1 : Double.POSITIVE_INFINITY)); } + */ + if (!Double.isFinite(df1) && !Double.isFinite(df2)) { + /* both +Inf */ + /* PR: not sure about this (taken from ncp==0) -- GnuR fix me ? */ + if (x == 1.) { + return Double.POSITIVE_INFINITY; + } else { + return DPQ.rd0(giveLog); + } + } + if (!Double.isFinite(df2)) { + /* i.e. = +Inf */ + return df1 * dnchisq.evaluate(x * df1, df1, ncp, giveLog); + } + /* == dngamma(x, df1/2, 2./df1, ncp, giveLog) -- but that does not exist */ + if (df1 > 1e14 && ncp < 1e7) { + /* includes df1 == +Inf: code below is inaccurate there */ + double f = 1 + ncp / df1; /* assumes ncp << df1 [ignores 2*ncp^(1/2)/df1*x term] */ + double z = dgamma(1. / x / f, df2 / 2, 2. / df2, giveLog); + return giveLog ? z - 2 * Math.log(x) - Math.log(f) : z / (x * x) / f; + } + + double y = (df1 / df2) * x; + double z = dnbeta.evaluate(y / (1 + y), df1 / 2., df2 / 2., ncp, giveLog); + return giveLog ? z + Math.log(df1) - Math.log(df2) - 2 * RMath.log1p(y) : z * (df1 / df2) / (1 + y) / (1 + y); + } +} diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/PNBeta.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/PNBeta.java index 58795411a1..7734338fc8 100644 --- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/PNBeta.java +++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/PNBeta.java @@ -31,7 +31,7 @@ public class PNBeta implements Function4_2 { return pnbeta2(x, 1 - x, a, b, ncp, lowerTail, logP); } - private double pnbeta2(double x, double oX, double a, double b, double ncp, boolean lowerTail, boolean logP) { + double pnbeta2(double x, double oX, double a, double b, double ncp, boolean lowerTail, boolean logP) { /* LDOUBLE */ double ans = pnbetaRaw(x, oX, a, b, ncp); diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Pnf.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Pnf.java new file mode 100644 index 0000000000..56ff4406e9 --- /dev/null +++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Pnf.java @@ -0,0 +1,54 @@ +/* + * This material is distributed under the GNU General Public License + * Version 2. You may review the terms of this license at + * http://www.gnu.org/licenses/gpl-2.0.html + * + * Copyright (C) 1998 Ross Ihaka + * Copyright (c) 2000-2008, The R Core Team + * Copyright (c) 2016, Oracle and/or its affiliates + * + * All rights reserved. + */ +package com.oracle.truffle.r.library.stats; + +import com.oracle.truffle.r.library.stats.DPQ.EarlyReturn; +import com.oracle.truffle.r.library.stats.StatsFunctions.Function4_2; + +public class Pnf implements Function4_2 { + private final PNChisq pnchisq = new PNChisq(); + private final PNBeta pnbeta = new PNBeta(); + + @Override + public double evaluate(double x, double df1, double df2, double ncp, boolean lowerTail, boolean logP) { + double y; + if (Double.isNaN(x) || Double.isNaN(df1) || Double.isNaN(df2) || Double.isNaN(ncp)) { + return x + df2 + df1 + ncp; + } + if (df1 <= 0. || df2 <= 0. || ncp < 0) { + return RMathError.defaultError(); + } + if (!Double.isFinite(ncp)) { + + return RMathError.defaultError(); + } + if (!Double.isFinite(df1) && !Double.isFinite(df2)) { + /* both +Inf */ + return RMathError.defaultError(); + } + + try { + DPQ.rpbounds01(x, 0., Double.POSITIVE_INFINITY, lowerTail, logP); + } catch (EarlyReturn e) { + return e.result; + } + + if (df2 > 1e8) { + /* avoid problems with +Inf and loss of accuracy */ + return pnchisq.evaluate(x * df1, df1, ncp, lowerTail, logP); + } + + y = (df1 / df2) * x; + return pnbeta.pnbeta2(y / (1. + y), 1. / (1. + y), df1 / 2., df2 / 2., + ncp, lowerTail, logP); + } +} diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Qnf.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Qnf.java new file mode 100644 index 0000000000..7f06ef8e57 --- /dev/null +++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Qnf.java @@ -0,0 +1,43 @@ +/* + * This material is distributed under the GNU General Public License + * Version 2. You may review the terms of this license at + * http://www.gnu.org/licenses/gpl-2.0.html + * + * Copyright (c) 2006-8, The R Core Team + * Copyright (c) 2016, Oracle and/or its affiliates + * + * All rights reserved. + */ +package com.oracle.truffle.r.library.stats; + +import com.oracle.truffle.r.library.stats.DPQ.EarlyReturn; +import com.oracle.truffle.r.library.stats.StatsFunctions.Function4_2; + +public class Qnf implements Function4_2 { + private final QNChisq qnchisq = new QNChisq(); + private final QNBeta qnbeta = new QNBeta(); + + @Override + public double evaluate(double p, double df1, double df2, double ncp, boolean lowerTail, boolean logP) { + if (Double.isNaN(p) || Double.isNaN(df1) || Double.isNaN(df2) || Double.isNaN(ncp)) { + return p + df1 + df2 + ncp; + } + if (df1 <= 0. || df2 <= 0. || ncp < 0 || !Double.isFinite(ncp) || !Double.isFinite(df1) && !Double.isFinite(df2)) { + return RMathError.defaultError(); + } + + try { + DPQ.rqp01boundaries(p, 0, Double.POSITIVE_INFINITY, lowerTail, logP); + } catch (EarlyReturn e) { + return e.result; + } + + if (df2 > 1e8) { + /* avoid problems with +Inf and loss of accuracy */ + return qnchisq.evaluate(p, df1, ncp, lowerTail, logP) / df1; + } + + double y = qnbeta.evaluate(p, df1 / 2., df2 / 2., ncp, lowerTail, logP); + return y / (1 - y) * (df2 / df1); + } +} diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/CallAndExternalFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/CallAndExternalFunctions.java index 78b960ddcc..98c11aa7c7 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/CallAndExternalFunctions.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/foreign/CallAndExternalFunctions.java @@ -57,6 +57,7 @@ import com.oracle.truffle.r.library.stats.DNorm; import com.oracle.truffle.r.library.stats.DPois; import com.oracle.truffle.r.library.stats.Dbinom; import com.oracle.truffle.r.library.stats.Df; +import com.oracle.truffle.r.library.stats.Dnf; import com.oracle.truffle.r.library.stats.DoubleCentreNodeGen; import com.oracle.truffle.r.library.stats.Dt; import com.oracle.truffle.r.library.stats.Exp.DExp; @@ -82,6 +83,7 @@ import com.oracle.truffle.r.library.stats.PPois; import com.oracle.truffle.r.library.stats.Pbeta; import com.oracle.truffle.r.library.stats.Pbinom; import com.oracle.truffle.r.library.stats.Pf; +import com.oracle.truffle.r.library.stats.Pnf; import com.oracle.truffle.r.library.stats.Pnorm; import com.oracle.truffle.r.library.stats.Pt; import com.oracle.truffle.r.library.stats.QBeta; @@ -90,6 +92,7 @@ import com.oracle.truffle.r.library.stats.QNChisq; import com.oracle.truffle.r.library.stats.QPois; import com.oracle.truffle.r.library.stats.Qbinom; import com.oracle.truffle.r.library.stats.Qf; +import com.oracle.truffle.r.library.stats.Qnf; import com.oracle.truffle.r.library.stats.Qnorm; import com.oracle.truffle.r.library.stats.Qt; import com.oracle.truffle.r.library.stats.RBeta; @@ -380,6 +383,12 @@ public class CallAndExternalFunctions { return StatsFunctions.Function4_1Node.create(new DNBeta()); case "qnbeta": return StatsFunctions.Function4_2Node.create(new QNBeta()); + case "dnf": + return StatsFunctions.Function4_1Node.create(new Dnf()); + case "qnf": + return StatsFunctions.Function4_2Node.create(new Qnf()); + case "pnf": + return StatsFunctions.Function4_2Node.create(new Pnf()); case "pnbeta": return StatsFunctions.Function4_2Node.create(new PNBeta()); case "dt": diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test index 275f7e542b..1d8923274e 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test @@ -111979,6 +111979,149 @@ In dexp(0, Inf) : NaNs produced [1] -1760.26233 -Inf -Inf 3.73767 3.73767 -Inf [7] NaN +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, -1, 5, 5) +[1] NaN +Warning message: +In df(0, -1, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, -Inf, 5, 5) +[1] NaN +Warning message: +In df(0, -Inf, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 0, 5, 5) +[1] NaN +Warning message: +In df(0, 0, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, 5, -1) +[1] NaN +Warning message: +In df(0, 5, 5, -1) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, 5, -Inf) +[1] NaN +Warning message: +In df(0, 5, 5, -Inf) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, 5, 0) +[1] 0 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, 5, Inf) +[1] NaN +Warning message: +In df(0, 5, 5, Inf) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, 5, NaN) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, -1, 5) +[1] NaN +Warning message: +In df(0, 5, -1, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, -Inf, 5) +[1] NaN +Warning message: +In df(0, 5, -Inf, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, 0, 5) +[1] NaN +Warning message: +In df(0, 5, 0, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, Inf, 5) +[1] 0 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, 5, NaN, 5) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, Inf, 5, 5) +[1] NaN +Warning message: +In df(0, Inf, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(0, NaN, 5, 5) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 0.12e-10, 6, 31e10, log=F) + [1] 0 0 0 0 0 0 Inf 0 NaN NaN +Warning message: +In df(c(1, 10, 44, 123, -Inf, -4.2e-31, 0, 4.2e-31, Inf, NaN), 1.2e-11, : + NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 0.12e-10, 6, 31e10, log=T) + [1] -1.55e+11 -1.55e+11 -1.55e+11 -1.55e+11 -Inf -Inf Inf + [8] -1.55e+11 NaN NaN +Warning message: +In df(c(1, 10, 44, 123, -Inf, -4.2e-31, 0, 4.2e-31, Inf, NaN), 1.2e-11, : + NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 0.12e-10, 5, log=F) + [1] 6.000077e-12 5.999245e-13 1.364474e-13 4.871126e-14 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 1.502315e-29 NaN NaN +Warning message: +In df(c(1, 10, 44, 123, -Inf, -4.2e-31, 0, 4.2e-31, Inf, NaN), 5, : + NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 0.12e-10, 5, log=T) + [1] -25.83925 -28.14197 -29.62284 -30.65287 -Inf -Inf -Inf + [8] -66.36796 NaN NaN +Warning message: +In df(c(1, 10, 44, 123, -Inf, -4.2e-31, 0, 4.2e-31, Inf, NaN), 5, : + NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 5, 5, log=F) + [1] 3.161392e-01 9.493410e-03 9.824795e-05 3.042534e-06 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 3.034426e-46 NaN NaN +Warning message: +In df(c(1, 10, 44, 123, -Inf, -4.2e-31, 0, 4.2e-31, Inf, NaN), 5, : + NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 5, 5, log=T) + [1] -1.151573 -4.657157 -9.228016 -12.702820 -Inf -Inf + [7] -Inf -104.808892 NaN NaN +Warning message: +In df(c(1, 10, 44, 123, -Inf, -4.2e-31, 0, 4.2e-31, Inf, NaN), 5, : + NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 6, 0.12e-10, log=F) + [1] 4.450508e-01 1.824043e-03 7.828020e-06 1.409040e-07 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 3.397124e-45 NaN NaN +Warning message: +In df(c(1, 10, 44, 123, -Inf, -4.2e-31, 0, 4.2e-31, Inf, NaN), 5, : + NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# +#df(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 6, 0.12e-10, log=T) + [1] -0.8095669 -6.3066996 -11.7578009 -15.7751873 -Inf + [6] -Inf -Inf -102.3934000 NaN NaN +Warning message: +In df(c(1, 10, 44, 123, -Inf, -4.2e-31, 0, 4.2e-31, Inf, NaN), 5, : + NaNs produced + ##com.oracle.truffle.r.test.library.stats.TestDistributions.testDensityFunctions#Output.MayIgnoreWarningContext# #dgamma(0, -1, scale=2) [1] NaN @@ -112720,6 +112863,159 @@ In pexp(0, -1) : NaNs produced #pexp(c(42, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 42, lower.tail=T, log.p=T) [1] 0.00000 -Inf -Inf -Inf -66.20738 0.00000 NaN +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, -1, 5, 5) +[1] NaN +Warning message: +In pf(0, -1, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, -Inf, 5, 5) +[1] NaN +Warning message: +In pf(0, -Inf, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 0, 5, 5) +[1] NaN +Warning message: +In pf(0, 0, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, 5, -1) +[1] NaN +Warning message: +In pf(0, 5, 5, -1) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, 5, -Inf) +[1] NaN +Warning message: +In pf(0, 5, 5, -Inf) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, 5, 0) +[1] 0 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, 5, Inf) +[1] NaN +Warning message: +In pf(0, 5, 5, Inf) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, 5, NaN) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, -1, 5) +[1] NaN +Warning message: +In pf(0, 5, -1, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, -Inf, 5) +[1] NaN +Warning message: +In pf(0, 5, -Inf, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, 0, 5) +[1] NaN +Warning message: +In pf(0, 5, 0, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, Inf, 5) +[1] 0 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, 5, NaN, 5) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, Inf, 5, 5) +[1] 0 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(0, NaN, 5, 5) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 0.12e-10, 6, 31e10, lower.tail=F, log.p=F) + [1] 1 1 1 1 1 1 1 1 0 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 0.12e-10, 6, 31e10, lower.tail=F, log.p=T) + [1] 0 0 0 0 0 0 0 0 -Inf NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 0.12e-10, 6, 31e10, lower.tail=T, log.p=F) + [1] 0 0 0 0 0 0 0 0 1 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 0.12e-10, 6, 31e10, lower.tail=T, log.p=T) + [1] -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf 0 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 0.12e-10, 5, lower.tail=F, log.p=F) + [1] 1 1 1 1 1 1 1 1 0 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 0.12e-10, 5, lower.tail=F, log.p=T) + [1] -4.342122e-11 -4.739038e-11 -4.994435e-11 -5.171639e-11 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 -2.523888e-60 -Inf NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 0.12e-10, 5, lower.tail=T, log.p=F) + [1] 4.342122e-11 4.739038e-11 4.994435e-11 5.171639e-11 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 2.523888e-60 1.000000e+00 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 0.12e-10, 5, lower.tail=T, log.p=T) + [1] -23.86007 -23.77260 -23.72011 -23.68525 -Inf -Inf + [7] -Inf -137.22930 0.00000 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 5, 5, lower.tail=F, log.p=F) + [1] 0.7960368423 0.0481532307 0.0018278022 0.0001527094 1.0000000000 + [6] 1.0000000000 1.0000000000 1.0000000000 0.0000000000 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 5, 5, lower.tail=F, log.p=T) + [1] -2.281098e-01 -3.033367e+00 -6.304641e+00 -8.786974e+00 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 -5.097836e-77 -Inf NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 5, 5, lower.tail=T, log.p=F) + [1] 2.039632e-01 9.518468e-01 9.981722e-01 9.998473e-01 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 5.097836e-77 1.000000e+00 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 5, 5, lower.tail=T, log.p=T) + [1] -1.589816e+00 -4.935121e-02 -1.829475e-03 -1.527211e-04 -Inf + [6] -Inf -Inf -1.756702e+02 0.000000e+00 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 6, 0.12e-10, lower.tail=F, log.p=F) + [1] 4.894344e-01 7.119843e-03 1.191517e-04 5.854787e-06 1.000000e+00 + [6] 1.000000e+00 1.000000e+00 1.000000e+00 0.000000e+00 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 6, 0.12e-10, lower.tail=F, log.p=T) + [1] -7.145048e-01 -4.944870e+00 -9.035113e+00 -1.204825e+01 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 -5.707168e-76 -Inf NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 6, 0.12e-10, lower.tail=T, log.p=F) + [1] 5.105656e-01 9.928802e-01 9.998808e-01 9.999941e-01 0.000000e+00 + [6] 0.000000e+00 0.000000e+00 5.707168e-76 1.000000e+00 NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# +#pf(c(1, 10, 44, 123, -Inf, -0.42e-30, 0, 0.42e-30, Inf, NaN), 5, 6, 0.12e-10, lower.tail=T, log.p=T) + [1] -6.722361e-01 -7.145310e-03 -1.191588e-04 -5.854804e-06 -Inf + [6] -Inf -Inf -1.732547e+02 0.000000e+00 NaN + ##com.oracle.truffle.r.test.library.stats.TestDistributions.testDistributionFunctions#Output.MayIgnoreWarningContext# #pgamma(0, -1, scale=2) [1] NaN @@ -113710,6 +114006,190 @@ In qexp(Inf, 1.3e-19) : NaNs produced [1] 0.000000e+00 1.000000e-203 2.508584e-126 1.650350e-125 2.866602e-125 [6] Inf Inf +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(-0.42e-38, 5, 5, 5) +[1] NaN +Warning message: +In qf(-4.2e-39, 5, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(-42, 5, 5, 5) +[1] NaN +Warning message: +In qf(-42, 5, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(-Inf, 5, 5, 5) +[1] NaN +Warning message: +In qf(-Inf, 5, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, -1, 5, 5) +[1] NaN +Warning message: +In qf(0, -1, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, -Inf, 5, 5) +[1] NaN +Warning message: +In qf(0, -Inf, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 0, 5, 5) +[1] NaN +Warning message: +In qf(0, 0, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, 5, -1) +[1] NaN +Warning message: +In qf(0, 5, 5, -1) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, 5, -Inf) +[1] NaN +Warning message: +In qf(0, 5, 5, -Inf) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, 5, 0) +[1] 0 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, 5, Inf) +[1] NaN +Warning message: +In qf(0, 5, 5, Inf) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, 5, NaN) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, -1, 5) +[1] NaN +Warning message: +In qf(0, 5, -1, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, -Inf, 5) +[1] NaN +Warning message: +In qf(0, 5, -Inf, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, 0, 5) +[1] NaN +Warning message: +In qf(0, 5, 0, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, Inf, 5) +[1] 0 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, 5, NaN, 5) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, Inf, 5, 5) +[1] 0 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(0, NaN, 5, 5) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(Inf, 5, 5, 5) +[1] NaN +Warning message: +In qf(Inf, 5, 5, 5) : NaNs produced + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(NaN, 5, 5, 5) +[1] NaN + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1), 0.12e-10, 6, 31e10, lower.tail=F, log.p=F) +[1] Inf Inf 7.505999e+26 7.505999e+26 7.505999e+26 +[6] 0.000000e+00 0.000000e+00 +There were 50 or more warnings (use warnings() to see the first 50) + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1), 0.12e-10, 6, 31e10, lower.tail=T, log.p=F) +[1] 0.000000e+00 5.090863e+20 7.505999e+26 7.505999e+26 7.505999e+26 +[6] Inf Inf +There were 50 or more warnings (use warnings() to see the first 50) + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1), 5, 0.12e-10, 5, lower.tail=F, log.p=F) +[1] Inf Inf 3602.88 3602.88 3602.88 0.00 0.00 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1), 5, 0.12e-10, 5, lower.tail=T, log.p=F) +[1] 0.000000e+00 1.293365e-38 3.602880e+03 3.602880e+03 3.602880e+03 +[6] Inf Inf + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1), 5, 5, 5, lower.tail=F, log.p=F) +[1] Inf Inf 6.772533 2.075393 1.308959 0.000000 0.000000 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1), 5, 5, 5, lower.tail=T, log.p=F) +[1] 0.000000e+00 6.160198e-32 6.602106e-01 2.075393e+00 3.312503e+00 +[6] Inf Inf + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1), 5, 6, 0.12e-10, lower.tail=F, log.p=F) +[1] Inf Inf 3.1075117 0.9765364 0.6067423 0.0000000 0.0000000 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1), 5, 6, 0.12e-10, lower.tail=T, log.p=F) +[1] 0.000000e+00 2.344125e-32 2.937283e-01 9.765364e-01 1.560462e+00 +[6] Inf Inf + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(log(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1)), 0.12e-10, 6, 31e10, lower.tail=F, log.p=T) +[1] Inf Inf 7.505999e+26 7.505999e+26 7.505999e+26 +[6] 0.000000e+00 0.000000e+00 +There were 50 or more warnings (use warnings() to see the first 50) + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(log(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1)), 0.12e-10, 6, 31e10, lower.tail=T, log.p=T) +[1] 0.000000e+00 5.090863e+20 7.505999e+26 7.505999e+26 7.505999e+26 +[6] Inf Inf +There were 50 or more warnings (use warnings() to see the first 50) + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(log(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1)), 5, 0.12e-10, 5, lower.tail=F, log.p=T) +[1] Inf Inf 3602.88 3602.88 3602.88 0.00 0.00 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(log(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1)), 5, 0.12e-10, 5, lower.tail=T, log.p=T) +[1] 0.000000e+00 1.293365e-38 3.602880e+03 3.602880e+03 3.602880e+03 +[6] Inf Inf + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(log(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1)), 5, 5, 5, lower.tail=F, log.p=T) +[1] Inf Inf 6.772533 2.075393 1.308959 0.000000 0.000000 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(log(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1)), 5, 5, 5, lower.tail=T, log.p=T) +[1] 0.000000e+00 6.160198e-32 6.602106e-01 2.075393e+00 3.312503e+00 +[6] Inf Inf + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(log(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1)), 5, 6, 0.12e-10, lower.tail=F, log.p=T) +[1] Inf Inf 3.1075117 0.9765364 0.6067423 0.0000000 0.0000000 + +##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# +#qf(log(c(0, 42e-80, 0.1, 0.5, 0.7, 1-42e-80, 1)), 5, 6, 0.12e-10, lower.tail=T, log.p=T) +[1] 0.000000e+00 2.344125e-32 2.937283e-01 9.765364e-01 1.560462e+00 +[6] Inf Inf + ##com.oracle.truffle.r.test.library.stats.TestDistributions.testQuantileFunctions#Output.MayIgnoreWarningContext# #qgamma(-0.42e-38, 1, scale=2) [1] NaN diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestDistributions.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestDistributions.java index f745736a92..7b19e9e15a 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestDistributions.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestDistributions.java @@ -96,7 +96,14 @@ public class TestDistributions extends TestBase { test("10, 15, 0", withDefaultQ("10", "15", "100")). test("7, 13, 3", withDefaultQ("10", "15", "100")). test("7, 11, 0.37e-10", withQuantiles("10", "15", "100")). - test("7, 113e11, 1", withQuantiles("10", "15", "100")) + test("7, 113e11, 1", withQuantiles("10", "15", "100")), + // tests of nf (non central F distribution) + distr("f"). + addErrorParamValues("-1", "0"). + test("5, 5, 5", withDefaultQ("1", "10", "44", "123")). + test("5, 0.12e-10, 5", withDefaultQ("1", "10", "44", "123")). + test("5, 6, 0.12e-10", withDefaultQ("1", "10", "44", "123")). + test("0.12e-10, 6, 31e10", withDefaultQ("1", "10", "44", "123")) }; // @formatter:on diff --git a/mx.fastr/copyrights/gnu_r.core.copyright.star.regex b/mx.fastr/copyrights/gnu_r.core.copyright.star.regex index b89f17651f..f2659e583f 100644 --- a/mx.fastr/copyrights/gnu_r.core.copyright.star.regex +++ b/mx.fastr/copyrights/gnu_r.core.copyright.star.regex @@ -1 +1 @@ -/\*\n \* This material is distributed under the GNU General Public License\n \* Version 2. You may review the terms of this license at\n \* http://www.gnu.org/licenses/gpl-2.0.html\n \*\n \* Copyright \(c\) (?:[1-2][09][0-9][0-9]--?)?[1-2][09][0-9][0-9], The R Core Team\n \* Copyright \(c\) (?:(20[0-9][0-9]), )?(20[0-9][0-9]), Oracle and/or its affiliates\n \*\n \* All rights reserved.\n \*/\n.* +/\*\n \* This material is distributed under the GNU General Public License\n \* Version 2. You may review the terms of this license at\n \* http://www.gnu.org/licenses/gpl-2.0.html\n \*\n \* Copyright \(c\) (?:[1-2][09][0-9][0-9]--?)?(:?[1-2][09])?[0-9]?[0-9], The R Core Team\n \* Copyright \(c\) (?:(20[0-9][0-9]), )?(20[0-9][0-9]), Oracle and/or its affiliates\n \*\n \* All rights reserved.\n \*/\n.* diff --git a/mx.fastr/copyrights/overrides b/mx.fastr/copyrights/overrides index a4760a69f7..53f907be9d 100644 --- a/mx.fastr/copyrights/overrides +++ b/mx.fastr/copyrights/overrides @@ -51,6 +51,8 @@ com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/MathInit.jav com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Pbeta.java,gnu_r.core.copyright com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/PNBeta.java,gnu_r.core.copyright com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/QNBeta.java,gnu_r.core.copyright +com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Qnf.java,gnu_r.core.copyright +com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Dnf.java,gnu_r.core.copyright com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/DNBeta.java,gnu_r_ihaka_core.copyright com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/LBeta.java,gnu_r_ihaka.copyright com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Pbinom.java,gnu_r_ihaka.copyright -- GitLab