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 2020/04/11 11:54:55 UTC
[commons-math] 01/02: Avoid performance degradation of indexed
access when using a linked list.
This is an automated email from the ASF dual-hosted git repository.
erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-math.git
commit 2d8adbf5148543bebc026d984f54cc43b9e9f545
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Sat Apr 11 13:42:03 2020 +0200
Avoid performance degradation of indexed access when using a linked list.
Thanks to Artavazd Balaian.
Closes #134.
---
.../apache/commons/math4/distribution/EnumeratedDistribution.java | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/apache/commons/math4/distribution/EnumeratedDistribution.java b/src/main/java/org/apache/commons/math4/distribution/EnumeratedDistribution.java
index 5b1cd30..27f53bd 100644
--- a/src/main/java/org/apache/commons/math4/distribution/EnumeratedDistribution.java
+++ b/src/main/java/org/apache/commons/math4/distribution/EnumeratedDistribution.java
@@ -86,9 +86,8 @@ public class EnumeratedDistribution<T> implements Serializable {
NotANumberException {
singletons = new ArrayList<>(pmf.size());
final double[] probs = new double[pmf.size()];
-
- for (int i = 0; i < pmf.size(); i++) {
- final Pair<T, Double> sample = pmf.get(i);
+ int count = 0;
+ for (Pair<T, Double> sample : pmf) {
singletons.add(sample.getKey());
final double p = sample.getValue();
if (p < 0) {
@@ -100,7 +99,7 @@ public class EnumeratedDistribution<T> implements Serializable {
if (Double.isNaN(p)) {
throw new NotANumberException();
}
- probs[i] = p;
+ probs[count++] = p;
}
probabilities = MathArrays.normalizeArray(probs, 1.0);