diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ffi/TruffleStats.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ffi/TruffleStats.java index 61e65d2a56178c322cf64254da17893eeb073e72..5b1e109739e81e9de6d10eebe6682106e75ed578 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ffi/TruffleStats.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ffi/TruffleStats.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,6 @@ */ package com.oracle.truffle.r.engine.interop.ffi; -import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.Cached; import com.oracle.truffle.api.dsl.ImportStatic; import com.oracle.truffle.api.dsl.Specialization; @@ -38,9 +37,9 @@ import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.context.RContext; import com.oracle.truffle.r.runtime.context.RContext.ContextState; import com.oracle.truffle.r.runtime.ffi.DLL; -import com.oracle.truffle.r.runtime.ffi.StatsRFFI; import com.oracle.truffle.r.runtime.ffi.DLL.DLLInfo; import com.oracle.truffle.r.runtime.ffi.DLL.SymbolHandle; +import com.oracle.truffle.r.runtime.ffi.StatsRFFI; import com.oracle.truffle.r.runtime.ffi.truffle.TruffleRFFIFrameHelper; public class TruffleStats implements StatsRFFI { diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RandFunctionsNodes.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RandFunctionsNodes.java index 2620717f91ce17fc5e8f2917c0bf27115efab34e..fbce73fb73800a67a6cb336ba21117f8eb333176 100644 --- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RandFunctionsNodes.java +++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RandFunctionsNodes.java @@ -258,7 +258,6 @@ public final class RandFunctionsNodes { } // Note: for completeness of the API - @SuppressWarnings("unused") public static RandFunction3Node createDouble(RandFunction3_Double function) { return RandFunction3NodeGen.create(RandFunctionsNodesFactory.RandFunctionDoubleExecutorNodeGen.create(function)); } diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Utf8ToInt.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Utf8ToInt.java index 85b423645f69c4f0ac9df19b344c4d7be714a410..78f43eea82748a79a23c81341b4ddeb75fd6cacb 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Utf8ToInt.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Utf8ToInt.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,7 +36,6 @@ import com.oracle.truffle.r.runtime.RRuntime; import com.oracle.truffle.r.runtime.builtins.RBuiltin; import com.oracle.truffle.r.runtime.data.RDataFactory; import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; -import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector; @RBuiltin(name = "utf8ToInt", kind = INTERNAL, parameterNames = {"x"}, behavior = PURE) public abstract class Utf8ToInt extends RBuiltinNode { diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/InternalNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/InternalNode.java index 48ff3250322af8cda13932b504247456e30646be..3da7a4f3d7d028bd017e67977844a76da85ee241 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/InternalNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/InternalNode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,6 @@ import com.oracle.truffle.r.runtime.ArgumentsSignature; import com.oracle.truffle.r.runtime.RError; import com.oracle.truffle.r.runtime.RError.Message; import com.oracle.truffle.r.runtime.RInternalError; -import com.oracle.truffle.r.runtime.builtins.RBuiltinDescriptor; import com.oracle.truffle.r.runtime.builtins.RBuiltinKind; import com.oracle.truffle.r.runtime.conn.RConnection; import com.oracle.truffle.r.runtime.context.RContext; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ClassHierarchyNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ClassHierarchyNode.java index 14e18c0155505da31caab95ef8bd77c832173ecc..7f2731c16c21bafacd51dcdc50294d4ba343fa98 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ClassHierarchyNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ClassHierarchyNode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -126,8 +126,7 @@ public abstract class ClassHierarchyNode extends UnaryNode { // sees two different classes attributes = ((RAttributeStorage) arg).getAttributes(); } else { - arg = argProfile.profile(arg); - attributes = arg.getAttributes(); + attributes = argProfile.profile(arg).getAttributes(); } if (noAttributesProfile.profile(attributes != null)) { if (access == null) { @@ -136,7 +135,7 @@ public abstract class ClassHierarchyNode extends UnaryNode { } RStringVector classHierarchy = (RStringVector) access.execute(attributes); if (nullAttributeProfile.profile(classHierarchy != null)) { - if (withS4 && arg.isS4() && isS4Profile.profile(classHierarchy.getLength() > 0)) { + if (withS4 && argProfile.profile(arg).isS4() && isS4Profile.profile(classHierarchy.getLength() > 0)) { if (s4Class == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); s4Class = insert(S4ClassNodeGen.create()); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/GammaFunctions.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/GammaFunctions.java index bdcf8ff0a4f57ea36de5c84f7b4b1416afe34bab..16916dcb88c5ebf8ef2b35918ce9eb1a0ba1c4b2 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/GammaFunctions.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/GammaFunctions.java @@ -28,9 +28,7 @@ import static com.oracle.truffle.r.runtime.nmath.DPQ.rdtqiv; import static com.oracle.truffle.r.runtime.nmath.DPQ.rlog1exp; import static com.oracle.truffle.r.runtime.nmath.MathConstants.DBL_EPSILON; import static com.oracle.truffle.r.runtime.nmath.MathConstants.DBL_MIN; -import static com.oracle.truffle.r.runtime.nmath.MathConstants.M_1_SQRT_2PI; import static com.oracle.truffle.r.runtime.nmath.MathConstants.M_LN2; -import static com.oracle.truffle.r.runtime.nmath.MathConstants.M_SQRT_32; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; @@ -97,7 +95,7 @@ public abstract class GammaFunctions { * Should be used in places where GnuR itself uses std libc function {@code lgamma}. Under the * hood it uses {@link #lgammafn(double)}. */ - public static double lgamma(@SuppressWarnings("unused") double x) { + public static double lgamma(double x) { return lgammafn(x); } @@ -1181,160 +1179,4 @@ public abstract class GammaFunctions { pr = DPois.dpoisRaw(shape - 1, x / scale, giveLog); return giveLog ? pr - Math.log(scale) : pr / scale; } - - private static final double SIXTEN = 16; /* Cutoff allowing exact "*" and "/" */ - - @CompilationFinal private static final double[] pba = new double[]{2.2352520354606839287, 161.02823106855587881, 1067.6894854603709582, 18154.981253343561249, 0.065682337918207449113}; - @CompilationFinal private static final double[] pbb = new double[]{47.20258190468824187, 976.09855173777669322, 10260.932208618978205, 45507.789335026729956}; - @CompilationFinal private static final double[] pbc = new double[]{0.39894151208813466764, 8.8831497943883759412, 93.506656132177855979, 597.27027639480026226, 2494.5375852903726711, - 6848.1904505362823326, 11602.651437647350124, 9842.7148383839780218, 1.0765576773720192317e-8}; - @CompilationFinal private static final double[] pbd = new double[]{22.266688044328115691, 235.38790178262499861, 1519.377599407554805, 6485.558298266760755, 18615.571640885098091, - 34900.952721145977266, 38912.003286093271411, 19685.429676859990727}; - @CompilationFinal private static final double[] pbp = new double[]{0.21589853405795699, 0.1274011611602473639, 0.022235277870649807, 0.001421619193227893466, 2.9112874951168792e-5, - 0.02307344176494017303}; - @CompilationFinal private static final double[] pbq = new double[]{1.28426009614491121, 0.468238212480865118, 0.0659881378689285515, 0.00378239633202758244, 7.29751555083966205e-5}; - - private static void doDel(double xpar, double x, double temp, double[] cum, double[] ccum, boolean logp, boolean lower, boolean upper) { - double xsq = (long) (xpar * SIXTEN) / SIXTEN; - double del = (xpar - xsq) * (xpar + xsq); - if (logp) { - cum[0] = (-xsq * xsq * 0.5) + (-del * 0.5) + Math.log(temp); - if ((lower && x > 0.) || (upper && x <= 0.)) { - ccum[0] = RMath.log1p(-Math.exp(-xsq * xsq * 0.5) * Math.exp(-del * 0.5) * temp); - } - } else { - cum[0] = Math.exp(-xsq * xsq * 0.5) * Math.exp(-del * 0.5) * temp; - ccum[0] = 1.0 - cum[0]; - } - } - - private static void swapTail(double x, double[] cum, double[] ccum, boolean lower) { - if (x > 0.) { /* swap ccum <--> cum */ - double temp; - temp = cum[0]; - if (lower) { - cum[0] = ccum[0]; - ccum[0] = temp; - } - } - } - - private static void pnormBoth(double x, double[] cum, double[] ccum, int iTail, boolean logp) { - /* - * i_tail in {0,1,2} means: "lower", "upper", or "both" : if(lower) return *cum := P[X <= x] - * if(upper) return *ccum := P[X > x] = 1 - P[X <= x] - */ - double xden; - double xnum; - double temp; - double eps; - double xsq; - double y; - int i; - boolean lower; - boolean upper; - - if (Double.isNaN(x)) { - cum[0] = x; - ccum[0] = x; - return; - } - - /* Consider changing these : */ - eps = DBL_EPSILON * 0.5; - - /* i_tail in {0,1,2} =^= {lower, upper, both} */ - lower = iTail != 1; - upper = iTail != 0; - - y = Math.abs(x); - if (y <= 0.67448975) { /* qnorm(3/4) = .6744.... -- earlier had 0.66291 */ - if (y > eps) { - xsq = x * x; - xnum = pba[4] * xsq; - xden = xsq; - for (i = 0; i < 3; i++) { - xnum = (xnum + pba[i]) * xsq; - xden = (xden + pbb[i]) * xsq; - } - } else { - xnum = xden = 0.0; - } - - temp = x * (xnum + pba[3]) / (xden + pbb[3]); - if (lower) { - cum[0] = 0.5 + temp; - } - if (upper) { - ccum[0] = 0.5 - temp; - } - if (logp) { - if (lower) { - cum[0] = Math.log(cum[0]); - } - if (upper) { - ccum[0] = Math.log(ccum[0]); - } - } - } else if (y <= M_SQRT_32) { - /* Evaluate pnorm for 0.674.. = qnorm(3/4) < |x| <= sqrt(32) ~= 5.657 */ - - xnum = pbc[8] * y; - xden = y; - for (i = 0; i < 7; i++) { - xnum = (xnum + pbc[i]) * y; - xden = (xden + pbd[i]) * y; - } - temp = (xnum + pbc[7]) / (xden + pbd[7]); - - doDel(y, x, temp, cum, ccum, logp, lower, upper); - swapTail(x, cum, ccum, lower); - /* - * else |x| > sqrt(32) = 5.657 : the next two case differentiations were really for - * lower=T, log=F Particularly *not* for log_p ! - * - * Cody had (-37.5193 < x && x < 8.2924) ; R originally had y < 50 - * - * Note that we do want symmetry(0), lower/upper -> hence use y - */ - } else if ((logp && y < 1e170) /* avoid underflow below */ - /* - * ^^^^^ MM FIXME: can speedup for log_p and much larger |x| ! Then, make use of Abramowitz - * & Stegun, 26.2.13, something like - * - * xsq = x*x; - * - * if(xsq * DBL_EPSILON < 1.) del = (1. - (1. - 5./(xsq+6.)) / (xsq+4.)) / (xsq+2.); else - * del = 0.;cum = -.5*xsq - M_LN_SQRT_2PI - log(x) + log1p(-del);ccum = log1p(-exp(*cum)); - * /.* ~ log(1) = 0 *./ - * - * swap_tail; - * - * [Yes, but xsq might be infinite.] - */ - || (lower && -37.5193 < x && x < 8.2924) || (upper && -8.2924 < x && x < 37.5193)) { - - /* Evaluate pnorm for x in (-37.5, -5.657) union (5.657, 37.5) */ - xsq = 1.0 / (x * x); /* (1./x)*(1./x) might be better */ - xnum = pbp[5] * xsq; - xden = xsq; - for (i = 0; i < 4; i++) { - xnum = (xnum + pbp[i]) * xsq; - xden = (xden + pbq[i]) * xsq; - } - temp = xsq * (xnum + pbp[4]) / (xden + pbq[4]); - temp = (M_1_SQRT_2PI - temp) / y; - - doDel(x, x, temp, cum, ccum, logp, lower, upper); - swapTail(x, cum, ccum, lower); - } else { /* large x such that probs are 0 or 1 */ - if (x > 0) { - cum[0] = rd1(logp); - ccum[0] = rd0(logp); - } else { - cum[0] = rd0(logp); - ccum[1] = rd1(logp); - } - } - } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/RMathError.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/RMathError.java index 1a84e36b8071db95b1655f1395f20ab3920e9ee1..3bcc7fa1188163c1f8ea8e0e4b59c483cade27a8 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/RMathError.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/RMathError.java @@ -56,7 +56,7 @@ public final class RMathError { * {@link MLError#DOMAIN} a warning is reported by this method, otherwise the caller should * return {@code NaN}, which should be handled by the caller's caller. */ - public static double error(@SuppressWarnings("unused") MLError error, @SuppressWarnings("unused") String messageArg) { + public static double error(MLError error, String messageArg) { if (error != MLError.DOMAIN) { error.warning(messageArg); } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/DNBinom.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/DNBinom.java index db4450b3df8d8a8f34d2fa8bcced3e6541d4079f..3e3c7b85963f924f9c1a5a70889df3a81db8712d 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/DNBinom.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/DNBinom.java @@ -100,28 +100,28 @@ public final class DNBinom { if (x == 0 && size == 0) { return DPQ.rd1(giveLog); } - x = RMath.forceint(x); + double xi = RMath.forceint(x); if (!Double.isFinite(size)) { // limit case: Poisson - return (dpoisRaw(x, mu, giveLog)); + return (dpoisRaw(xi, mu, giveLog)); } - if (x == 0)/* be accurate, both for n << mu, and n >> mu : */ { + if (xi == 0)/* be accurate, both for n << mu, and n >> mu : */ { double ans = size * (size < mu ? Math.log(size / (size + mu)) : RMath.log1p(-mu / (size + mu))); return DPQ.rdexp(ans, giveLog); } - if (x < 1e-10 * size) { /* don't use dbinom_raw() but MM's formula: */ + if (xi < 1e-10 * size) { /* don't use dbinom_raw() but MM's formula: */ /* GnuR fix me --- 1e-8 shows problem; rather use algdiv() from ./toms708.c */ double p = (size < mu ? Math.log(size / (1 + size / mu)) : Math.log(mu / (1 + mu / size))); - double ans = x * p - mu - lgamma(x + 1) + RMath.log1p(x * (x - 1) / (2 * size)); + double ans = xi * p - mu - lgamma(xi + 1) + RMath.log1p(xi * (xi - 1) / (2 * size)); return DPQ.rdexp(ans, giveLog); } else { /* * no unnecessary cancellation inside dbinom_raw, when x_ = size and n_ = x+size are * so close that n_ - x_ loses accuracy */ - double p = size / (size + x); - double ans = Dbinom.dbinomRaw(size, x + size, size / (size + mu), mu / (size + mu), giveLog); + double p = size / (size + xi); + double ans = Dbinom.dbinomRaw(size, xi + size, size / (size + mu), mu / (size + mu), giveLog); return ((giveLog) ? Math.log(p) + ans : p * ans); } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/PNBeta.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/PNBeta.java index 1cbea63b5195ebbb7b51786c5df4af12656eba46..ae7182e481207b1f17368ca997635eedcdfba42e 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/PNBeta.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/PNBeta.java @@ -34,7 +34,7 @@ public final class PNBeta implements Function4_2 { return pnbeta2(x, 1 - x, a, b, ncp, lowerTail, logP); } - double pnbeta2(double x, double oX, double a, double b, double ncp, boolean lowerTail, boolean logP) { + static 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); @@ -69,7 +69,7 @@ public final class PNBeta implements Function4_2 { * GnuR: 100 is not enough for pf(ncp=200) see PR#11277 */ - double pnbetaRaw(double x, double oX, double a, double b, double ncp) { + static double pnbetaRaw(double x, double oX, double a, double b, double ncp) { /* oX == 1 - x but maybe more accurate */ if (ncp < 0. || a <= 0. || b <= 0.) { return RMathError.defaultError(); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/Pnf.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/Pnf.java index a1e22e8dcb4920ee5addd2d8f08ee79c41ae0055..22b7e2d4983a4e1f6a80b67245e4fa2c3c00d153 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/Pnf.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/Pnf.java @@ -18,7 +18,6 @@ import com.oracle.truffle.r.runtime.nmath.RMathError; public final 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) { @@ -50,7 +49,6 @@ public final class Pnf implements Function4_2 { } y = (df1 / df2) * x; - return pnbeta.pnbeta2(y / (1. + y), 1. / (1. + y), df1 / 2., df2 / 2., - ncp, lowerTail, logP); + return PNBeta.pnbeta2(y / (1. + y), 1. / (1. + y), df1 / 2., df2 / 2., ncp, lowerTail, logP); } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/QNChisq.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/QNChisq.java index 45ca7537a4c647a0b010f7dd17b9e40d8b6cf95e..f7a9cb7c13d9e4162b188c11dd1ae56142b2496f 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/QNChisq.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/QNChisq.java @@ -111,11 +111,11 @@ public final class QNChisq implements Function3_2 { /** * Is greater that changes to is lower if {@code lowerTail} is {@code false}. */ - private boolean isGreater(boolean lowerTail, double raw, double p) { + private static boolean isGreater(boolean lowerTail, double raw, double p) { return (lowerTail && raw > p) || (!lowerTail && raw < p); } - private boolean isLower(boolean lowerTail, double raw, double p) { + private static boolean isLower(boolean lowerTail, double raw, double p) { return (lowerTail && raw < p) || (!lowerTail && raw > p); } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/Wilcox.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/Wilcox.java index feee67ad955d2b5d72f1f0efcf95b942adecfe48..72ff4f983a427afec9810e53b2261df454735634 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/Wilcox.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/nmath/distr/Wilcox.java @@ -336,7 +336,7 @@ public final class Wilcox { } @TruffleBoundary - private double rwilcoxRaw(RandomNumberProvider rand, double n, int kIn) { + private static double rwilcoxRaw(RandomNumberProvider rand, double n, int kIn) { double r = 0.0; int k = kIn; int[] x;