You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2018/01/26 23:41:49 UTC
[math] Revert "MATH-1441: Cache instance of "TDistribution"."
Repository: commons-math
Updated Branches:
refs/heads/master 1f07a0bf7 -> 60bcdd450
Revert "MATH-1441: Cache instance of "TDistribution"."
This reverts commit 1f07a0bf70049cb0a2f6b52ea7c261da5adb1abb.
Caching does not seem to provide any perfomance improvement.
Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/60bcdd45
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/60bcdd45
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/60bcdd45
Branch: refs/heads/master
Commit: 60bcdd450d6950da981d70b8b08379bdd744c82d
Parents: 1f07a0b
Author: Gilles <er...@apache.org>
Authored: Sat Jan 27 00:39:45 2018 +0100
Committer: Gilles <er...@apache.org>
Committed: Sat Jan 27 00:39:45 2018 +0100
----------------------------------------------------------------------
.../math4/stat/regression/SimpleRegression.java | 26 ++++----------------
1 file changed, 5 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-math/blob/60bcdd45/src/main/java/org/apache/commons/math4/stat/regression/SimpleRegression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/stat/regression/SimpleRegression.java b/src/main/java/org/apache/commons/math4/stat/regression/SimpleRegression.java
index f7340a3..7fc823d 100644
--- a/src/main/java/org/apache/commons/math4/stat/regression/SimpleRegression.java
+++ b/src/main/java/org/apache/commons/math4/stat/regression/SimpleRegression.java
@@ -91,9 +91,6 @@ public class SimpleRegression implements Serializable, UpdatingMultipleLinearReg
/** include an intercept or not */
private final boolean hasIntercept;
-
- /** Cache (performance optimization). */
- private transient TDistribution distribution;
// ---------------------Public methods--------------------------------------
/**
@@ -700,8 +697,9 @@ public class SimpleRegression implements Serializable, UpdatingMultipleLinearReg
alpha, 0, 1);
}
// No advertised NotStrictlyPositiveException here - will return NaN above
+ TDistribution distribution = new TDistribution(n - 2);
return getSlopeStdErr() *
- getDistribution().inverseCumulativeProbability(1d - alpha / 2d);
+ distribution.inverseCumulativeProbability(1d - alpha / 2d);
}
/**
@@ -731,28 +729,14 @@ public class SimpleRegression implements Serializable, UpdatingMultipleLinearReg
return Double.NaN;
}
// No advertised NotStrictlyPositiveException here - will return NaN above
- return 2d * (1.0 - getDistribution()
- .cumulativeProbability(FastMath.abs(getSlope()) / getSlopeStdErr()));
+ TDistribution distribution = new TDistribution(n - 2);
+ return 2d * (1.0 - distribution.cumulativeProbability(
+ FastMath.abs(getSlope()) / getSlopeStdErr()));
}
// ---------------------Private methods-----------------------------------
/**
- * Computes or return a cached distribution.
- *
- * @return the distribution.
- */
- private TDistribution getDistribution() {
- final double numDeg = n - 2;
- if (distribution == null ||
- distribution.getDegreesOfFreedom() != numDeg) {
- distribution = new TDistribution(numDeg);
- }
-
- return distribution;
- }
-
- /**
* Returns the intercept of the estimated regression line, given the slope.
* <p>
* Will return <code>NaN</code> if slope is <code>NaN</code>.</p>