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

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

commit e91e4c49903471d05b40cf377d0da24f4583d230
Author: Alex Herbert <[email protected]>
AuthorDate: Fri Sep 18 20:55:29 2026 +0100

    Add sample command to distribution example application
---
 .../examples-distribution/HOWTO.md                 |  1 +
 .../examples-distribution/pom.xml                  |  8 +++--
 .../AbstractContinuousDistributionCommand.java     |  4 +++
 .../AbstractDiscreteDistributionCommand.java       |  4 +++
 .../examples/distribution/BetaCommand.java         | 15 ++++++++
 .../examples/distribution/BinomialCommand.java     | 15 ++++++++
 .../examples/distribution/CauchyCommand.java       | 15 ++++++++
 .../examples/distribution/ChiSquaredCommand.java   | 15 ++++++++
 .../examples/distribution/DistributionUtils.java   | 40 ++++++++++++++++++++++
 .../examples/distribution/ExpCommand.java          | 15 ++++++++
 .../statistics/examples/distribution/FCommand.java | 15 ++++++++
 .../examples/distribution/FoldedNormalCommand.java | 15 ++++++++
 .../examples/distribution/GammaCommand.java        | 15 ++++++++
 .../examples/distribution/GeometricCommand.java    | 15 ++++++++
 .../examples/distribution/GumbelCommand.java       | 15 ++++++++
 .../distribution/HypergeometricCommand.java        | 15 ++++++++
 .../examples/distribution/LaplaceCommand.java      | 15 ++++++++
 .../examples/distribution/LevyCommand.java         | 15 ++++++++
 .../examples/distribution/LogNormalCommand.java    | 15 ++++++++
 .../examples/distribution/LogUniformCommand.java   | 15 ++++++++
 .../examples/distribution/LogisticCommand.java     | 15 ++++++++
 .../examples/distribution/NakagamiCommand.java     | 15 ++++++++
 .../examples/distribution/NormalCommand.java       | 15 ++++++++
 .../examples/distribution/ParetoCommand.java       | 15 ++++++++
 .../examples/distribution/PascalCommand.java       | 15 ++++++++
 .../examples/distribution/PoissonCommand.java      | 15 ++++++++
 .../examples/distribution/SampleOptions.java       | 38 ++++++++++++++++++++
 .../statistics/examples/distribution/TCommand.java | 15 ++++++++
 .../examples/distribution/TrapezoidalCommand.java  | 15 ++++++++
 .../examples/distribution/TriangularCommand.java   | 15 ++++++++
 .../distribution/TruncatedNormalCommand.java       | 15 ++++++++
 .../distribution/UniformContinuousCommand.java     | 15 ++++++++
 .../distribution/UniformDiscreteCommand.java       | 15 ++++++++
 .../examples/distribution/WeibullCommand.java      | 15 ++++++++
 .../examples/distribution/ZetaCommand.java         | 15 ++++++++
 .../examples/distribution/ZipfCommand.java         | 15 ++++++++
 36 files changed, 543 insertions(+), 2 deletions(-)

diff --git a/commons-statistics-examples/examples-distribution/HOWTO.md 
b/commons-statistics-examples/examples-distribution/HOWTO.md
index 5f26e546..7517c1d3 100644
--- a/commons-statistics-examples/examples-distribution/HOWTO.md
+++ b/commons-statistics-examples/examples-distribution/HOWTO.md
@@ -37,6 +37,7 @@ named by the command. Each distribution command has the 
following functions:
 | Function | Description |
 | -------- | ----------- |
 | info | Information on the domain, mean and variance |
+| sample | Sample from the distribution |
 | pdf | Probability Density Function (continuous distributions) |
 | pmf | Probability Mass Function (discrete distributions) |
 | cdf | Cumulative Probability Density Function |
diff --git a/commons-statistics-examples/examples-distribution/pom.xml 
b/commons-statistics-examples/examples-distribution/pom.xml
index 5c10d099..dc807f3e 100644
--- a/commons-statistics-examples/examples-distribution/pom.xml
+++ b/commons-statistics-examples/examples-distribution/pom.xml
@@ -48,8 +48,12 @@
 
   <dependencies>
     <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-statistics-distribution</artifactId>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-statistics-distribution</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-rng-simple</artifactId>
     </dependency>
     <dependency>
       <groupId>info.picocli</groupId>
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java
index e79ab7e4..8bd21af1 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java
@@ -57,6 +57,10 @@ abstract class AbstractContinuousDistributionCommand 
implements Callable<Void> {
             DistributionUtils.infoContinuous(distributions, outputOptions);
             return null;
         }
+        if ("Sample".equals(name)) {
+            DistributionUtils.sampleContinuous(distributions, (SampleOptions) 
outputOptions);
+            return null;
+        }
 
         // Assume this is an evaluation of the distribution
         final DistributionOptions distributionOptions = (DistributionOptions) 
outputOptions;
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java
index b4e77340..fb542d01 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java
@@ -57,6 +57,10 @@ abstract class AbstractDiscreteDistributionCommand 
implements Callable<Void> {
             DistributionUtils.infoDiscrete(distributions, outputOptions);
             return null;
         }
+        if ("Sample".equals(name)) {
+            DistributionUtils.sampleDiscrete(distributions, (SampleOptions) 
outputOptions);
+            return null;
+        }
 
         // Assume this is an evaluation of the distribution
         final DistributionOptions distributionOptions = (DistributionOptions) 
outputOptions;
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java
index 1f4ab88e..442df105 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Beta distribution.",
          subcommands = {
              BetaCommand.Info.class,
+             BetaCommand.Sample.class,
              BetaCommand.Check.class,
              BetaCommand.PDF.class,
              BetaCommand.LPDF.class,
@@ -129,6 +130,20 @@ class BetaCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Beta distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java
index e66918dc..8057d4d5 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Binomial distribution.",
          subcommands = {
              BinomialCommand.Info.class,
+             BinomialCommand.Sample.class,
              BinomialCommand.Check.class,
              BinomialCommand.PMF.class,
              BinomialCommand.LPMF.class,
@@ -130,6 +131,20 @@ class BinomialCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Binomial distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java
index 25fe5c20..a9bcf659 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Cauchy distribution.",
          subcommands = {
              CauchyCommand.Info.class,
+             CauchyCommand.Sample.class,
              CauchyCommand.Check.class,
              CauchyCommand.PDF.class,
              CauchyCommand.LPDF.class,
@@ -129,6 +130,20 @@ class CauchyCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Cauchy distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java
index 7d7d8026..c1296673 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Chi-squared distribution.",
          subcommands = {
              ChiSquaredCommand.Info.class,
+             ChiSquaredCommand.Sample.class,
              ChiSquaredCommand.Check.class,
              ChiSquaredCommand.PDF.class,
              ChiSquaredCommand.LPDF.class,
@@ -116,6 +117,20 @@ class ChiSquaredCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Chi-squared distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionUtils.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionUtils.java
index f1e19237..d14d3d3f 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionUtils.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionUtils.java
@@ -38,6 +38,8 @@ final class DistributionUtils {
     private static final double MAX_RELATIVE_ERROR = 1e-6;
     /** Maximum absolute error for equality to 0 or 1 for a probability. */
     private static final double DELTA_P = 1e-6;
+    /** Header format for the sample output. */
+    private static final String SAMPLE_HEADER = "# %s %s%n";
 
     /** No public construction. */
     private DistributionUtils() {}
@@ -395,6 +397,44 @@ final class DistributionUtils {
         return format;
     }
 
+    /**
+     * Sample the continuous distribution.
+     *
+     * @param dist Distributions
+     * @param outputOptions Output options
+     */
+    static void sampleContinuous(List<Distribution<ContinuousDistribution>> 
dist, SampleOptions outputOptions) {
+        try (PrintWriter out = createOutput(outputOptions.outputFile)) {
+            dist.forEach(d -> {
+                final ContinuousDistribution dd = d.getDistribution();
+                final ContinuousDistribution.Sampler s = 
dd.createSampler(outputOptions.source.create());
+                out.printf(SAMPLE_HEADER, dd.getClass().getSimpleName(), 
d.getParameters());
+                for (int i = outputOptions.samples; i > 0; i--) {
+                    out.println(s.sample());
+                }
+            });
+        }
+    }
+
+    /**
+     * Sample the discrete distribution.
+     *
+     * @param dist Distributions
+     * @param outputOptions Output options
+     */
+    static void sampleDiscrete(List<Distribution<DiscreteDistribution>> dist, 
SampleOptions outputOptions) {
+        try (PrintWriter out = createOutput(outputOptions.outputFile)) {
+            dist.forEach(d -> {
+                final DiscreteDistribution dd = d.getDistribution();
+                final DiscreteDistribution.Sampler s = 
dd.createSampler(outputOptions.source.create());
+                out.printf(SAMPLE_HEADER, dd.getClass().getSimpleName(), 
d.getParameters());
+                for (int i = outputOptions.samples; i > 0; i--) {
+                    out.println(s.sample());
+                }
+            });
+        }
+    }
+
     /**
      * Creates the output.
      *
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java
index 8ed10bbf..c05ae52e 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Exponential distribution.",
          subcommands = {
              ExpCommand.Info.class,
+             ExpCommand.Sample.class,
              ExpCommand.Check.class,
              ExpCommand.PDF.class,
              ExpCommand.LPDF.class,
@@ -115,6 +116,20 @@ class ExpCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Exponential distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java
index d327628e..5dbccf80 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "F distribution.",
          subcommands = {
              FCommand.Info.class,
+             FCommand.Sample.class,
              FCommand.Check.class,
              FCommand.PDF.class,
              FCommand.LPDF.class,
@@ -129,6 +130,20 @@ class FCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "F distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java
index 80d2bba1..4a23076a 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java
@@ -34,6 +34,7 @@ import picocli.CommandLine.Option;
          description = "Folded normal distribution.",
          subcommands = {
              FoldedNormalCommand.Info.class,
+             FoldedNormalCommand.Sample.class,
              FoldedNormalCommand.Check.class,
              FoldedNormalCommand.PDF.class,
              FoldedNormalCommand.LPDF.class,
@@ -132,6 +133,20 @@ class FoldedNormalCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Folded normal distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java
index 59b0f516..2d0fba2c 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Gamma distribution.",
          subcommands = {
              GammaCommand.Info.class,
+             GammaCommand.Sample.class,
              GammaCommand.Check.class,
              GammaCommand.PDF.class,
              GammaCommand.LPDF.class,
@@ -130,6 +131,20 @@ class GammaCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Gamma distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java
index 9bc4084d..9e72c6d3 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Geometric distribution.",
          subcommands = {
              GeometricCommand.Info.class,
+             GeometricCommand.Sample.class,
              GeometricCommand.Check.class,
              GeometricCommand.PMF.class,
              GeometricCommand.LPMF.class,
@@ -116,6 +117,20 @@ class GeometricCommand extends AbstractDistributionCommand 
{
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Geometric distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java
index 7edd35c3..e054bef5 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Gumbel distribution.",
          subcommands = {
              GumbelCommand.Info.class,
+             GumbelCommand.Sample.class,
              GumbelCommand.Check.class,
              GumbelCommand.PDF.class,
              GumbelCommand.LPDF.class,
@@ -129,6 +130,20 @@ class GumbelCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Gumbel distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java
index d6f255c2..a884b662 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Hypergeometric distribution.",
          subcommands = {
              HypergeometricCommand.Info.class,
+             HypergeometricCommand.Sample.class,
              HypergeometricCommand.Check.class,
              HypergeometricCommand.PMF.class,
              HypergeometricCommand.LPMF.class,
@@ -141,6 +142,20 @@ class HypergeometricCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Hypergeometric distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java
index 97731bc1..d69d404c 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Laplace distribution.",
          subcommands = {
              LaplaceCommand.Info.class,
+             LaplaceCommand.Sample.class,
              LaplaceCommand.Check.class,
              LaplaceCommand.PDF.class,
              LaplaceCommand.LPDF.class,
@@ -129,6 +130,20 @@ class LaplaceCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Laplace distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java
index a2b3db57..34d43edf 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Levy distribution.",
          subcommands = {
              LevyCommand.Info.class,
+             LevyCommand.Sample.class,
              LevyCommand.Check.class,
              LevyCommand.PDF.class,
              LevyCommand.LPDF.class,
@@ -129,6 +130,20 @@ class LevyCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Levy distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java
index e31656d0..36f10415 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Log-normal distribution.",
          subcommands = {
              LogNormalCommand.Info.class,
+             LogNormalCommand.Sample.class,
              LogNormalCommand.Check.class,
              LogNormalCommand.PDF.class,
              LogNormalCommand.LPDF.class,
@@ -130,6 +131,20 @@ class LogNormalCommand extends AbstractDistributionCommand 
{
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Log-normal distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java
index fc44ee70..daa7aa31 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Log uniform distribution.",
          subcommands = {
              LogUniformCommand.Info.class,
+             LogUniformCommand.Sample.class,
              LogUniformCommand.Check.class,
              LogUniformCommand.PDF.class,
              LogUniformCommand.LPDF.class,
@@ -132,6 +133,20 @@ class LogUniformCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Log uniform distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java
index e857bafe..c4fd7e15 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Logistic distribution.",
          subcommands = {
              LogisticCommand.Info.class,
+             LogisticCommand.Sample.class,
              LogisticCommand.Check.class,
              LogisticCommand.PDF.class,
              LogisticCommand.LPDF.class,
@@ -129,6 +130,20 @@ class LogisticCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Logistic distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java
index ef01f03a..844710d7 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Nakagami distribution.",
          subcommands = {
              NakagamiCommand.Info.class,
+             NakagamiCommand.Sample.class,
              NakagamiCommand.Check.class,
              NakagamiCommand.PDF.class,
              NakagamiCommand.LPDF.class,
@@ -129,6 +130,20 @@ class NakagamiCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Nakagami distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java
index 3b5048e4..6e65b1d7 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Normal distribution.",
          subcommands = {
              NormalCommand.Info.class,
+             NormalCommand.Sample.class,
              NormalCommand.Check.class,
              NormalCommand.PDF.class,
              NormalCommand.LPDF.class,
@@ -131,6 +132,20 @@ class NormalCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Normal distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java
index d0fb0df0..b72cec24 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Pareto distribution.",
          subcommands = {
              ParetoCommand.Info.class,
+             ParetoCommand.Sample.class,
              ParetoCommand.Check.class,
              ParetoCommand.PDF.class,
              ParetoCommand.LPDF.class,
@@ -130,6 +131,20 @@ class ParetoCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Pareto distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java
index 8beb1c3c..d2d71a3e 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Pascal distribution.",
          subcommands = {
              PascalCommand.Info.class,
+             PascalCommand.Sample.class,
              PascalCommand.Check.class,
              PascalCommand.PMF.class,
              PascalCommand.LPMF.class,
@@ -133,6 +134,20 @@ class PascalCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Pascal distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java
index 00a81908..5facfcf5 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Poisson distribution.",
          subcommands = {
              PoissonCommand.Info.class,
+             PoissonCommand.Sample.class,
              PoissonCommand.Check.class,
              PoissonCommand.PMF.class,
              PoissonCommand.LPMF.class,
@@ -116,6 +117,20 @@ class PoissonCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Poisson distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/SampleOptions.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/SampleOptions.java
new file mode 100644
index 00000000..7e2b1eae
--- /dev/null
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/SampleOptions.java
@@ -0,0 +1,38 @@
+/*
+ * 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
+ *
+ *      https://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.
+ */
+package org.apache.commons.statistics.examples.distribution;
+
+import org.apache.commons.rng.simple.RandomSource;
+//import org.apache.commons.rng.simple.RandomSource;
+import picocli.CommandLine.Option;
+
+/**
+ * Standard options for distribution commands.
+ */
+class SampleOptions extends OutputOptions {
+
+    /** The number of samples. */
+    @Option(names = { "--samples" },
+            paramLabel = "n",
+            description = {"Number of samples."})
+    protected int samples = 10;
+
+    /** The source of randomness. */
+    @Option(names = { "--rng" },
+            description = {"Source of randomness."})
+    protected RandomSource source = RandomSource.L128_X256_MIX;
+}
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java
index dc096138..1f2b3616 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "T distribution.",
          subcommands = {
              TCommand.Info.class,
+             TCommand.Sample.class,
              TCommand.Check.class,
              TCommand.PDF.class,
              TCommand.LPDF.class,
@@ -115,6 +116,20 @@ class TCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "T distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java
index 34780978..f2ffe972 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Trapezoidal distribution.",
          subcommands = {
              TrapezoidalCommand.Info.class,
+             TrapezoidalCommand.Sample.class,
              TrapezoidalCommand.Check.class,
              TrapezoidalCommand.PDF.class,
              TrapezoidalCommand.LPDF.class,
@@ -152,6 +153,20 @@ class TrapezoidalCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Trapezoidal distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java
index 4a58f75d..879568e6 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Triangular distribution.",
          subcommands = {
              TriangularCommand.Info.class,
+             TriangularCommand.Sample.class,
              TriangularCommand.Check.class,
              TriangularCommand.PDF.class,
              TriangularCommand.LPDF.class,
@@ -142,6 +143,20 @@ class TriangularCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Triangular distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java
index 1cbe434a..30f4a543 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Truncated normal distribution.",
          subcommands = {
              TruncatedNormalCommand.Info.class,
+             TruncatedNormalCommand.Sample.class,
              TruncatedNormalCommand.Check.class,
              TruncatedNormalCommand.PDF.class,
              TruncatedNormalCommand.LPDF.class,
@@ -154,6 +155,20 @@ class TruncatedNormalCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Truncated normal distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java
index f5ff918a..58a4bd7a 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Continuous uniform distribution.",
          subcommands = {
              UniformContinuousCommand.Info.class,
+             UniformContinuousCommand.Sample.class,
              UniformContinuousCommand.Check.class,
              UniformContinuousCommand.PDF.class,
              UniformContinuousCommand.LPDF.class,
@@ -132,6 +133,20 @@ class UniformContinuousCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Continuous uniform distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java
index d164741a..84394f1b 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Discrete uniform distribution.",
          subcommands = {
              UniformDiscreteCommand.Info.class,
+             UniformDiscreteCommand.Sample.class,
              UniformDiscreteCommand.Check.class,
              UniformDiscreteCommand.PMF.class,
              UniformDiscreteCommand.LPMF.class,
@@ -131,6 +132,20 @@ class UniformDiscreteCommand extends 
AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Discrete uniform distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java
index 734b5944..8b558f58 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java
@@ -32,6 +32,7 @@ import picocli.CommandLine.Option;
          description = "Weibull distribution.",
          subcommands = {
              WeibullCommand.Info.class,
+             WeibullCommand.Sample.class,
              WeibullCommand.Check.class,
              WeibullCommand.PDF.class,
              WeibullCommand.LPDF.class,
@@ -130,6 +131,20 @@ class WeibullCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Weibull distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java
index fcf7fab0..7bbed635 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Zeta distribution.",
          subcommands = {
              ZetaCommand.Info.class,
+             ZetaCommand.Sample.class,
              ZetaCommand.Check.class,
              ZetaCommand.PMF.class,
              ZetaCommand.LPMF.class,
@@ -115,6 +116,20 @@ class ZetaCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Zeta distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,
diff --git 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java
 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java
index a2d84efa..f6c2760f 100644
--- 
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java
+++ 
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
          description = "Zipf distribution.",
          subcommands = {
              ZipfCommand.Info.class,
+             ZipfCommand.Sample.class,
              ZipfCommand.Check.class,
              ZipfCommand.PMF.class,
              ZipfCommand.LPMF.class,
@@ -129,6 +130,20 @@ class ZipfCommand extends AbstractDistributionCommand {
         }
     }
 
+    /** Information command. */
+    @Command(name = "sample",
+             description = "Zipf distribution sample.")
+    static class Sample extends BaseCommand {
+        /** The distribution options. */
+        @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, 
order = 2)
+        private SampleOptions distributionOptions = new SampleOptions();
+
+        @Override
+        protected OutputOptions getOutputOptions() {
+            return distributionOptions;
+        }
+    }
+
     /** Verification checks command. */
     @Command(name = "check",
              hidden = true,

Reply via email to