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
The following commit(s) were added to refs/heads/master by this push:
new 837717bd Add info command to distribution example application
837717bd is described below
commit 837717bddadc77b33d75033075ea41b32da75614
Author: Alex Herbert <[email protected]>
AuthorDate: Thu Sep 17 21:05:05 2026 +0100
Add info command to distribution example application
Info command contains the domain lower and upper bound; and the mean and
variance.
---
.../examples-distribution/HOWTO.md | 1 +
.../AbstractContinuousDistributionCommand.java | 40 ++++++++++--
.../AbstractDiscreteDistributionCommand.java | 40 +++++++++---
.../examples/distribution/BetaCommand.java | 45 +++++++-------
.../examples/distribution/BinomialCommand.java | 45 +++++++-------
.../examples/distribution/CauchyCommand.java | 45 +++++++-------
.../examples/distribution/ChiSquaredCommand.java | 45 +++++++-------
.../ContinuousDistributionOptions.java | 13 +++-
.../distribution/DiscreteDistributionOptions.java | 13 +++-
.../examples/distribution/DistributionOptions.java | 13 +---
.../examples/distribution/DistributionUtils.java | 71 +++++++++++++++++++++-
.../examples/distribution/ExpCommand.java | 45 +++++++-------
.../statistics/examples/distribution/FCommand.java | 45 +++++++-------
.../examples/distribution/FoldedNormalCommand.java | 45 +++++++-------
.../examples/distribution/GammaCommand.java | 45 +++++++-------
.../examples/distribution/GeometricCommand.java | 45 +++++++-------
.../examples/distribution/GumbelCommand.java | 45 +++++++-------
.../distribution/HypergeometricCommand.java | 45 +++++++-------
.../examples/distribution/LaplaceCommand.java | 45 +++++++-------
.../examples/distribution/LevyCommand.java | 45 +++++++-------
.../examples/distribution/LogNormalCommand.java | 45 +++++++-------
.../examples/distribution/LogUniformCommand.java | 45 +++++++-------
.../examples/distribution/LogisticCommand.java | 45 +++++++-------
.../examples/distribution/NakagamiCommand.java | 45 +++++++-------
.../examples/distribution/NormalCommand.java | 45 +++++++-------
...DistributionOptions.java => OutputOptions.java} | 21 +------
.../examples/distribution/ParetoCommand.java | 45 +++++++-------
.../examples/distribution/PascalCommand.java | 45 +++++++-------
.../examples/distribution/PoissonCommand.java | 45 +++++++-------
.../statistics/examples/distribution/TCommand.java | 45 +++++++-------
.../examples/distribution/TrapezoidalCommand.java | 45 +++++++-------
.../examples/distribution/TriangularCommand.java | 45 +++++++-------
.../distribution/TruncatedNormalCommand.java | 45 +++++++-------
.../distribution/UniformContinuousCommand.java | 45 +++++++-------
.../distribution/UniformDiscreteCommand.java | 45 +++++++-------
.../examples/distribution/WeibullCommand.java | 45 +++++++-------
.../examples/distribution/ZetaCommand.java | 47 +++++++-------
.../examples/distribution/ZipfCommand.java | 46 +++++++-------
38 files changed, 886 insertions(+), 679 deletions(-)
diff --git a/commons-statistics-examples/examples-distribution/HOWTO.md
b/commons-statistics-examples/examples-distribution/HOWTO.md
index 049bb7b6..5f26e546 100644
--- a/commons-statistics-examples/examples-distribution/HOWTO.md
+++ b/commons-statistics-examples/examples-distribution/HOWTO.md
@@ -36,6 +36,7 @@ named by the command. Each distribution command has the
following functions:
| Function | Description |
| -------- | ----------- |
+| info | Information on the domain, mean and variance |
| 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/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 bb358ac3..3d9fbb89 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
@@ -19,6 +19,7 @@ package org.apache.commons.statistics.examples.distribution;
import java.util.List;
import java.util.concurrent.Callable;
import org.apache.commons.statistics.distribution.ContinuousDistribution;
+import picocli.CommandLine.ArgGroup;
import picocli.CommandLine.Mixin;
/**
@@ -35,17 +36,44 @@ import picocli.CommandLine.Mixin;
* evaluation.
*/
abstract class AbstractContinuousDistributionCommand implements Callable<Void>
{
+ /** Heading for distribution parameters. */
+ static final String HEADING_DISTRIBUTION_PARAMETERS = "Distribution
parameters:%n";
+ /** Heading for evaluation options. */
+ static final String HEADING_EVALUATION_OPTIONS = "Evaluation options:%n";
+
/** The standard options. */
@Mixin
private StandardOptions standardOptions;
+ /** The distribution options. */
+ @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order =
2)
+ private OutputOptions outputOptions;
+
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ AbstractContinuousDistributionCommand(OutputOptions outputOptions) {
+ this.outputOptions = outputOptions;
+ }
+
@Override
public Void call() {
final List<Distribution<ContinuousDistribution>> distributions =
getDistributions();
- final DistributionOptions distributionOptions =
getDistributionOptions();
// Set the function based on the class name
final String name = getClass().getSimpleName();
+ // Special handling of sub-classes which do not evaluate a function of
the distribution.
+ // This is done here to avoid duplicating an overridden 'call()'
method for each instance.
+ if ("Info".equals(name)) {
+ DistributionUtils.infoContinuous(distributions, outputOptions);
+ return null;
+ }
+
+ // Assume this is an evaluation of the distribution
+ final DistributionOptions distributionOptions = (DistributionOptions)
outputOptions;
+
// Special handling of sub-classes which do not evaluate a function of
the distribution.
// This is done here to avoid duplicating an overridden 'call()'
method for each instance.
// Currently this applies to a 'check' command that performs
verification checks
@@ -80,10 +108,12 @@ abstract class AbstractContinuousDistributionCommand
implements Callable<Void> {
protected abstract List<Distribution<ContinuousDistribution>>
getDistributions();
/**
- * Gets the distribution options.
- * This will define the points to evaluate, and the output options.
+ * Gets the output options.
+ * Sub-classes can define the points to evaluate.
*
- * @return the distribution options
+ * @return the output options
*/
- protected abstract DistributionOptions getDistributionOptions();
+ protected OutputOptions getOutputOptions() {
+ return 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 1010b07a..9c1422b6 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
@@ -19,6 +19,7 @@ package org.apache.commons.statistics.examples.distribution;
import java.util.List;
import java.util.concurrent.Callable;
import org.apache.commons.statistics.distribution.DiscreteDistribution;
+import picocli.CommandLine.ArgGroup;
import picocli.CommandLine.Mixin;
/**
@@ -35,21 +36,44 @@ import picocli.CommandLine.Mixin;
* evaluation.
*/
abstract class AbstractDiscreteDistributionCommand implements Callable<Void> {
+ /** Heading for distribution parameters. */
+ static final String HEADING_DISTRIBUTION_PARAMETERS = "Distribution
parameters:%n";
+ /** Heading for evaluation options. */
+ static final String HEADING_EVALUATION_OPTIONS = "Evaluation options:%n";
+
/** The standard options. */
@Mixin
private StandardOptions standardOptions;
+ /** The distribution options. */
+ @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order =
2)
+ private OutputOptions outputOptions;
+
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ AbstractDiscreteDistributionCommand(OutputOptions outputOptions) {
+ this.outputOptions = outputOptions;
+ }
+
@Override
public Void call() {
final List<Distribution<DiscreteDistribution>> distributions =
getDistributions();
- final DistributionOptions distributionOptions =
getDistributionOptions();
// Set the function based on the class name
final String name = getClass().getSimpleName();
// Special handling of sub-classes which do not evaluate a function of
the distribution.
// This is done here to avoid duplicating an overridden 'call()'
method for each instance.
- // Currently this applies to a hidden 'check' command that performs
verification checks
- // on the distribution.
+ if ("Info".equals(name)) {
+ DistributionUtils.infoDiscrete(distributions, outputOptions);
+ return null;
+ }
+
+ // Assume this is an evaluation of the distribution
+ final DistributionOptions distributionOptions = (DistributionOptions)
outputOptions;
+
if ("Check".equals(name)) {
// This is not an evaluation of a single function.
DistributionUtils.check(distributions,
@@ -80,10 +104,12 @@ abstract class AbstractDiscreteDistributionCommand
implements Callable<Void> {
protected abstract List<Distribution<DiscreteDistribution>>
getDistributions();
/**
- * Gets the distribution options.
- * This will define the points to evaluate, and the output options.
+ * Gets the output options.
+ * Sub-classes can define the points to evaluate.
*
- * @return the distribution options
+ * @return the output options
*/
- protected abstract DistributionOptions getDistributionOptions();
+ protected OutputOptions getOutputOptions() {
+ return 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 8df2261f..5a31735a 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "beta",
description = "Beta distribution.",
subcommands = {
+ BetaCommand.Info.class,
BetaCommand.Check.class,
BetaCommand.PDF.class,
BetaCommand.LPDF.class,
@@ -63,13 +64,13 @@ class BetaCommand extends AbstractDistributionCommand {
private double[] beta = {0.5, 1, 3, 2, 5};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 1;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,29 @@ class BetaCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 1));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Beta distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 caf1a152..0c905083 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"bino"},
description = "Binomial distribution.",
subcommands = {
+ BinomialCommand.Info.class,
BinomialCommand.Check.class,
BinomialCommand.PMF.class,
BinomialCommand.LPMF.class,
@@ -64,13 +65,13 @@ class BinomialCommand extends AbstractDistributionCommand {
private double[] p = {0.5, 0.7, 0.5};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends DiscreteDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 40;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -92,27 +93,29 @@ class BinomialCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new DiscreteDistributionOptions(0, 40));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseDiscreteDistributionOptions distributionOptions = new
InverseDiscreteDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseDiscreteDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Binomial distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 3d03c201..91e586d4 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "cauchy",
description = "Cauchy distribution.",
subcommands = {
+ CauchyCommand.Info.class,
CauchyCommand.Check.class,
CauchyCommand.PDF.class,
CauchyCommand.LPDF.class,
@@ -63,13 +64,13 @@ class CauchyCommand extends AbstractDistributionCommand {
private double[] scale = {0.5, 1, 2, 1};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,29 @@ class CauchyCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Cauchy distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 6ebdad49..965ca43f 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"chi2"},
description = "Chi-squared distribution.",
subcommands = {
+ ChiSquaredCommand.Info.class,
ChiSquaredCommand.Check.class,
ChiSquaredCommand.PDF.class,
ChiSquaredCommand.LPDF.class,
@@ -57,13 +58,13 @@ class ChiSquaredCommand extends AbstractDistributionCommand
{
private double[] df = {1, 2, 3, 4, 6, 9};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 8;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -78,27 +79,29 @@ class ChiSquaredCommand extends AbstractDistributionCommand
{
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 8));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Chi-squared distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
diff --git
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ContinuousDistributionOptions.java
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ContinuousDistributionOptions.java
index 63a8174f..c148d727 100644
---
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ContinuousDistributionOptions.java
+++
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ContinuousDistributionOptions.java
@@ -31,7 +31,7 @@ class ContinuousDistributionOptions extends
DistributionOptions {
/** The maximum point to evaluate. */
@Option(names = { "--max" },
description = {"Maximum point to evaluate (default:
${DEFAULT-VALUE})."})
- protected double max = 5;
+ protected double max;
/** The number of steps from minimum to the maximum. */
@Option(names = { "--steps" },
@@ -54,4 +54,15 @@ class ContinuousDistributionOptions extends
DistributionOptions {
@Option(names = { "--format" },
description = {"Format for the output values (default:
${DEFAULT-VALUE})."})
protected String format = "%s";
+
+ /**
+ * Create an instance.
+ *
+ * @param min the minimum point to evaluate
+ * @param max the maximum point to evaluate
+ */
+ ContinuousDistributionOptions(double min, double max) {
+ this.min = min;
+ this.max = max;
+ }
}
diff --git
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DiscreteDistributionOptions.java
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DiscreteDistributionOptions.java
index fa98b31a..f8f9c610 100644
---
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DiscreteDistributionOptions.java
+++
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DiscreteDistributionOptions.java
@@ -31,7 +31,7 @@ class DiscreteDistributionOptions extends DistributionOptions
{
/** The maximum point to evaluate. */
@Option(names = { "--max" },
description = {"Maximum point to evaluate (default:
${DEFAULT-VALUE})."})
- protected int max = 20;
+ protected int max;
/** The increment from minimum to the maximum. */
@Option(names = { "-i", "--increment" },
@@ -49,4 +49,15 @@ class DiscreteDistributionOptions extends
DistributionOptions {
@Option(names = { "--format" },
description = {"Format for the output values (default:
${DEFAULT-VALUE})."})
protected String format = "%s";
+
+ /**
+ * Create an instance.
+ *
+ * @param min the minimum point to evaluate
+ * @param max the maximum point to evaluate
+ */
+ DiscreteDistributionOptions(int min, int max) {
+ this.min = min;
+ this.max = max;
+ }
}
diff --git
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionOptions.java
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionOptions.java
index 850cb3d2..8ad5f680 100644
---
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionOptions.java
+++
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionOptions.java
@@ -22,22 +22,11 @@ import picocli.CommandLine.Option;
/**
* Standard options for distribution commands.
*/
-class DistributionOptions {
+class DistributionOptions extends OutputOptions {
/** The distribution function. */
protected DistributionFunction distributionFunction;
- /** The field delimiter. */
- @Option(names = { "--delim" },
- description = {"Output field delimiter (default: \\t)."})
- protected String delim = "\t";
-
- /** The output file. */
- @Option(names = { "--out" },
- paramLabel = "file",
- description = {"Output file (default: stdout)."})
- protected File outputFile;
-
/** The output file. */
@Option(names = { "--in" },
paramLabel = "file",
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 eb29485e..f1e19237 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
@@ -340,6 +340,61 @@ final class DistributionUtils {
}
}
+ /**
+ * Show the information of the continuous distribution.
+ *
+ * @param dist Distributions
+ * @param outputOptions Output options
+ */
+ static void infoContinuous(List<Distribution<ContinuousDistribution>>
dist, OutputOptions outputOptions) {
+ try (PrintWriter out = createOutput(outputOptions.outputFile)) {
+ final String format = createFormatAndWriteHeader(outputOptions,
out);
+ dist.forEach(d -> {
+ final ContinuousDistribution dd = d.getDistribution();
+ final String title = dd.getClass().getSimpleName() + " " +
d.getParameters();
+ final double lower = dd.getSupportLowerBound();
+ final double upper = dd.getSupportUpperBound();
+ final double mean = dd.getMean();
+ final double variance = dd.getVariance();
+ out.printf(format, title, lower, upper, mean, variance);
+ });
+ }
+ }
+
+ /**
+ * Show the information of the discrete distribution.
+ *
+ * @param dist Distributions
+ * @param outputOptions Output options
+ */
+ static void infoDiscrete(List<Distribution<DiscreteDistribution>> dist,
OutputOptions outputOptions) {
+ try (PrintWriter out = createOutput(outputOptions.outputFile)) {
+ final String format = createFormatAndWriteHeader(outputOptions,
out);
+ dist.forEach(d -> {
+ final DiscreteDistribution dd = d.getDistribution();
+ final String title = dd.getClass().getSimpleName() + " " +
d.getParameters();
+ final int lower = dd.getSupportLowerBound();
+ final int upper = dd.getSupportUpperBound();
+ final double mean = dd.getMean();
+ final double variance = dd.getVariance();
+ out.printf(format, title, lower, upper, mean, variance);
+ });
+ }
+ }
+
+ /**
+ * Creates the format and writes the information header.
+ *
+ * @param outputOptions the output options
+ * @param out the output
+ * @return the format string for [lower, upper, mean, variance]
+ */
+ private static String createFormatAndWriteHeader(OutputOptions
outputOptions, PrintWriter out) {
+ final String format = "%s %s %s %s %s%n".replace(" ",
outputOptions.delim);
+ out.printf(format, "distribution", "lower", "upper", "mean",
"variance");
+ return format;
+ }
+
/**
* Creates the output.
*
@@ -347,11 +402,21 @@ final class DistributionUtils {
* @return the print stream
*/
private static PrintWriter createOutput(DistributionOptions
distributionOptions) {
- if (distributionOptions.outputFile != null) {
+ return createOutput(distributionOptions.outputFile);
+ }
+
+ /**
+ * Creates the output.
+ *
+ * @param outputFile Output file
+ * @return the print stream
+ */
+ private static PrintWriter createOutput(File outputFile) {
+ if (outputFile != null) {
try {
- return new
PrintWriter(Files.newBufferedWriter(distributionOptions.outputFile.toPath()));
+ return new
PrintWriter(Files.newBufferedWriter(outputFile.toPath()));
} catch (IOException ex) {
- throw new UncheckedIOException("Failed to create output: " +
distributionOptions.outputFile, ex);
+ throw new UncheckedIOException("Failed to create output: " +
outputFile, ex);
}
}
return new PrintWriter(System.out) {
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 bc4b1944..75374750 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "exp",
description = "Exponential distribution.",
subcommands = {
+ ExpCommand.Info.class,
ExpCommand.Check.class,
ExpCommand.PDF.class,
ExpCommand.LPDF.class,
@@ -56,13 +57,13 @@ class ExpCommand extends AbstractDistributionCommand {
private double[] mean = {2, 1, 2.0 / 3};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -77,27 +78,29 @@ class ExpCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Exponential distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 c6675205..8c29f5ef 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "f",
description = "F distribution.",
subcommands = {
+ FCommand.Info.class,
FCommand.Check.class,
FCommand.PDF.class,
FCommand.LPDF.class,
@@ -63,13 +64,13 @@ class FCommand extends AbstractDistributionCommand {
private double[] df2 = {1, 1, 2, 1, 100};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,29 @@ class FCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "F distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 5089fdd0..76e752ba 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
@@ -33,6 +33,7 @@ import picocli.CommandLine.Option;
aliases = {"foldnorm"},
description = "Folded normal distribution.",
subcommands = {
+ FoldedNormalCommand.Info.class,
FoldedNormalCommand.Check.class,
FoldedNormalCommand.PDF.class,
FoldedNormalCommand.LPDF.class,
@@ -66,13 +67,13 @@ class FoldedNormalCommand extends
AbstractDistributionCommand {
private double[] sigma = {1, 2, 1, 1};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -94,27 +95,29 @@ class FoldedNormalCommand extends
AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Folded normal distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 2775a534..0e73e0b8 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"gam"},
description = "Gamma distribution.",
subcommands = {
+ GammaCommand.Info.class,
GammaCommand.Check.class,
GammaCommand.PDF.class,
GammaCommand.LPDF.class,
@@ -64,13 +65,13 @@ class GammaCommand extends AbstractDistributionCommand {
private double[] scale = {2, 2, 2, 1, 0.5, 1, 1};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 20;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -92,27 +93,29 @@ class GammaCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 20));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Gamme distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 bb5b9034..6737db44 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"geo"},
description = "Geometric distribution.",
subcommands = {
+ GeometricCommand.Info.class,
GeometricCommand.Check.class,
GeometricCommand.PMF.class,
GeometricCommand.LPMF.class,
@@ -57,13 +58,13 @@ class GeometricCommand extends AbstractDistributionCommand {
private double[] p = {0.2, 0.5, 0.8};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends DiscreteDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 10;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -78,27 +79,29 @@ class GeometricCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new DiscreteDistributionOptions(0, 10));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseDiscreteDistributionOptions distributionOptions = new
InverseDiscreteDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseDiscreteDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Geometric distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 445e3259..9054c7af 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "gumbel",
description = "Gumbel distribution.",
subcommands = {
+ GumbelCommand.Info.class,
GumbelCommand.Check.class,
GumbelCommand.PDF.class,
GumbelCommand.LPDF.class,
@@ -63,13 +64,13 @@ class GumbelCommand extends AbstractDistributionCommand {
private double[] beta = {2, 2, 3, 4};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 20;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,29 @@ class GumbelCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 20));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Gumbel distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 48f8a23b..1486fbf6 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"hyge"},
description = "Hypergeometric distribution.",
subcommands = {
+ HypergeometricCommand.Info.class,
HypergeometricCommand.Check.class,
HypergeometricCommand.PMF.class,
HypergeometricCommand.LPMF.class,
@@ -73,13 +74,13 @@ class HypergeometricCommand extends
AbstractDistributionCommand {
private int[] n = {100, 200, 300};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends DiscreteDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 60;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -103,27 +104,29 @@ class HypergeometricCommand extends
AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new DiscreteDistributionOptions(0, 60));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseDiscreteDistributionOptions distributionOptions = new
InverseDiscreteDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseDiscreteDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Hypergeometric distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 007196db..d79c78cc 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "laplace",
description = "Laplace distribution.",
subcommands = {
+ LaplaceCommand.Info.class,
LaplaceCommand.Check.class,
LaplaceCommand.PDF.class,
LaplaceCommand.LPDF.class,
@@ -63,13 +64,13 @@ class LaplaceCommand extends AbstractDistributionCommand {
private double[] beta = {1, 2, 4, 4};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -10;
- max = 10;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,29 @@ class LaplaceCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-10, 10));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Laplace distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 c07a1fd5..032d92ea 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "levy",
description = "Levy distribution.",
subcommands = {
+ LevyCommand.Info.class,
LevyCommand.Check.class,
LevyCommand.PDF.class,
LevyCommand.LPDF.class,
@@ -63,13 +64,13 @@ class LevyCommand extends AbstractDistributionCommand {
private double[] c = {0.5, 1, 2, 4, 8};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 3;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,29 @@ class LevyCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 3));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Levy distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 2c95cdc7..28c91f0b 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"lnorm", "logn"},
description = "Log-normal distribution.",
subcommands = {
+ LogNormalCommand.Info.class,
LogNormalCommand.Check.class,
LogNormalCommand.PDF.class,
LogNormalCommand.LPDF.class,
@@ -64,13 +65,13 @@ class LogNormalCommand extends AbstractDistributionCommand {
private double[] sigma = {0.125, 0.25, 0.5, 1, 1.5, 10};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 3;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -92,27 +93,29 @@ class LogNormalCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 3));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Log-normal distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 1350cf33..6b7dbcc6 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"reciprocal"},
description = "Log uniform distribution.",
subcommands = {
+ LogUniformCommand.Info.class,
LogUniformCommand.Check.class,
LogUniformCommand.PDF.class,
LogUniformCommand.LPDF.class,
@@ -66,13 +67,13 @@ class LogUniformCommand extends AbstractDistributionCommand
{
private double[] upper = {4, 6};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -94,27 +95,29 @@ class LogUniformCommand extends AbstractDistributionCommand
{
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Log uniform distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 fec25239..469c63a5 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "logistic",
description = "Logistic distribution.",
subcommands = {
+ LogisticCommand.Info.class,
LogisticCommand.Check.class,
LogisticCommand.PDF.class,
LogisticCommand.LPDF.class,
@@ -63,13 +64,13 @@ class LogisticCommand extends AbstractDistributionCommand {
private double[] s = {2, 3, 4, 2, 1};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 20;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,29 @@ class LogisticCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 20));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Logistic distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 a8b26c67..c1ac0a59 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "nakagami",
description = "Nakagami distribution.",
subcommands = {
+ NakagamiCommand.Info.class,
NakagamiCommand.Check.class,
NakagamiCommand.PDF.class,
NakagamiCommand.LPDF.class,
@@ -63,13 +64,13 @@ class NakagamiCommand extends AbstractDistributionCommand {
private double[] omega = {3, 3, 3, 0.5, 1};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 4;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,29 @@ class NakagamiCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 4));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Nakagami distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 3bafe4ba..7b785340 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"norm"},
description = "Normal distribution.",
subcommands = {
+ NormalCommand.Info.class,
NormalCommand.Check.class,
NormalCommand.PDF.class,
NormalCommand.LPDF.class,
@@ -65,13 +66,13 @@ class NormalCommand extends AbstractDistributionCommand {
private double[] sigma = {Math.sqrt(0.2), 1, Math.sqrt(5),
Math.sqrt(0.5)};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -93,27 +94,29 @@ class NormalCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Normal distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
diff --git
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionOptions.java
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/OutputOptions.java
similarity index 60%
copy from
commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionOptions.java
copy to
commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/OutputOptions.java
index 850cb3d2..f49fa8d7 100644
---
a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionOptions.java
+++
b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/OutputOptions.java
@@ -20,12 +20,9 @@ import java.io.File;
import picocli.CommandLine.Option;
/**
- * Standard options for distribution commands.
+ * Standard output options for commands.
*/
-class DistributionOptions {
-
- /** The distribution function. */
- protected DistributionFunction distributionFunction;
+class OutputOptions {
/** The field delimiter. */
@Option(names = { "--delim" },
@@ -37,18 +34,4 @@ class DistributionOptions {
paramLabel = "file",
description = {"Output file (default: stdout)."})
protected File outputFile;
-
- /** The output file. */
- @Option(names = { "--in" },
- paramLabel = "file",
- description = {"Input file containing points to evaluate.",
- "Overrides configured ranges."})
- protected File inputFile;
-
- /** Flag indicating if an exception should be suppressed during function
evaluation.
- * Exceptions are thrown by the ICDF and ISF functions when the input
probability is not in
- * the interval {@code [0, 1]}. */
- @Option(names = { "--no-ex", "--no-exception" },
- description = {"Suppress function evaluation exceptions (returns
NaN or integer min value)."})
- protected boolean suppressException;
}
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 ac7ef3a8..264133a1 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "pareto",
description = "Pareto distribution.",
subcommands = {
+ ParetoCommand.Info.class,
ParetoCommand.Check.class,
ParetoCommand.PDF.class,
ParetoCommand.LPDF.class,
@@ -64,13 +65,13 @@ class ParetoCommand extends AbstractDistributionCommand {
private double[] shape = {3, 2, 1};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -92,27 +93,29 @@ class ParetoCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Pareto distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 3a121f34..a07234f8 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"negativebinomial", "nbin"},
description = "Pascal distribution.",
subcommands = {
+ PascalCommand.Info.class,
PascalCommand.Check.class,
PascalCommand.PMF.class,
PascalCommand.LPMF.class,
@@ -67,13 +68,13 @@ class PascalCommand extends AbstractDistributionCommand {
private double[] p = {1.0 / 11, 2.0 / 12, 3.0 / 13, 4.0 / 14, 5.0
/ 15, 10.0 / 20, 20.0 / 30, 40.0 / 50};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends DiscreteDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 25;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -95,27 +96,29 @@ class PascalCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new DiscreteDistributionOptions(0, 25));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseDiscreteDistributionOptions distributionOptions = new
InverseDiscreteDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseDiscreteDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Pascal distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 6b09d5d7..12054773 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"poiss"},
description = "Poisson distribution.",
subcommands = {
+ PoissonCommand.Info.class,
PoissonCommand.Check.class,
PoissonCommand.PMF.class,
PoissonCommand.LPMF.class,
@@ -57,13 +58,13 @@ class PoissonCommand extends AbstractDistributionCommand {
private double[] mean = {1, 4, 10};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends DiscreteDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 20;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -78,27 +79,29 @@ class PoissonCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new DiscreteDistributionOptions(0, 20));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseDiscreteDistributionOptions distributionOptions = new
InverseDiscreteDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseDiscreteDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Poisson distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 1504ed6d..eb498376 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "t",
description = "T distribution.",
subcommands = {
+ TCommand.Info.class,
TCommand.Check.class,
TCommand.PDF.class,
TCommand.LPDF.class,
@@ -56,13 +57,13 @@ class TCommand extends AbstractDistributionCommand {
private double[] df = {1, 2, 5, 1e10};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -77,27 +78,29 @@ class TCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "T distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 d029fe29..f95b998b 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"trap"},
description = "Trapezoidal distribution.",
subcommands = {
+ TrapezoidalCommand.Info.class,
TrapezoidalCommand.Check.class,
TrapezoidalCommand.PDF.class,
TrapezoidalCommand.LPDF.class,
@@ -82,13 +83,13 @@ class TrapezoidalCommand extends
AbstractDistributionCommand {
private double[] upper = {4, 3, 3};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -114,27 +115,29 @@ class TrapezoidalCommand extends
AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Trapezoidal distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 3dc176d4..1598e389 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"tri"},
description = "Triangular distribution.",
subcommands = {
+ TriangularCommand.Info.class,
TriangularCommand.Check.class,
TriangularCommand.PDF.class,
TriangularCommand.LPDF.class,
@@ -74,13 +75,13 @@ class TriangularCommand extends AbstractDistributionCommand
{
private double[] upper = {4, 5};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -104,27 +105,29 @@ class TriangularCommand extends
AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Triangular distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 f3831eb6..58ecca91 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"tnorm"},
description = "Truncated normal distribution.",
subcommands = {
+ TruncatedNormalCommand.Info.class,
TruncatedNormalCommand.Check.class,
TruncatedNormalCommand.PDF.class,
TruncatedNormalCommand.LPDF.class,
@@ -83,13 +84,13 @@ class TruncatedNormalCommand extends
AbstractDistributionCommand {
private double[] upper = {MAX};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = MIN;
- max = MAX;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -116,27 +117,29 @@ class TruncatedNormalCommand extends
AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(MIN, MAX));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Truncated normal distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 b00e0aa2..f7218faa 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"uniform", "rectangular"},
description = "Continuous uniform distribution.",
subcommands = {
+ UniformContinuousCommand.Info.class,
UniformContinuousCommand.Check.class,
UniformContinuousCommand.PDF.class,
UniformContinuousCommand.LPDF.class,
@@ -66,13 +67,13 @@ class UniformContinuousCommand extends
AbstractDistributionCommand {
private double[] upper = {3, 5, 2};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -94,27 +95,29 @@ class UniformContinuousCommand extends
AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Continuous uniform distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 ad86d5c5..c62ca21f 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "unid",
description = "Discrete uniform distribution.",
subcommands = {
+ UniformDiscreteCommand.Info.class,
UniformDiscreteCommand.Check.class,
UniformDiscreteCommand.PMF.class,
UniformDiscreteCommand.LPMF.class,
@@ -65,13 +66,13 @@ class UniformDiscreteCommand extends
AbstractDistributionCommand {
private int[] upper = {5, 4};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends DiscreteDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = -5;
- max = 5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -93,27 +94,29 @@ class UniformDiscreteCommand extends
AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(-5, 5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseDiscreteDistributionOptions distributionOptions = new
InverseDiscreteDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Discrete uniform distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 0bfef3cc..deef8086 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
@@ -31,6 +31,7 @@ import picocli.CommandLine.Option;
aliases = {"wbl"},
description = "Weibull distribution.",
subcommands = {
+ WeibullCommand.Info.class,
WeibullCommand.Check.class,
WeibullCommand.PDF.class,
WeibullCommand.LPDF.class,
@@ -64,13 +65,13 @@ class WeibullCommand extends AbstractDistributionCommand {
private double[] beta = {1};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends ContinuousDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 0;
- max = 2.5;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -92,27 +93,29 @@ class WeibullCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new ContinuousDistributionOptions(0, 2.5));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseContinuousDistributionOptions distributionOptions = new
InverseContinuousDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseContinuousDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Weibull distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 4cf6145c..53d91f58 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "zeta",
description = "Zeta distribution.",
subcommands = {
+ ZetaCommand.Info.class,
ZetaCommand.Check.class,
ZetaCommand.PMF.class,
ZetaCommand.LPMF.class,
@@ -43,7 +44,7 @@ class ZetaCommand extends AbstractDistributionCommand {
/** Base command for the distribution that defines the parameters. */
private abstract static class BaseCommand extends
AbstractDiscreteDistributionCommand {
/** Distribution parameters. */
- @ArgGroup(validate = false, heading = "Distribution parameters:%n",
order = 1)
+ @ArgGroup(validate = false, heading = HEADING_DISTRIBUTION_PARAMETERS,
order = 1)
private Params params = new Params();
/** Parameters class. */
@@ -56,13 +57,13 @@ class ZetaCommand extends AbstractDistributionCommand {
private double[] e = {1.1, 2.1, 3.1};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends DiscreteDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 1;
- max = 10;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -77,27 +78,29 @@ class ZetaCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
+ /** Base command for the distribution that defines the parameters for
probability functions. */
private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
-
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new DiscreteDistributionOptions(1, 10));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseDiscreteDistributionOptions distributionOptions = new
InverseDiscreteDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseDiscreteDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Zeta distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}
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 9f815b8f..dc035905 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
@@ -30,6 +30,7 @@ import picocli.CommandLine.Option;
@Command(name = "zipf",
description = "Zipf distribution.",
subcommands = {
+ ZipfCommand.Info.class,
ZipfCommand.Check.class,
ZipfCommand.PMF.class,
ZipfCommand.LPMF.class,
@@ -63,13 +64,13 @@ class ZipfCommand extends AbstractDistributionCommand {
private double[] e = {1, 2, 3, 4};
}
- /** Extend the options to set the default values for this
distribution. */
- static final class Options extends DiscreteDistributionOptions {
- /** Set defaults. */
- private Options() {
- min = 1;
- max = 10;
- }
+ /**
+ * Create an instance.
+ *
+ * @param outputOptions the output options
+ */
+ BaseCommand(OutputOptions outputOptions) {
+ super(outputOptions);
}
@Override
@@ -91,27 +92,30 @@ class ZipfCommand extends AbstractDistributionCommand {
}
}
- /** Base command for the distribution that defines the parameters. */
- private abstract static class ProbabilityCommand extends BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private Options distributionOptions = new Options();
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Base command for the distribution that defines the parameters for
probability functions. */
+ private abstract static class ProbabilityCommand extends BaseCommand {
+ /** Default constructor. */
+ ProbabilityCommand() {
+ super(new DiscreteDistributionOptions(1, 10));
}
}
/** Base command for the distribution that defines the parameters for
inverse probability functions. */
private abstract static class InverseProbabilityCommand extends
BaseCommand {
- /** The distribution options. */
- @ArgGroup(validate = false, heading = "Evaluation options:%n", order =
2)
- private InverseDiscreteDistributionOptions distributionOptions = new
InverseDiscreteDistributionOptions();
+ /** Default constructor. */
+ InverseProbabilityCommand() {
+ super(new InverseDiscreteDistributionOptions());
+ }
+ }
- @Override
- protected DistributionOptions getDistributionOptions() {
- return distributionOptions;
+ /** Information command. */
+ @Command(name = "info",
+ description = "Zipf distribution information.")
+ static class Info extends BaseCommand {
+ /** Default constructor. */
+ Info() {
+ super(new OutputOptions());
}
}