You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2019/05/22 09:32:59 UTC

[commons-rng] branch master updated: Update checkstyle to enforce coding style.

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-rng.git


The following commit(s) were added to refs/heads/master by this push:
     new 66ced7a  Update checkstyle to enforce coding style.
     new e73da3c  Merge pull request #44 from aherbert/update-checkstyle2
66ced7a is described below

commit 66ced7a6fcdd1548297e3ad4f0effa369263971e
Author: aherbert <ah...@apache.org>
AuthorDate: Tue May 21 12:37:56 2019 +0100

    Update checkstyle to enforce coding style.
    
    Fix all checkstyle issues.
---
 .../org/apache/commons/rng/core/BaseProvider.java  |   2 +-
 .../commons/rng/core/source32/ISAACRandom.java     |   4 +-
 .../commons/rng/core/source32/IntProvider.java     |   4 +-
 .../commons/rng/core/source32/KISSRandom.java      |   2 +-
 .../commons/rng/core/source32/MersenneTwister.java |   2 +-
 .../commons/rng/core/source64/LongProvider.java    |   8 +-
 .../rng/core/source64/MersenneTwister64.java       |   2 +-
 .../apache/commons/rng/core/source64/TwoCmres.java |   2 +-
 .../rng/examples/jmh/AbstractBenchmark.java        |   4 +-
 .../commons/rng/examples/jmh/BaselineSources.java  |   2 +-
 .../commons/rng/examples/jmh/BaselineUtils.java    |  36 +++-
 .../rng/examples/jmh/ConstructionPerformance.java  |   6 +-
 .../jmh/NextBooleanGenerationPerformance.java      |   2 +-
 .../jmh/NextBytesGenerationPerformance.java        |   2 +-
 .../jmh/NextDoubleGenerationPerformance.java       |   2 +-
 .../jmh/NextFloatGenerationPerformance.java        |   2 +-
 .../examples/jmh/NextIntGenerationPerformance.java |   2 +-
 .../jmh/NextLongGenerationPerformance.java         |   2 +-
 .../rng/examples/jmh/ThreadLocalPerformance.java   |   2 +
 .../ContinuousSamplersPerformance.java             |   4 +-
 .../distribution/DiscreteSamplersPerformance.java  |   4 +-
 .../PoissonSamplerCachePerformance.java            |   2 +-
 .../distribution/PoissonSamplersPerformance.java   |   9 +-
 .../rng/examples/jpms/app/DiceGameApplication.java |   6 +-
 .../commons/rng/examples/quadrature/ComputePi.java |   2 +-
 .../examples/quadrature/MonteCarloIntegration.java |   2 +-
 .../sampling/ExamplesSamplingApplication.java      |   2 +-
 .../examples/sampling/ManifestVersionProvider.java |   9 +-
 .../ProbabilityDensityApproximationCommand.java    |   2 +
 .../examples/stress/ExamplesStressApplication.java |  16 +-
 .../commons/rng/examples/stress/ListCommand.java   |  14 +-
 .../examples/stress/ManifestVersionProvider.java   |   9 +-
 .../commons/rng/examples/stress/OutputCommand.java |   2 +-
 .../commons/rng/examples/stress/ProcessUtils.java  |   2 +-
 .../rng/examples/stress/StressTestCommand.java     |  20 +-
 .../rng/examples/stress/StressTestDataList.java    |   4 +-
 .../AhrensDieterMarsagliaTsangGammaSampler.java    |   2 +-
 .../rng/sampling/distribution/InternalGamma.java   |   4 +-
 .../rng/sampling/distribution/InternalUtils.java   |  14 +-
 .../distribution/LargeMeanPoissonSampler.java      |  40 ++--
 .../RejectionInversionZipfSampler.java             |  10 +-
 .../ZigguratNormalizedGaussianSampler.java         |   4 +-
 .../apache/commons/rng/simple/JDKRandomBridge.java |   4 +-
 .../apache/commons/rng/simple/RandomSource.java    |   5 +-
 .../rng/simple/internal/ProviderBuilder.java       |  43 ++--
 pom.xml                                            |   9 +-
 .../checkstyle/checkstyle-suppressions.xml         |  27 +++
 src/main/resources/checkstyle/checkstyle.xml       | 235 +++++++++++++++------
 48 files changed, 375 insertions(+), 219 deletions(-)

diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/BaseProvider.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/BaseProvider.java
index 6bf5ee1..fa355c7 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/BaseProvider.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/BaseProvider.java
@@ -146,7 +146,7 @@ public abstract class BaseProvider
         final byte[] parent = new byte[parentLength];
         System.arraycopy(state, localStateLength, parent, 0, parentLength);
 
-        return new byte[][] { local, parent };
+        return new byte[][] {local, parent};
     }
 
     /**
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/ISAACRandom.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/ISAACRandom.java
index 151b474..d351ebf 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/ISAACRandom.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/ISAACRandom.java
@@ -87,7 +87,7 @@ public class ISAACRandom extends IntProvider {
     protected byte[] getStateInternal() {
         final int[] sRsl = Arrays.copyOf(rsl, SIZE);
         final int[] sMem = Arrays.copyOf(mem, SIZE);
-        final int[] sRem = Arrays.copyOf(new int[] { count, isaacA, isaacB, isaacC }, 4);
+        final int[] sRem = Arrays.copyOf(new int[] {count, isaacA, isaacB, isaacC}, 4);
 
         final int[] s = new int[2 * SIZE + sRem.length];
         System.arraycopy(sRsl, 0, s, 0, SIZE);
@@ -143,7 +143,7 @@ public class ISAACRandom extends IntProvider {
         return rsl[count--];
     }
 
-    /** Generate 256 results */
+    /** Generate 256 results. */
     private void isaac() {
         isaacI = 0;
         isaacJ = H_SIZE;
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/IntProvider.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/IntProvider.java
index dbc3640..3f5e6b9 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/IntProvider.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/IntProvider.java
@@ -49,8 +49,8 @@ public abstract class IntProvider
     /** {@inheritDoc} */
     @Override
     protected byte[] getStateInternal() {
-        final int[] state = new int[] { booleanSource,
-                                        booleanBitMask };
+        final int[] state = new int[] {booleanSource,
+                                       booleanBitMask};
         return composeStateInternal(super.getStateInternal(),
                                     NumberFactory.makeByteArray(state));
     }
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/KISSRandom.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/KISSRandom.java
index 2bf9db4..6dd2767 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/KISSRandom.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/KISSRandom.java
@@ -55,7 +55,7 @@ public class KISSRandom extends IntProvider {
     /** {@inheritDoc} */
     @Override
     protected byte[] getStateInternal() {
-        return composeStateInternal(NumberFactory.makeByteArray(new int[] { z, w, jsr, jcong }),
+        return composeStateInternal(NumberFactory.makeByteArray(new int[] {z, w, jsr, jcong}),
                                     super.getStateInternal());
     }
 
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/MersenneTwister.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/MersenneTwister.java
index 61b2175..4a771cd 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/MersenneTwister.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/MersenneTwister.java
@@ -102,7 +102,7 @@ public class MersenneTwister extends IntProvider {
     /** Period second parameter. */
     private static final int M = 397;
     /** X * MATRIX_A for X = {0, 1}. */
-    private static final int[] MAG01 = { 0x0, 0x9908b0df };
+    private static final int[] MAG01 = {0x0, 0x9908b0df};
     /** Bytes pool. */
     private int[] mt = new int[N];
     /** Current index in the bytes pool. */
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/LongProvider.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/LongProvider.java
index 5dcd3b0..764a596 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/LongProvider.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/LongProvider.java
@@ -60,10 +60,10 @@ public abstract class LongProvider
     @Override
     protected byte[] getStateInternal() {
         // Pack the boolean inefficiently as a long
-        final long[] state = new long[] { booleanSource,
-                                          booleanBitMask,
-                                          intSource,
-                                          cachedIntSource ? 1 : 0 };
+        final long[] state = new long[] {booleanSource,
+                                         booleanBitMask,
+                                         intSource,
+                                         cachedIntSource ? 1 : 0 };
         return composeStateInternal(super.getStateInternal(),
                                     NumberFactory.makeByteArray(state));
     }
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/MersenneTwister64.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/MersenneTwister64.java
index ba5822b..e5150e1 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/MersenneTwister64.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/MersenneTwister64.java
@@ -78,7 +78,7 @@ public class MersenneTwister64 extends LongProvider {
     /** Period second parameter. */
     private static final int MM = 156;
     /** X * MATRIX_A for X = {0, 1}. */
-    private static final long[] MAG01 = { 0x0, 0xb5026f5aa96619e9L };
+    private static final long[] MAG01 = {0x0L, 0xb5026f5aa96619e9L};
     /** Most significant 33 bits. */
     private static final long UM = 0xffffffff80000000L;
     /** Least significant 31 bits. */
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/TwoCmres.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/TwoCmres.java
index 9c9032c..c6150d3 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/TwoCmres.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/TwoCmres.java
@@ -119,7 +119,7 @@ public class TwoCmres extends LongProvider {
     /** {@inheritDoc} */
     @Override
     protected byte[] getStateInternal() {
-        return composeStateInternal(NumberFactory.makeByteArray(new long[] { xx, yy }),
+        return composeStateInternal(NumberFactory.makeByteArray(new long[] {xx, yy}),
                                     super.getStateInternal());
     }
 
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/AbstractBenchmark.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/AbstractBenchmark.java
index 4b6e6fe..bed7274 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/AbstractBenchmark.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/AbstractBenchmark.java
@@ -17,7 +17,6 @@
 
 package org.apache.commons.rng.examples.jmh;
 
-import org.apache.commons.rng.UniformRandomProvider;
 import org.openjdk.jmh.annotations.BenchmarkMode;
 import org.openjdk.jmh.annotations.Fork;
 import org.openjdk.jmh.annotations.Measurement;
@@ -31,7 +30,8 @@ import java.util.concurrent.TimeUnit;
 
 /**
  * Declares the JMH annotations for the benchmarks to compare the speed of generation of
- * random numbers from the various source providers for {@link UniformRandomProvider}.
+ * random numbers from the various source providers for
+ * {@link org.apache.commons.rng.UniformRandomProvider UniformRandomProvider}.
  *
  * <p>Note: Implementing this as an {@code @interface} annotation results in errors as the
  * meta-annotation is not expanded by the JMH annotation processor. The processor does however
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineSources.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineSources.java
index b3cbcab..b016109 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineSources.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineSources.java
@@ -38,7 +38,7 @@ import org.openjdk.jmh.annotations.State;
  *
  * <pre>
  * &#64;State(Scope.Benchmark)
- * public static class Sources extends BaselineSources {
+ * public static final class Sources extends BaselineSources {
  *     &#64;Override
  *     protected UniformRandomProvider createBaseline() {
  *         return BaselineUtils.getNextInt();
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineUtils.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineUtils.java
index 876e23b..26ddc52 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineUtils.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/BaselineUtils.java
@@ -35,31 +35,49 @@ public final class BaselineUtils {
      */
     private abstract static class DefaultProvider implements UniformRandomProvider {
         @Override
-        public void nextBytes(byte[] bytes) {}
+        public void nextBytes(byte[] bytes) {
+            // Do nothing
+        }
 
         @Override
-        public void nextBytes(byte[] bytes, int start, int len) {}
+        public void nextBytes(byte[] bytes, int start, int len) {
+            // Do nothing
+        }
 
         @Override
-        public int nextInt() { return 0; }
+        public int nextInt() {
+            return 0;
+        }
 
         @Override
-        public int nextInt(int n) { return 0; }
+        public int nextInt(int n) {
+            return 0;
+        }
 
         @Override
-        public long nextLong() { return 0; }
+        public long nextLong() {
+            return 0;
+        }
 
         @Override
-        public long nextLong(long n) { return 0; }
+        public long nextLong(long n) {
+            return 0;
+        }
 
         @Override
-        public boolean nextBoolean() { return false; }
+        public boolean nextBoolean() {
+            return false;
+        }
 
         @Override
-        public float nextFloat() { return 0; }
+        public float nextFloat() {
+            return 0;
+        }
 
         @Override
-        public double nextDouble() { return 0; }
+        public double nextDouble() {
+            return 0;
+        }
     }
 
     /**
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/ConstructionPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/ConstructionPerformance.java
index 7da3c95..129ee50 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/ConstructionPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/ConstructionPerformance.java
@@ -199,7 +199,7 @@ public class ConstructionPerformance {
          */
         @Override
         @SuppressWarnings("unchecked")
-        @Setup(value=Level.Trial)
+        @Setup(value = Level.Trial)
         public void setup() {
             super.setup();
             RandomSource randomSource = getRandomSource();
@@ -234,7 +234,7 @@ public class ConstructionPerformance {
         }
 
         /**
-         * Copy the specified length of the provided array object
+         * Copy the specified length of the provided array object.
          *
          * @param object the object
          * @param length the length
@@ -793,4 +793,4 @@ public class ConstructionPerformance {
             bh.consume(RandomSource.create(randomSource, byteSeeds[i]));
         }
     }
- }
+}
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextBooleanGenerationPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextBooleanGenerationPerformance.java
index 5621c8a..e9937eb 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextBooleanGenerationPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextBooleanGenerationPerformance.java
@@ -31,7 +31,7 @@ public class NextBooleanGenerationPerformance extends AbstractBenchmark {
      * The benchmark state (retrieve the various "RandomSource"s).
      */
     @State(Scope.Benchmark)
-    public static class Sources extends BaselineSources {
+    public static final class Sources extends BaselineSources {
         @Override
         protected UniformRandomProvider createBaseline() {
             return BaselineUtils.getNextBoolean();
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextBytesGenerationPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextBytesGenerationPerformance.java
index 19041c3..f99aaad 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextBytesGenerationPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextBytesGenerationPerformance.java
@@ -31,7 +31,7 @@ public class NextBytesGenerationPerformance extends AbstractBenchmark {
      * The benchmark state (retrieve the various "RandomSource"s).
      */
     @State(Scope.Benchmark)
-    public static class Sources extends BaselineSources {
+    public static final class Sources extends BaselineSources {
         @Override
         protected UniformRandomProvider createBaseline() {
             return BaselineUtils.getNextBytes();
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextDoubleGenerationPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextDoubleGenerationPerformance.java
index cfa40b2..d917fee 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextDoubleGenerationPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextDoubleGenerationPerformance.java
@@ -31,7 +31,7 @@ public class NextDoubleGenerationPerformance extends AbstractBenchmark {
      * The benchmark state (retrieve the various "RandomSource"s).
      */
     @State(Scope.Benchmark)
-    public static class Sources extends BaselineSources {
+    public static final class Sources extends BaselineSources {
         @Override
         protected UniformRandomProvider createBaseline() {
             return BaselineUtils.getNextDouble();
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextFloatGenerationPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextFloatGenerationPerformance.java
index fbd4366..1ad9789 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextFloatGenerationPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextFloatGenerationPerformance.java
@@ -31,7 +31,7 @@ public class NextFloatGenerationPerformance extends AbstractBenchmark {
      * The benchmark state (retrieve the various "RandomSource"s).
      */
     @State(Scope.Benchmark)
-    public static class Sources extends BaselineSources {
+    public static final class Sources extends BaselineSources {
         @Override
         protected UniformRandomProvider createBaseline() {
             return BaselineUtils.getNextFloat();
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextIntGenerationPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextIntGenerationPerformance.java
index 5b582b0..01a825b 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextIntGenerationPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextIntGenerationPerformance.java
@@ -32,7 +32,7 @@ public class NextIntGenerationPerformance extends AbstractBenchmark {
      * The benchmark state (retrieve the various "RandomSource"s).
      */
     @State(Scope.Benchmark)
-    public static class Sources extends BaselineSources {
+    public static final class Sources extends BaselineSources {
         @Override
         protected UniformRandomProvider createBaseline() {
             return BaselineUtils.getNextInt();
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextLongGenerationPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextLongGenerationPerformance.java
index f77fd7f..8935dc1 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextLongGenerationPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/NextLongGenerationPerformance.java
@@ -32,7 +32,7 @@ public class NextLongGenerationPerformance extends AbstractBenchmark {
      * The benchmark state (retrieve the various "RandomSource"s).
      */
     @State(Scope.Benchmark)
-    public static class Sources extends BaselineSources {
+    public static final class Sources extends BaselineSources {
         @Override
         protected UniformRandomProvider createBaseline() {
             return BaselineUtils.getNextLong();
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/ThreadLocalPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/ThreadLocalPerformance.java
index dae16e5..2477127 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/ThreadLocalPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/ThreadLocalPerformance.java
@@ -134,6 +134,7 @@ public class ThreadLocalPerformance {
     public long threadLocalRandomWrapped() {
         final ThreadLocalRandom rand = ThreadLocalRandom.current();
         final UniformRandomProvider rng = new UniformRandomProvider() {
+            // CHECKSTYLE: stop all
             @Override
             public void nextBytes(byte[] bytes) { /* Ignore this. */ }
             @Override
@@ -152,6 +153,7 @@ public class ThreadLocalPerformance {
             public float nextFloat() { return rand.nextFloat(); }
             @Override
             public double nextDouble() { return rand.nextDouble(); }
+            // CHECKSTYLE: resume all
         };
         long result = 0;
         for (int i = 0; i < numValues; i++) {
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/ContinuousSamplersPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/ContinuousSamplersPerformance.java
index 1be0ee0..47a9570 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/ContinuousSamplersPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/ContinuousSamplersPerformance.java
@@ -29,7 +29,6 @@ import org.apache.commons.rng.sampling.distribution.InverseTransformParetoSample
 import org.apache.commons.rng.sampling.distribution.LogNormalSampler;
 import org.apache.commons.rng.sampling.distribution.MarsagliaNormalizedGaussianSampler;
 import org.apache.commons.rng.sampling.distribution.ZigguratNormalizedGaussianSampler;
-import org.apache.commons.rng.simple.RandomSource;
 
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.BenchmarkMode;
@@ -58,7 +57,8 @@ import java.util.concurrent.TimeUnit;
 public class ContinuousSamplersPerformance {
     /**
      * The {@link ContinuousSampler} samplers to use for testing. Creates the sampler for each
-     * {@link RandomSource} in the default {@link RandomSources}.
+     * {@link org.apache.commons.rng.simple.RandomSource RandomSource} in the default
+     * {@link RandomSources}.
      */
     @State(Scope.Benchmark)
     public static class Sources extends RandomSources {
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/DiscreteSamplersPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/DiscreteSamplersPerformance.java
index 934c934..eef191e 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/DiscreteSamplersPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/DiscreteSamplersPerformance.java
@@ -25,7 +25,6 @@ import org.apache.commons.rng.sampling.distribution.GeometricSampler;
 import org.apache.commons.rng.sampling.distribution.LargeMeanPoissonSampler;
 import org.apache.commons.rng.sampling.distribution.RejectionInversionZipfSampler;
 import org.apache.commons.rng.sampling.distribution.SmallMeanPoissonSampler;
-import org.apache.commons.rng.simple.RandomSource;
 
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.BenchmarkMode;
@@ -54,7 +53,8 @@ import java.util.concurrent.TimeUnit;
 public class DiscreteSamplersPerformance {
     /**
      * The {@link DiscreteSampler} samplers to use for testing. Creates the sampler for each
-     * {@link RandomSource} in the default {@link RandomSources}.
+     * {@link org.apache.commons.rng.simple.RandomSource RandomSource} in the default
+     * {@link RandomSources}.
      */
     @State(Scope.Benchmark)
     public static class Sources extends RandomSources {
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/PoissonSamplerCachePerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/PoissonSamplerCachePerformance.java
index 6702711..7311cde 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/PoissonSamplerCachePerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/PoissonSamplerCachePerformance.java
@@ -130,7 +130,7 @@ public class PoissonSamplerCachePerformance {
      *
      * <p>To avoid this use a prime number above the maximum range
      * (currently 4096). Any number (n/RANGE_SAMPLES) * range will not be integer
-     * with n<RANGE_SAMPLES and range<RANGE_SAMPLES (unless n==0).
+     * with {@code n < RANGE_SAMPLES} and {@code range < RANGE_SAMPLES} (unless n==0).
      */
     private static final int RANGE_SAMPLE_SIZE = 4099;
     /** The size of the seed. */
diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/PoissonSamplersPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/PoissonSamplersPerformance.java
index e831adf..fbce71e 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/PoissonSamplersPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/PoissonSamplersPerformance.java
@@ -18,7 +18,6 @@
 package org.apache.commons.rng.examples.jmh.distribution;
 
 import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.examples.jmh.RandomSources;
 import org.apache.commons.rng.sampling.distribution.DiscreteSampler;
 import org.apache.commons.rng.sampling.distribution.KempSmallMeanPoissonSampler;
 import org.apache.commons.rng.sampling.distribution.LargeMeanPoissonSampler;
@@ -81,7 +80,8 @@ public class PoissonSamplersPerformance {
 
     /**
      * The {@link DiscreteSampler} samplers to use for testing. Creates the sampler for each
-     * {@link RandomSource} in the default {@link RandomSources}.
+     * {@link RandomSource} in the default
+     * {@link org.apache.commons.rng.examples.jmh.RandomSources RandomSources}.
      */
     @State(Scope.Benchmark)
     public static class Sources {
@@ -527,7 +527,7 @@ public class PoissonSamplersPerformance {
          */
         private static final int[] TABLE_SIZE = {
             /* mean 1 to 10. */
-             8, 10, 12, 14, 16, 18, 20, 22, 24, 25,
+            8, 10, 12, 14, 16, 18, 20, 22, 24, 25,
             /* mean 11 to 20. */
             27, 29, 30, 32, 33, 35, 36, 38, 39, 41,
         };
@@ -784,7 +784,8 @@ public class PoissonSamplersPerformance {
                 // The supported mean where p(x=0) > 0 sets a limit of around 744 so the cast to int
                 // will always be possible.
                 final int upperMean = (int) Math.ceil(mean);
-                cumulativeProbability = new double[(upperMean < TABLE_SIZE.length) ? TABLE_SIZE[upperMean] : upperMean * 2];
+                final int size = (upperMean < TABLE_SIZE.length) ? TABLE_SIZE[upperMean] : upperMean * 2;
+                cumulativeProbability = new double[size];
                 cumulativeProbability[0] = probabilityX;
 
                 guideTable = new int[cumulativeProbability.length + 1];
diff --git a/commons-rng-examples/examples-jpms/jpms-app/src/main/java/org/apache/commons/rng/examples/jpms/app/DiceGameApplication.java b/commons-rng-examples/examples-jpms/jpms-app/src/main/java/org/apache/commons/rng/examples/jpms/app/DiceGameApplication.java
index a52b701..74d4648 100644
--- a/commons-rng-examples/examples-jpms/jpms-app/src/main/java/org/apache/commons/rng/examples/jpms/app/DiceGameApplication.java
+++ b/commons-rng-examples/examples-jpms/jpms-app/src/main/java/org/apache/commons/rng/examples/jpms/app/DiceGameApplication.java
@@ -26,7 +26,7 @@ import org.apache.commons.rng.examples.jpms.lib.DiceGame;
 /**
  * Test that "commons-rng-simple" can be used as a module in Java 9.
  */
-public class DiceGameApplication {
+public final class DiceGameApplication {
     /** Line separator. */
     private static final String LINE_SEP = System.getProperty("line.separator");
     /** Required functionality. */
@@ -106,8 +106,8 @@ public class DiceGameApplication {
     private void displayModuleInfo() {
         final StringBuilder str = new StringBuilder();
 
-        for (Module mod : new Module[] { DiceGame.class.getModule(),
-                                         DiceGameApplication.class.getModule() }) {
+        for (Module mod : new Module[] {DiceGame.class.getModule(),
+                                        DiceGameApplication.class.getModule()}) {
             System.out.println("--- " + mod + " ---");
             final ModuleDescriptor desc = mod.getDescriptor();
 
diff --git a/commons-rng-examples/examples-quadrature/src/main/java/org/apache/commons/rng/examples/quadrature/ComputePi.java b/commons-rng-examples/examples-quadrature/src/main/java/org/apache/commons/rng/examples/quadrature/ComputePi.java
index 5e959da..5f500fb 100644
--- a/commons-rng-examples/examples-quadrature/src/main/java/org/apache/commons/rng/examples/quadrature/ComputePi.java
+++ b/commons-rng-examples/examples-quadrature/src/main/java/org/apache/commons/rng/examples/quadrature/ComputePi.java
@@ -84,7 +84,7 @@ public class ComputePi extends MonteCarloIntegration {
 
     /** {@inheritDoc} */
     @Override
-    protected boolean isInside(double ... rand) {
+    protected boolean isInside(double... rand) {
         final double r2 = rand[0] * rand[0] + rand[1] * rand[1];
         return r2 <= 1;
     }
diff --git a/commons-rng-examples/examples-quadrature/src/main/java/org/apache/commons/rng/examples/quadrature/MonteCarloIntegration.java b/commons-rng-examples/examples-quadrature/src/main/java/org/apache/commons/rng/examples/quadrature/MonteCarloIntegration.java
index d15a5be..8b69297 100644
--- a/commons-rng-examples/examples-quadrature/src/main/java/org/apache/commons/rng/examples/quadrature/MonteCarloIntegration.java
+++ b/commons-rng-examples/examples-quadrature/src/main/java/org/apache/commons/rng/examples/quadrature/MonteCarloIntegration.java
@@ -72,7 +72,7 @@ public abstract class MonteCarloIntegration {
      * distributed in the unit interval.
      * @return {@code true} if the {@code point} is inside.
      */
-    protected abstract boolean isInside(double ... point);
+    protected abstract boolean isInside(double... point);
 
     /**
      * @return a value from a random sequence uniformly distributed
diff --git a/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ExamplesSamplingApplication.java b/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ExamplesSamplingApplication.java
index fa36563..5a8f214 100644
--- a/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ExamplesSamplingApplication.java
+++ b/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ExamplesSamplingApplication.java
@@ -28,7 +28,7 @@ import picocli.CommandLine.RunLast;
  *   <li>Outputting data from a random generator
  * </ul>
  */
-public class ExamplesSamplingApplication {
+public final class ExamplesSamplingApplication {
     /** No public constructor. */
     private ExamplesSamplingApplication() {}
 
diff --git a/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ManifestVersionProvider.java b/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ManifestVersionProvider.java
index f20d99c..52ddd61 100644
--- a/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ManifestVersionProvider.java
+++ b/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ManifestVersionProvider.java
@@ -36,18 +36,19 @@ class ManifestVersionProvider implements IVersionProvider {
     /** {@inheritDoc} */
     @Override
     public String[] getVersion() throws Exception {
-        final Enumeration<URL> resources = ManifestVersionProvider.class.getClassLoader().getResources("META-INF/MANIFEST.MF");
+        final Enumeration<URL> resources = ManifestVersionProvider.class.getClassLoader()
+                                           .getResources("META-INF/MANIFEST.MF");
         while (resources.hasMoreElements()) {
             final URL url = resources.nextElement();
             try {
                 final Manifest manifest = new Manifest(url.openStream());
                 if (isApplicableManifest(manifest)) {
                     final Attributes attr = manifest.getMainAttributes();
-                    return new String[] { get(attr, "Implementation-Title") + " version \"" +
-                            get(attr, "Implementation-Version") + "\"" };
+                    return new String[] {get(attr, "Implementation-Title") + " version \"" +
+                            get(attr, "Implementation-Version") + "\""};
                 }
             } catch (final IOException ex) {
-                return new String[] { "Unable to read from " + url + ". " + ex };
+                return new String[] {"Unable to read from " + url + ". " + ex};
             }
         }
         return new String[0];
diff --git a/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ProbabilityDensityApproximationCommand.java b/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ProbabilityDensityApproximationCommand.java
index 85151bd..f784154 100644
--- a/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ProbabilityDensityApproximationCommand.java
+++ b/commons-rng-examples/examples-sampling/src/main/java/org/apache/commons/rng/examples/sampling/ProbabilityDensityApproximationCommand.java
@@ -174,7 +174,9 @@ class ProbabilityDensityApproximationCommand  implements Callable<Void> {
         if (allSamplers) {
             samplers = EnumSet.allOf(Sampler.class);
         } else if (samplers.isEmpty()) {
+            // CHECKSTYLE: stop regexp
             System.err.println("ERROR: No samplers specified");
+            // CHECKSTYLE: resume regexp
             System.exit(1);
         }
 
diff --git a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ExamplesStressApplication.java b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ExamplesStressApplication.java
index fcb4b04..495dfec 100644
--- a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ExamplesStressApplication.java
+++ b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ExamplesStressApplication.java
@@ -16,20 +16,18 @@
  */
 package org.apache.commons.rng.examples.stress;
 
-import org.apache.commons.rng.UniformRandomProvider;
-
 import picocli.CommandLine;
 import picocli.CommandLine.RunLast;
 
 /**
  * Executes testing utilities for the random number generators in the Commons RNG library.
  *
- * <p>The principle action is testing a generator by piping the values
- * returned by its {@link UniformRandomProvider#nextInt()} method to a
- * program that reads {@code int} values from its standard input and
- * writes an analysis report to standard output.
- * The <a href="http://www.phy.duke.edu/~rgb/General/dieharder.php">
- * "Dieharder"</a> test suite is such a software.</p>
+ * <p>The principle action is testing a generator by piping the values returned by its
+ * {@link org.apache.commons.rng.UniformRandomProvider#nextInt()
+ * UniformRandomProvider.nextInt()} method to a program that reads {@code int} values from
+ * its standard input and writes an analysis report to standard output. The <a
+ * href="http://www.phy.duke.edu/~rgb/General/dieharder.php"> "Dieharder"</a> test suite
+ * is such a software.</p>
  *
  * <p>Example of command line, assuming that "examples-stress.jar" specifies this
  * class as the "main" class (see {@link #main(String[]) main} method):</p>
@@ -46,7 +44,7 @@ import picocli.CommandLine.RunLast;
  *   <li>Testing data transfer to an application sub-process via its standard input
  * </ul>
  */
-public class ExamplesStressApplication {
+public final class ExamplesStressApplication {
     /** No public constructor. */
     private ExamplesStressApplication() {}
 
diff --git a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ListCommand.java b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ListCommand.java
index 95b0b2a..5f774e4 100644
--- a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ListCommand.java
+++ b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ListCommand.java
@@ -22,9 +22,7 @@ import picocli.CommandLine.Command;
 import picocli.CommandLine.Mixin;
 import picocli.CommandLine.Option;
 
-import java.io.Closeable;
 import java.io.IOException;
-import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Formatter;
@@ -93,15 +91,17 @@ class ListCommand implements Callable<Void> {
             writeStressTestData(sb, list);
             break;
         }
+        // CHECKSTYLE: stop regexp
         System.out.append(sb);
+        // CHECKSTYLE: resume regexp
         return null;
     }
 
     /**
      * Write the test data.
      *
-     * <p>Note: If the {@link Appendable} implements {@link Closeable} it is <strong>not</strong>
-     * closed by this method.
+     * <p>Note: If the {@link Appendable} implements {@link java.io.Closeable Closeable} it
+     * is <strong>not</strong> closed by this method.
      *
      * @param appendable The appendable.
      * @param testData The test data.
@@ -134,8 +134,8 @@ class ListCommand implements Callable<Void> {
      * <p>This allows the output to contain a configurable number of trials for the
      * list of data.
      *
-     * <p>Note: If the {@link Appendable} implements {@link Closeable} it is <strong>not</strong>
-     * closed by this method.
+     * <p>Note: If the {@link Appendable} implements {@link java.io.Closeable Closeable} it
+     * is <strong>not</strong> closed by this method.
      *
      * @param appendable The appendable.
      * @param testData The test data.
@@ -184,7 +184,7 @@ class ListCommand implements Callable<Void> {
      * @return The test data.
      * @throws IOException Signals that an I/O exception has occurred.
      * @throws ApplicationException If there was an error parsing the expected format.
-     * @see Reader#close()
+     * @see java.io.Reader#close() Reader.close()
      */
     static Iterable<StressTestData> readStressTestData(Readable readable) throws IOException {
         final List<StressTestData> list = new ArrayList<>();
diff --git a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ManifestVersionProvider.java b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ManifestVersionProvider.java
index cfe4ac0..52b55c9 100644
--- a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ManifestVersionProvider.java
+++ b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ManifestVersionProvider.java
@@ -36,18 +36,19 @@ class ManifestVersionProvider implements IVersionProvider {
     /** {@inheritDoc} */
     @Override
     public String[] getVersion() throws Exception {
-        final Enumeration<URL> resources = ManifestVersionProvider.class.getClassLoader().getResources("META-INF/MANIFEST.MF");
+        final Enumeration<URL> resources = ManifestVersionProvider.class.getClassLoader()
+                                           .getResources("META-INF/MANIFEST.MF");
         while (resources.hasMoreElements()) {
             final URL url = resources.nextElement();
             try {
                 final Manifest manifest = new Manifest(url.openStream());
                 if (isApplicableManifest(manifest)) {
                     final Attributes attr = manifest.getMainAttributes();
-                    return new String[] { get(attr, "Implementation-Title") + " version \"" +
-                            get(attr, "Implementation-Version") + "\"" };
+                    return new String[] {get(attr, "Implementation-Title") + " version \"" +
+                            get(attr, "Implementation-Version") + "\""};
                 }
             } catch (final IOException ex) {
-                return new String[] { "Unable to read from " + url + ". " + ex };
+                return new String[] {"Unable to read from " + url + ". " + ex};
             }
         }
         return new String[0];
diff --git a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/OutputCommand.java b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/OutputCommand.java
index 79ba654..f5d46cb 100644
--- a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/OutputCommand.java
+++ b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/OutputCommand.java
@@ -298,7 +298,7 @@ class OutputCommand implements Callable<Void> {
     }
 
     /**
-     * Write a header line to the output
+     * Write a header line to the output.
      *
      * @param output the output
      * @throws IOException Signals that an I/O exception has occurred.
diff --git a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ProcessUtils.java b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ProcessUtils.java
index 6f63f6c..b07aab1 100644
--- a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ProcessUtils.java
+++ b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/ProcessUtils.java
@@ -74,7 +74,7 @@ final class ProcessUtils {
             command.add(executable.getCanonicalPath());
         } catch (final IOException ex) {
             // Not expected to happen as the file has been tested to exist
-           throw new ApplicationException("Cannot resolve executable path: " + ex.getMessage(), ex);
+            throw new ApplicationException("Cannot resolve executable path: " + ex.getMessage(), ex);
         }
         command.addAll(executableArguments);
         return command;
diff --git a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/StressTestCommand.java b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/StressTestCommand.java
index acbed54..b5dd4d4 100644
--- a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/StressTestCommand.java
+++ b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/StressTestCommand.java
@@ -746,24 +746,24 @@ class StressTestCommand implements Callable<Void> {
          *      to convert byte size into human readable format in java?</a>
          */
         static String bytesToString(long bytes) {
-          // When using the smallest unit no decimal point is needed, because it's the exact number.
-          if (bytes < 1000) {
-            return bytes + " " + SI_UNITS[0];
-          }
-
-          final int exponent = (int) (Math.log(bytes) / Math.log(SI_UNIT_BASE));
-          final String unit = SI_UNITS[exponent];
-          return String.format(Locale.US, "%.1f %s", bytes / Math.pow(SI_UNIT_BASE, exponent), unit);
+            // When using the smallest unit no decimal point is needed, because it's the exact number.
+            if (bytes < 1000) {
+                return bytes + " " + SI_UNITS[0];
+            }
+
+            final int exponent = (int) (Math.log(bytes) / Math.log(SI_UNIT_BASE));
+            final String unit = SI_UNITS[exponent];
+            return String.format(Locale.US, "%.1f %s", bytes / Math.pow(SI_UNIT_BASE, exponent), unit);
         }
 
         /**
-         * Return the log2 of a {@code long} value rounded down to a power of 2:
+         * Return the log2 of a {@code long} value rounded down to a power of 2.
          *
          * @param x the value
          * @return {@code floor(log2(x))}
          */
         static int log2(long x) {
-          return 63 - Long.numberOfLeadingZeros(x);
+            return 63 - Long.numberOfLeadingZeros(x);
         }
     }
 }
diff --git a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/StressTestDataList.java b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/StressTestDataList.java
index 3a917ce..6d6c72b 100644
--- a/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/StressTestDataList.java
+++ b/commons-rng-examples/examples-stress/src/main/java/org/apache/commons/rng/examples/stress/StressTestDataList.java
@@ -32,13 +32,13 @@ class StressTestDataList implements Iterable<StressTestData> {
      * The example arguments for RandomSource values that require them.
      */
     private static final EnumMap<RandomSource, Object[]> EXAMPLE_ARGUMENTS =
-            new EnumMap <>(RandomSource.class);
+            new EnumMap<>(RandomSource.class);
 
     static {
         // Currently we cannot detect if the source requires arguments,
         // e.g. RandomSource.TWO_CMRES_SELECT. So example arguments must
         // be manually added here.
-        EXAMPLE_ARGUMENTS.put(RandomSource.TWO_CMRES_SELECT, new Object[] { 1, 2 });
+        EXAMPLE_ARGUMENTS.put(RandomSource.TWO_CMRES_SELECT, new Object[] {1, 2});
     }
 
     /** List of generators. */
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSampler.java
index bb17d54..eae39ed 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSampler.java
@@ -159,7 +159,7 @@ public class AhrensDieterMarsagliaTsangGammaSampler
     private static class LargeThetaAhrensDieterMarsagliaTsangGammaSampler
         extends BaseAhrensDieterMarsagliaTsangGammaSampler {
 
-        /** 1/3 */
+        /** 1/3. */
         private static final double ONE_THIRD = 1d / 3;
 
         /** Optimization (see code). */
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalGamma.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalGamma.java
index 8317510..c1ccc79 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalGamma.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalGamma.java
@@ -35,7 +35,7 @@ class InternalGamma { // Class is package-private on purpose; do not make it pub
      */
     public static final double LANCZOS_G = 607.0 / 128.0;
 
-    /** Lanczos coefficients */
+    /** Lanczos coefficients. */
     private static final double[] LANCZOS = {
         0.99999999999999709182,
         57.156235665862923517,
@@ -54,7 +54,7 @@ class InternalGamma { // Class is package-private on purpose; do not make it pub
         .36899182659531622704e-5,
     };
 
-    /** Avoid repeated computation of log of 2 PI in logGamma */
+    /** Avoid repeated computation of log of 2 PI in logGamma. */
     private static final double HALF_LOG_2_PI = 0.5 * Math.log(2.0 * Math.PI);
 
     /**
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalUtils.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalUtils.java
index 5a9e11b..01a6c93 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalUtils.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalUtils.java
@@ -57,7 +57,7 @@ class InternalUtils { // Class is package-private on purpose; do not make it pub
          * Precomputed values of the function:
          * {@code LOG_FACTORIALS[i] = log(i!)}.
          */
-        private final double[] LOG_FACTORIALS;
+        private final double[] logFactorials;
 
         /**
          * Creates an instance, reusing the already computed values if available.
@@ -68,7 +68,7 @@ class InternalUtils { // Class is package-private on purpose; do not make it pub
          */
         private FactorialLog(int numValues,
                              double[] cache) {
-            LOG_FACTORIALS = new double[numValues];
+            logFactorials = new double[numValues];
 
             final int beginCopy = 2;
             final int endCopy = cache == null || cache.length <= beginCopy ?
@@ -77,12 +77,12 @@ class InternalUtils { // Class is package-private on purpose; do not make it pub
 
             // Copy available values.
             for (int i = beginCopy; i < endCopy; i++) {
-                LOG_FACTORIALS[i] = cache[i];
+                logFactorials[i] = cache[i];
             }
 
             // Precompute.
             for (int i = endCopy; i < numValues; i++) {
-                LOG_FACTORIALS[i] = LOG_FACTORIALS[i - 1] + Math.log(i);
+                logFactorials[i] = logFactorials[i - 1] + Math.log(i);
             }
         }
 
@@ -104,7 +104,7 @@ class InternalUtils { // Class is package-private on purpose; do not make it pub
          * @throws IllegalArgumentException if {@code n < 0}.
          */
         public FactorialLog withCache(final int cacheSize) {
-            return new FactorialLog(cacheSize, LOG_FACTORIALS);
+            return new FactorialLog(cacheSize, logFactorials);
         }
 
         /**
@@ -116,8 +116,8 @@ class InternalUtils { // Class is package-private on purpose; do not make it pub
          */
         public double value(final int n) {
             // Use cache of precomputed values.
-            if (n < LOG_FACTORIALS.length) {
-                return LOG_FACTORIALS[n];
+            if (n < logFactorials.length) {
+                return logFactorials[n];
             }
 
             // Use cache of precomputed factorial values.
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSampler.java
index a02c131..3bb2db9 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSampler.java
@@ -81,7 +81,7 @@ public class LargeMeanPoissonSampler
     /** Algorithm constant: {@code 2 * lambda + delta}. */
     private final double twolpd;
     /**
-     * Algorithm constant: {@code a1 / aSum} with
+     * Algorithm constant: {@code a1 / aSum}.
      * <ul>
      *  <li>{@code a1 = Math.sqrt(Math.PI * twolpd) * Math.exp(c1)}</li>
      *  <li>{@code aSum = a1 + a2 + 1}</li>
@@ -89,7 +89,7 @@ public class LargeMeanPoissonSampler
      */
     private final double p1;
     /**
-     * Algorithm constant: {@code a2 / aSum} with
+     * Algorithm constant: {@code a2 / aSum}.
      * <ul>
      *  <li>{@code a2 = (twolpd / delta) * Math.exp(-delta * (1 + delta) / twolpd)}</li>
      *  <li>{@code aSum = a1 + a2 + 1}</li>
@@ -326,15 +326,15 @@ public class LargeMeanPoissonSampler
         private LargeMeanPoissonSamplerState(double lambda, double logLambda,
                 double logLambdaFactorial, double delta, double halfDelta, double twolpd,
                 double p1, double p2, double c1) {
-          this.lambda = lambda;
-          this.logLambda = logLambda;
-          this.logLambdaFactorial = logLambdaFactorial;
-          this.delta = delta;
-          this.halfDelta = halfDelta;
-          this.twolpd = twolpd;
-          this.p1 = p1;
-          this.p2 = p2;
-          this.c1 = c1;
+            this.lambda = lambda;
+            this.logLambda = logLambda;
+            this.logLambdaFactorial = logLambdaFactorial;
+            this.delta = delta;
+            this.halfDelta = halfDelta;
+            this.twolpd = twolpd;
+            this.p1 = p1;
+            this.p2 = p2;
+            this.c1 = c1;
         }
 
         /**
@@ -351,63 +351,63 @@ public class LargeMeanPoissonSampler
          * @return algorithm constant {@code lambda}
          */
         double getLambdaRaw() {
-          return lambda;
+            return lambda;
         }
 
         /**
          * @return algorithm constant {@code logLambda}
          */
         double getLogLambda() {
-          return logLambda;
+            return logLambda;
         }
 
         /**
          * @return algorithm constant {@code logLambdaFactorial}
          */
         double getLogLambdaFactorial() {
-          return logLambdaFactorial;
+            return logLambdaFactorial;
         }
 
         /**
          * @return algorithm constant {@code delta}
          */
         double getDelta() {
-          return delta;
+            return delta;
         }
 
         /**
          * @return algorithm constant {@code halfDelta}
          */
         double getHalfDelta() {
-          return halfDelta;
+            return halfDelta;
         }
 
         /**
          * @return algorithm constant {@code twolpd}
          */
         double getTwolpd() {
-          return twolpd;
+            return twolpd;
         }
 
         /**
          * @return algorithm constant {@code p1}
          */
         double getP1() {
-          return p1;
+            return p1;
         }
 
         /**
          * @return algorithm constant {@code p2}
          */
         double getP2() {
-          return p2;
+            return p2;
         }
 
         /**
          * @return algorithm constant {@code c1}
          */
         double getC1() {
-          return c1;
+            return c1;
         }
     }
 }
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSampler.java
index d948c4b..12b67ff 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSampler.java
@@ -31,11 +31,11 @@ public class RejectionInversionZipfSampler
     implements DiscreteSampler {
     /** Threshold below which Taylor series will be used. */
     private static final double TAYLOR_THRESHOLD = 1e-8;
-    /** 1/2 */
+    /** 1/2. */
     private static final double F_1_2 = 0.5;
-    /** 1/3 */
+    /** 1/3. */
     private static final double F_1_3 = 1d / 3;
-    /** 1/4 */
+    /** 1/4. */
     private static final double F_1_4 = 0.25;
     /** Number of elements. */
     private final int numberOfElements;
@@ -106,7 +106,7 @@ public class RejectionInversionZipfSampler
         // be positive and numbers are taken from [0, i_max].
         // This explains why the implementation looks slightly different.
 
-        while(true) {
+        while (true) {
             final double u = hIntegralNumberOfElements + rng.nextDouble() * (hIntegralX1 - hIntegralNumberOfElements);
             // u is uniformly distributed in (hIntegralX1, hIntegralNumberOfElements]
 
@@ -194,7 +194,7 @@ public class RejectionInversionZipfSampler
     }
 
     /**
-     * {@code h(x) = 1 / x^exponent}
+     * {@code h(x) = 1 / x^exponent}.
      *
      * @param x Free parameter.
      * @return {@code h(x)}.
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java
index bd7345d..bb9b52a 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java
@@ -45,9 +45,9 @@ public class ZigguratNormalizedGaussianSampler
     private static final double ONE_OVER_R = 1 / R;
     /** Rectangle area. */
     private static final double V = 9.91256303526217e-3;
-    /** 2^63 */
+    /** 2^63. */
     private static final double MAX = Math.pow(2, 63);
-    /** 2^-63 */
+    /** 2^-63. */
     private static final double ONE_OVER_MAX = 1d / MAX;
     /** Number of entries. */
     private static final int LEN = 128;
diff --git a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/JDKRandomBridge.java b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/JDKRandomBridge.java
index 7f8d110..1118d4e 100644
--- a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/JDKRandomBridge.java
+++ b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/JDKRandomBridge.java
@@ -47,7 +47,7 @@ public final class JDKRandomBridge extends Random {
     private final RandomSource source;
     /** Delegate. */
     private transient RestorableUniformRandomProvider delegate;
-    /** Workaround JDK's "Random" bug: https://bugs.openjdk.java.net/browse/JDK-8154225 */
+    /** Workaround JDK's "Random" bug: https://bugs.openjdk.java.net/browse/JDK-8154225. */
     private final transient boolean isInitialized;
 
     /**
@@ -105,7 +105,7 @@ public final class JDKRandomBridge extends Random {
 
         // Save current state.
         out.writeObject(((RandomProviderDefaultState) delegate.saveState()).getState());
-   }
+    }
 
     /**
      * @param in Input stream.
diff --git a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/RandomSource.java b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/RandomSource.java
index 9368b96..73277a5 100644
--- a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/RandomSource.java
+++ b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/RandomSource.java
@@ -386,8 +386,7 @@ public enum RandomSource {
      *  <li>Native seed size: 8.</li>
      * </ul>
      */
-    XO_SHI_RO_512_SS(ProviderBuilder.RandomSourceInternal.XO_SHI_RO_512_SS),
-    ;
+    XO_SHI_RO_512_SS(ProviderBuilder.RandomSourceInternal.XO_SHI_RO_512_SS);
 
     /** Internal identifier. */
     private final ProviderBuilder.RandomSourceInternal internalIdentifier;
@@ -490,7 +489,7 @@ public enum RandomSource {
      */
     public static RestorableUniformRandomProvider create(RandomSource source,
                                                          Object seed,
-                                                         Object ... data) {
+                                                         Object... data) {
         return ProviderBuilder.create(source.getInternalIdentifier(), seed, data);
     }
 
diff --git a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/internal/ProviderBuilder.java b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/internal/ProviderBuilder.java
index e1ac7cc..28f66cb 100644
--- a/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/internal/ProviderBuilder.java
+++ b/commons-rng-simple/src/main/java/org/apache/commons/rng/simple/internal/ProviderBuilder.java
@@ -86,20 +86,20 @@ public final class ProviderBuilder {
     /** Seed converter. */
     private static final ByteArray2LongArray BYTE_ARRAY_TO_LONG_ARRAY = new ByteArray2LongArray();
     /** Map to convert "Integer" seeds. */
-    private static final Map<Class<?>, SeedConverter<Integer,?>> CONV_INT =
-        new ConcurrentHashMap<Class<?>, SeedConverter<Integer,?>>();
+    private static final Map<Class<?>, SeedConverter<Integer, ?>> CONV_INT =
+        new ConcurrentHashMap<Class<?>, SeedConverter<Integer, ?>>();
     /** Map to convert "int[]" seeds. */
-    private static final Map<Class<?>, SeedConverter<int[],?>> CONV_INT_ARRAY =
-        new ConcurrentHashMap<Class<?>, SeedConverter<int[],?>>();
+    private static final Map<Class<?>, SeedConverter<int[], ?>> CONV_INT_ARRAY =
+        new ConcurrentHashMap<Class<?>, SeedConverter<int[], ?>>();
     /** Map to convert "Long" seeds. */
-    private static final Map<Class<?>, SeedConverter<Long,?>> CONV_LONG =
-        new ConcurrentHashMap<Class<?>, SeedConverter<Long,?>>();
+    private static final Map<Class<?>, SeedConverter<Long, ?>> CONV_LONG =
+        new ConcurrentHashMap<Class<?>, SeedConverter<Long, ?>>();
     /** Map to convert "long[]" seeds. */
-    private static final Map<Class<?>, SeedConverter<long[],?>> CONV_LONG_ARRAY =
-        new ConcurrentHashMap<Class<?>, SeedConverter<long[],?>>();
+    private static final Map<Class<?>, SeedConverter<long[], ?>> CONV_LONG_ARRAY =
+        new ConcurrentHashMap<Class<?>, SeedConverter<long[], ?>>();
     /** Map to convert "byte[]" seeds. */
-    private static final Map<Class<?>, SeedConverter<byte[],?>> CONV_BYTE_ARRAY =
-        new ConcurrentHashMap<Class<?>, SeedConverter<byte[],?>>();
+    private static final Map<Class<?>, SeedConverter<byte[], ?>> CONV_BYTE_ARRAY =
+        new ConcurrentHashMap<Class<?>, SeedConverter<byte[], ?>>();
 
     static {
         // Input seed type is "Long".
@@ -113,27 +113,33 @@ public final class ProviderBuilder {
         // Key is the implementation's "native" seed type.
         CONV_INT.put(Integer.class, new NoOpConverter<Integer>());
         CONV_INT.put(Long.class, INT_TO_LONG);
-        CONV_INT.put(int[].class, new SeedConverterComposer<Integer,Long,int[]>(INT_TO_LONG, LONG_TO_INT_ARRAY));
-        CONV_INT.put(long[].class, new SeedConverterComposer<Integer,Long,long[]>(INT_TO_LONG, LONG_TO_LONG_ARRAY));
+        CONV_INT.put(int[].class, new SeedConverterComposer<Integer, Long, int[]>(
+                                      INT_TO_LONG, LONG_TO_INT_ARRAY));
+        CONV_INT.put(long[].class, new SeedConverterComposer<Integer, Long, long[]>(
+                                       INT_TO_LONG, LONG_TO_LONG_ARRAY));
 
         // Input seed type is "int[]".
         // Key is the implementation's "native" seed type.
         CONV_INT_ARRAY.put(Integer.class, INT_ARRAY_TO_INT);
-        CONV_INT_ARRAY.put(Long.class, new SeedConverterComposer<int[],Integer,Long>(INT_ARRAY_TO_INT, INT_TO_LONG));
+        CONV_INT_ARRAY.put(Long.class, new SeedConverterComposer<int[], Integer, Long>(
+                                           INT_ARRAY_TO_INT, INT_TO_LONG));
         CONV_INT_ARRAY.put(int[].class, new NoOpConverter<int[]>());
         CONV_INT_ARRAY.put(long[].class, INT_ARRAY_TO_LONG_ARRAY);
 
         // Input seed type is "long[]".
         // Key is the implementation's "native" seed type.
-        CONV_LONG_ARRAY.put(Integer.class, new SeedConverterComposer<long[],Long,Integer>(LONG_ARRAY_TO_LONG, LONG_TO_INT));
+        CONV_LONG_ARRAY.put(Integer.class, new SeedConverterComposer<long[], Long, Integer>(
+                                               LONG_ARRAY_TO_LONG, LONG_TO_INT));
         CONV_LONG_ARRAY.put(Long.class, LONG_ARRAY_TO_LONG);
         CONV_LONG_ARRAY.put(int[].class, LONG_ARRAY_TO_INT_ARRAY);
         CONV_LONG_ARRAY.put(long[].class, new NoOpConverter<long[]>());
 
         // Input seed type is "byte[]".
         // Key is the implementation's "native" seed type.
-        CONV_BYTE_ARRAY.put(Integer.class, new SeedConverterComposer<byte[],int[],Integer>(BYTE_ARRAY_TO_INT_ARRAY, INT_ARRAY_TO_INT));
-        CONV_BYTE_ARRAY.put(Long.class, new SeedConverterComposer<byte[],long[],Long>(BYTE_ARRAY_TO_LONG_ARRAY, LONG_ARRAY_TO_LONG));
+        CONV_BYTE_ARRAY.put(Integer.class, new SeedConverterComposer<byte[], int[], Integer>(
+                                               BYTE_ARRAY_TO_INT_ARRAY, INT_ARRAY_TO_INT));
+        CONV_BYTE_ARRAY.put(Long.class, new SeedConverterComposer<byte[], long[], Long>(
+                                            BYTE_ARRAY_TO_LONG_ARRAY, LONG_ARRAY_TO_LONG));
         CONV_BYTE_ARRAY.put(int[].class, BYTE_ARRAY_TO_INT_ARRAY);
         CONV_BYTE_ARRAY.put(long[].class, BYTE_ARRAY_TO_LONG_ARRAY);
     }
@@ -353,8 +359,7 @@ public final class ProviderBuilder {
                            long[].class),
         /** Source of randomness is {@link XoShiRo512StarStar}. */
         XO_SHI_RO_512_SS(XoShiRo512StarStar.class,
-                         long[].class),
-        ;
+                         long[].class);
 
         /** Source type. */
         private final Class<? extends UniformRandomProvider> rng;
@@ -367,7 +372,7 @@ public final class ProviderBuilder {
          * The first element must be the native seed type.
          */
         RandomSourceInternal(Class<? extends UniformRandomProvider> rng,
-                             Class<?> ... args) {
+                             Class<?>... args) {
             this.rng = rng;
             this.args = Arrays.copyOf(args, args.length);
         }
diff --git a/pom.xml b/pom.xml
index 0916f17..b434f2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,7 +111,7 @@
     <maven.compiler.target>1.6</maven.compiler.target>
     <rng.pmd.version>3.9.0</rng.pmd.version>
     <rng.checkstyle.version>3.0.0</rng.checkstyle.version>
-    <rng.checkstyle.dep.version>8.18</rng.checkstyle.dep.version>
+    <rng.checkstyle.dep.version>8.20</rng.checkstyle.dep.version>
     <rng.mathjax.version>2.7.2</rng.mathjax.version>
     <!-- Workaround to avoid duplicating config files. -->
     <rng.parent.dir>${basedir}</rng.parent.dir>
@@ -573,10 +573,12 @@
               <includeTestSourceDirectory>false</includeTestSourceDirectory>
               <configLocation>${rng.parent.dir}/src/main/resources/checkstyle/checkstyle.xml</configLocation>
               <headerLocation>${rng.parent.dir}/src/main/resources/checkstyle/license-header.txt</headerLocation>
+              <suppressionsLocation>${rng.parent.dir}/src/main/resources/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
+              <enableRulesSummary>false</enableRulesSummary>
               <logViolationsToConsole>false</logViolationsToConsole>
               <failOnViolation>false</failOnViolation>
               <resourceExcludes>NOTICE.txt,LICENSE.txt,**/maven-archiver/pom.properties</resourceExcludes>
-              <excludes>**/module-info.java,**/generated/**.java</excludes>
+              <excludes>**/generated/**.java</excludes>
             </configuration>
             <executions>
               <execution>
@@ -609,9 +611,10 @@
             <configuration>
               <configLocation>${rng.parent.dir}/src/main/resources/checkstyle/checkstyle.xml</configLocation>
               <headerLocation>${rng.parent.dir}/src/main/resources/checkstyle/license-header.txt</headerLocation>
+              <suppressionsLocation>${rng.parent.dir}/src/main/resources/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
               <enableRulesSummary>false</enableRulesSummary>
               <includeResources>false</includeResources>
-              <excludes>**/module-info.java,**/generated/**.java</excludes>
+              <excludes>**/generated/**.java</excludes>
             </configuration>
             <reportSets>
               <reportSet>
diff --git a/src/main/resources/checkstyle/checkstyle-suppressions.xml b/src/main/resources/checkstyle/checkstyle-suppressions.xml
new file mode 100644
index 0000000..719b61e
--- /dev/null
+++ b/src/main/resources/checkstyle/checkstyle-suppressions.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<!DOCTYPE suppressions PUBLIC
+    "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
+    "https://checkstyle.org/dtds/suppressions_1_2.dtd">
+<suppressions>
+  <!-- Making these final would break API compatibility. -->
+  <suppress checks="FinalClass" files="[\\/](ListSampler|InternalGamma|InternalUtils)\.java" />
+  <!-- Special cases with many parameters for the constructor. -->
+  <suppress checks="ParameterNumber" files="[\\/]LargeMeanPoissonSampler\.java" />
+  <suppress checks="ParameterNumber" files="source64[\\/].*XoShiRo512.*\.java" />
+</suppressions>
diff --git a/src/main/resources/checkstyle/checkstyle.xml b/src/main/resources/checkstyle/checkstyle.xml
index 6cf914a..68f301e 100644
--- a/src/main/resources/checkstyle/checkstyle.xml
+++ b/src/main/resources/checkstyle/checkstyle.xml
@@ -17,83 +17,205 @@
    limitations under the License.
   -->
 
-<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.1//EN" "https://checkstyle.org/dtds/configuration_1_1.dtd">
-
-<!-- Commons RNG customization of default Checkstyle behavior -->
+<!DOCTYPE module PUBLIC
+          "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
+          "https://checkstyle.org/dtds/configuration_1_3.dtd">
+
+<!-- 
+  Commons RNG customization of default Checkstyle behaviour:
+  https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/sun_checks.xml
+-->
 <module name="Checker">
+  <module name="SuppressionFilter">
+    <!-- Default property set by maven-checkstyle-plugin -->
+    <property name="file" value="${checkstyle.suppressions.file}"/>
+    <property name="optional" value="false"/>
+  </module>
+
   <property name="localeLanguage" value="en"/>
 
-  <module name="TreeWalker">
+  <property name="fileExtensions" value="java, properties, xml" />
 
-    <!-- Operator must be at end of wrapped line -->
-    <module name="OperatorWrap">
-      <property name="option" value="eol"/>
-    </module>
+  <!-- Excludes all 'module-info.java' files -->
+  <!-- See https://checkstyle.org/config_filefilters.html -->
+  <module name="BeforeExecutionExclusionFileFilter">
+    <property name="fileNamePattern" value="module\-info\.java$" />
+  </module>
 
-    <!-- No if/else/do/for/while without braces -->
-    <module name="NeedBraces"/>
+  <!-- Checks that a package-info.java file exists for each package. -->
+  <!-- See http://checkstyle.sourceforge.net/config_javadoc.html#JavadocPackage -->
+  <module name="JavadocPackage" />
+
+  <!-- Checks whether files end with a new line. -->
+  <!-- See http://checkstyle.sourceforge.net/config_misc.html#NewlineAtEndOfFile -->
+  <module name="NewlineAtEndOfFile" />
+
+  <!-- Checks that property files contain the same keys. -->
+  <!-- See http://checkstyle.sourceforge.net/config_misc.html#Translation -->
+  <module name="Translation" />
+
+  <!-- Checks for Size Violations. -->
+  <!-- See http://checkstyle.sourceforge.net/config_sizes.html -->
+  <module name="FileLength" />
+
+  <!-- Checks for whitespace -->
+  <!-- See http://checkstyle.sourceforge.net/config_whitespace.html -->
+  <module name="FileTabCharacter" />
+
+  <!-- Miscellaneous other checks. -->
+  <!-- See http://checkstyle.sourceforge.net/config_misc.html -->
+  <module name="RegexpSingleline">
+    <property name="format" value="\s+$" />
+    <property name="minimum" value="0" />
+    <property name="maximum" value="0" />
+    <property name="message" value="Line has trailing spaces." />
+  </module>
 
-    <!-- Interfaces must be types (not just constants) -->
-    <module name="InterfaceIsType"/>
+  <!-- Checks for Headers -->
+  <!-- See http://checkstyle.sourceforge.net/config_header.html -->
+  <module name="Header">
+    <property name="headerFile" value="${checkstyle.header.file}"/>
+  </module>
 
-    <!-- Must have class / interface header comments -->
-    <module name="JavadocType"/>
+  <module name="TreeWalker">
 
-     <!-- Require method javadocs, allow undeclared RTE -->
+    <!-- Checks for Javadoc comments. -->
+    <!-- See http://checkstyle.sourceforge.net/config_javadoc.html -->
+    <!-- Require method javadocs, allow undeclared RTE -->
     <module name="JavadocMethod">
       <property name="allowUndeclaredRTE" value="true"/>
       <property name="allowThrowsTagsForSubclasses" value="true"/>
       <property name="validateThrows" value="false"/>
     </module>
+    <module name="JavadocType" />
+    <module name="JavadocVariable" />
+    <module name="JavadocStyle" />
+    <!-- <module name="MissingJavadocType"/> -->
 
-    <!-- Require field javadoc -->
-    <module name="JavadocVariable"/>
+    <!-- Checks for Naming Conventions. -->
+    <!-- See http://checkstyle.sourceforge.net/config_naming.html -->
+    <module name="ConstantName" />
+    <module name="LocalFinalVariableName" />
+    <module name="LocalVariableName" />
+    <module name="MemberName" />
+    <module name="MethodName" />
+    <module name="PackageName" />
+    <module name="ParameterName" />
+    <module name="StaticVariableName" />
+    <module name="TypeName" />
+
+    <!-- Checks for imports -->
+    <!-- See http://checkstyle.sourceforge.net/config_import.html -->
+    <module name="AvoidStarImport" />
+    <module name="IllegalImport" /> <!-- defaults to sun.* packages -->
+    <module name="RedundantImport" />
+    <module name="UnusedImports">
+      <property name="processJavadoc" value="false" />
+    </module>
 
-    <!-- No public fields -->
-    <module name="VisibilityModifier">
-       <property name="protectedAllowed" value="true"/>
+    <!-- Checks for Size Violations. -->
+    <!-- See http://checkstyle.sourceforge.net/config_sizes.html -->
+    <module name="LineLength">
+      <!-- Ignore lines that begin with " * ", such as within a Javadoc comment. -->
+      <property name="ignorePattern" value="^ *\* *[^ ]"/>
+      <property name="max" value="120"/>
+    </module>
+    <module name="MethodLength" />
+    <module name="ParameterNumber" />
+
+    <!-- Checks for whitespace -->
+    <!-- See http://checkstyle.sourceforge.net/config_whitespace.html -->
+    <module name="EmptyForIteratorPad" />
+    <module name="GenericWhitespace" />
+    <module name="MethodParamPad" />
+    <module name="NoWhitespaceAfter" />
+    <module name="NoWhitespaceBefore" />
+    <!-- Operator must be at end of wrapped line -->
+    <module name="OperatorWrap">
+      <property name="option" value="eol"/>
+    </module>
+    <module name="ParenPad" />
+    <module name="TypecastParenPad" />
+    <module name="WhitespaceAfter">
+      <property name="tokens" value="COMMA, SEMI, LITERAL_IF, LITERAL_ELSE, LITERAL_WHILE, LITERAL_DO, LITERAL_FOR, DO_WHILE"/>
+    </module>
+    <module name="WhitespaceAround">
+      <property name="allowEmptyConstructors" value="true"/>
+      <property name="allowEmptyTypes" value="true"/>
     </module>
 
-    <!-- Require hash code override when equals is -->
-    <module name="EqualsHashCode"/>
+    <!-- Modifier Checks -->
+    <!-- See http://checkstyle.sourceforge.net/config_modifiers.html -->
+    <module name="ModifierOrder" />
+    <module name="RedundantModifier" />
 
+    <!-- Checks for blocks. You know, those {}'s -->
+    <!-- See http://checkstyle.sourceforge.net/config_blocks.html -->
+    <module name="AvoidNestedBlocks" />
+    <module name="EmptyBlock" />
+    <module name="LeftCurly" />
+    <module name="NeedBraces" />
+    <module name="RightCurly" />
+
+    <!-- Checks for common coding problems -->
+    <!-- See http://checkstyle.sourceforge.net/config_coding.html -->
+    <module name="EmptyStatement" />
+    <module name="EqualsHashCode" />
+    <!-- Method parameters and local variables should not hide fields, except in constructors and setters -->
+    <module name="HiddenField">
+        <property name="ignoreConstructorParameter" value="true" />
+        <property name="ignoreSetter" value="true" />
+    </module>
     <!-- Disallow unnecessary instantiation of Boolean, String -->
     <module name="IllegalInstantiation">
       <property name="classes" value="java.lang.Boolean, java.lang.String"/>
     </module>
+    <!-- Allowed for algorithm implementations. -->
+    <!-- <module name="InnerAssignment" /> -->
+    <!-- <module name="MagicNumber" /> -->
+    <module name="MissingSwitchDefault" />
+    <module name="MultipleVariableDeclarations" />
+    <module name="SimplifyBooleanExpression" />
+    <module name="SimplifyBooleanReturn" />
 
-    <!--  Import should be explicit, really needed and only from pure java packages -->
-    <module name="AvoidStarImport" />
-    <module name="UnusedImports" />
-    <module name="IllegalImport" />
-
-    <!-- Utility class should not be instantiated, they must have a private constructor -->
+    <!-- Checks for class design -->
+    <!-- See http://checkstyle.sourceforge.net/config_design.html -->
+    <module name="DesignForExtension" />
+    <module name="FinalClass" />
     <module name="HideUtilityClassConstructor" />
+    <module name="InterfaceIsType" />
+    <!-- No public fields -->
+    <module name="VisibilityModifier">
+       <property name="protectedAllowed" value="true"/>
+    </module>
 
-    <!-- Switch statements should be complete and with independent cases -->
-    <module name="FallThrough" />
-    <module name="MissingSwitchDefault" />
+    <!-- Miscellaneous other checks. -->
+    <!-- See http://checkstyle.sourceforge.net/config_misc.html -->
+    <module name="ArrayTypeStyle" />
+    <!-- <module name="FinalParameters" />  -->
+    <module name="TodoComment">
+      <property name="severity" value="warning"/>
+    </module>
+    <module name="UpperEll" />
 
-    <!-- Constant names should obey the traditional all uppercase naming convention -->
-    <module name="ConstantName" />
+    <!-- Addition to Checkstyle sun_checks.xml  -->
 
-    <!-- Method parameters and local variables should not hide fields, except in constructors and setters -->
-    <module name="HiddenField">
-        <property name="ignoreConstructorParameter" value="true" />
-        <property name="ignoreSetter" value="true" />
+    <!-- Indentation of 4 spaces. -->
+    <module name="Indentation">
+      <!-- Indentation style recommended by Oracle -->
+      <property name="caseIndent" value="0"/>
     </module>
 
-    <!-- No trailing whitespace -->
-    <module name="Regexp">
-      <property name="format" value="[ \t]+$"/>
-      <property name="illegalPattern" value="true"/>
-      <property name="message" value="Trailing whitespace"/>
-    </module>
+    <!-- Switch statements should have independent cases -->
+    <module name="FallThrough" />
+
+    <!-- Constant names should obey the traditional all uppercase naming convention -->
+    <module name="ConstantName" />
 
     <!-- No System.out.println() statements -->
     <module name="Regexp">
       <!-- no sysouts -->
-      <property name="format" value="System\.out\.println"/>
+      <property name="format" value="System\.(out|err)\."/>
       <property name="illegalPattern" value="true"/>
     </module>
 
@@ -101,13 +223,9 @@
     <module name="Regexp">
       <property name="format" value="@author"/>
       <property name="illegalPattern" value="true"/>
-      <property name="message" value="developers names should be in pom file"/>
+      <property name="message" value="Developers names should be in pom file"/>
     </module>
 
-    <!-- Use a consistent way to put modifiers -->
-    <module name="RedundantModifier" />
-    <module name="ModifierOrder" />
-
     <!-- Use a consistent way to put declarations -->
     <module name="DeclarationOrder" />
 
@@ -120,9 +238,6 @@
     <!-- Don't use = or != for string comparisons -->
     <module name="StringLiteralEquality" />
 
-   <!-- Don't declare multiple variables in the same statement -->
-    <module name="MultipleVariableDeclarations" />
-
     <!-- String literals more than one character long should not be repeated several times -->
     <!-- the "unchecked" string is also accepted to allow @SuppressWarnings("unchecked") -->
     <module name="MultipleStringLiterals" >
@@ -132,8 +247,6 @@
     <!-- Check if @Override tags are present  -->
     <module name="MissingOverride" />
 
-    <!-- <module name="TodoComment" /> -->
-
     <!-- Setup special comments to suppress specific checks from source files -->
     <module name="SuppressionCommentFilter">
       <property name="offCommentFormat" value="CHECKSTYLE\: stop ([\w\|]+)"/>
@@ -147,18 +260,4 @@
 
   </module>
 
-  <!-- Verify that EVERY source file has the appropriate license -->
-  <module name="Header">
-    <property name="headerFile" value="${checkstyle.header.file}"/>
-  </module>
-
-  <!-- No tabs allowed! -->
-  <module name="FileTabCharacter"/>
-
-  <!-- Require files to end with newline characters -->
-  <module name="NewlineAtEndOfFile"/>
-
-  <!-- Require package javadoc -->
-  <module name="JavadocPackage"/>
-
 </module>