You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2021/06/08 23:05:57 UTC
[commons-math] branch master updated: MATH-1606: Remove outdated
example applications.
This is an automated email from the ASF dual-hosted git repository.
erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-math.git
The following commit(s) were added to refs/heads/master by this push:
new a77999b MATH-1606: Remove outdated example applications.
a77999b is described below
commit a77999bb84cf0736c3eda29de1fd53d2509cd872
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Wed Jun 9 01:02:20 2021 +0200
MATH-1606: Remove outdated example applications.
Illustrated functionality was moved to "Commons Statistics".
---
.../userguide/IntegerDistributionComparison.java | 239 ----------------
.../userguide/RealDistributionComparison.java | 306 ---------------------
2 files changed, 545 deletions(-)
diff --git a/src/userguide/java/org/apache/commons/math4/userguide/IntegerDistributionComparison.java b/src/userguide/java/org/apache/commons/math4/userguide/IntegerDistributionComparison.java
deleted file mode 100644
index 74a5cb6..0000000
--- a/src/userguide/java/org/apache/commons/math4/userguide/IntegerDistributionComparison.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.math4.userguide;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-
-import org.apache.commons.statistics.distribution.BinomialDistribution;
-import org.apache.commons.statistics.distribution.GeometricDistribution;
-import org.apache.commons.statistics.distribution.HypergeometricDistribution;
-import org.apache.commons.statistics.distribution.DiscreteDistribution;
-import org.apache.commons.statistics.distribution.PascalDistribution;
-import org.apache.commons.statistics.distribution.PoissonDistribution;
-import org.apache.commons.statistics.distribution.UniformDiscreteDistribution;
-import org.apache.commons.statistics.distribution.ZipfDistribution;
-import org.apache.commons.math4.userguide.ExampleUtils.ExampleFrame;
-
-import com.xeiam.xchart.Chart;
-import com.xeiam.xchart.ChartBuilder;
-import com.xeiam.xchart.Series;
-import com.xeiam.xchart.SeriesMarker;
-import com.xeiam.xchart.StyleManager.ChartType;
-import com.xeiam.xchart.StyleManager.LegendPosition;
-import com.xeiam.xchart.XChartPanel;
-
-/**
- * Displays pdf/cdf for integer distributions.
- */
-public class IntegerDistributionComparison {
-
- public static void addPDFSeries(Chart chart, DiscreteDistribution distribution, String desc, int lowerBound, int upperBound) {
- // generates Log data
- List<Number> xData = new ArrayList<Number>();
- List<Number> yData = new ArrayList<Number>();
- for (int x = lowerBound; x <= upperBound; x += 1) {
- try {
- double probability = distribution.probability(x);
- if (! Double.isInfinite(probability) && ! Double.isNaN(probability)) {
- xData.add(x);
- yData.add(probability);
- }
- } catch (Exception e) {
- // ignore
- // some distributions may reject certain values depending on the parameter settings
- }
- }
-
- Series series = chart.addSeries(desc, xData, yData);
- series.setMarker(SeriesMarker.NONE);
- series.setLineStyle(new BasicStroke(1.2f));
- }
-
- public static void addCDFSeries(Chart chart, DiscreteDistribution distribution, String desc,
- int lowerBound, int upperBound) {
- // generates Log data
- List<Number> xData = new ArrayList<Number>();
- List<Number> yData = new ArrayList<Number>();
- for (int x = lowerBound; x <= upperBound; x += 1) {
- double density = distribution.cumulativeProbability(x);
- if (! Double.isInfinite(density) && ! Double.isNaN(density)) {
- xData.add(x);
- yData.add(density);
- }
- }
-
- Series series = chart.addSeries(desc, xData, yData);
- series.setMarker(SeriesMarker.NONE);
- series.setLineStyle(new BasicStroke(1.2f));
- }
-
- public static Chart createChart(String title, int minX, int maxX, LegendPosition position) {
- Chart chart = new ChartBuilder().width(235).height(200).build();
-
- // Customize Chart
- chart.setChartTitle(title);
- chart.getStyleManager().setChartTitleVisible(true);
- chart.getStyleManager().setChartTitleFont(new Font("Arial", Font.PLAIN, 10));
- chart.getStyleManager().setLegendPosition(position);
- chart.getStyleManager().setLegendVisible(true);
- chart.getStyleManager().setLegendFont(new Font("Arial", Font.PLAIN, 10));
- chart.getStyleManager().setLegendPadding(6);
- chart.getStyleManager().setLegendSeriesLineLength(6);
- chart.getStyleManager().setAxisTickLabelsFont(new Font("Arial", Font.PLAIN, 9));
-
- chart.getStyleManager().setXAxisMin(minX);
- chart.getStyleManager().setXAxisMax(maxX);
- chart.getStyleManager().setChartBackgroundColor(Color.white);
- chart.getStyleManager().setChartPadding(4);
-
- chart.getStyleManager().setChartType(ChartType.Line);
- return chart;
- }
-
- public static JComponent createComponent(String distributionName, int minX, int maxX, String[] seriesText,
- DiscreteDistribution... series) {
- JComponent container = new JPanel();
- container.setLayout(new BoxLayout(container, BoxLayout.PAGE_AXIS));
-
- container.add(new JLabel(distributionName));
-
- Chart chart = createChart("PDF", minX, maxX, LegendPosition.InsideNE);
- int i = 0;
- for (DiscreteDistribution d : series) {
- addPDFSeries(chart, d, seriesText[i++], minX, maxX);
- }
- container.add(new XChartPanel(chart));
-
- chart = createChart("CDF", minX, maxX, LegendPosition.InsideSE);
- i = 0;
- for (DiscreteDistribution d : series) {
- addCDFSeries(chart, d, seriesText[i++], minX, maxX);
- }
- container.add(new XChartPanel(chart));
-
- container.setBorder(BorderFactory.createLineBorder(Color.black, 1));
- return container;
- }
-
- @SuppressWarnings("serial")
- public static class Display extends ExampleFrame {
-
- private JComponent container;
-
- public Display() {
- setTitle("Commons-Math: Integer distributions overview");
- setSize(1320, 920);
-
- container = new JPanel();
- container.setLayout(new GridBagLayout());
-
- GridBagConstraints c = new GridBagConstraints();
- c.fill = GridBagConstraints.VERTICAL;
- c.gridx = 0;
- c.gridy = 0;
- c.insets = new Insets(2, 2, 2, 2);
-
- JComponent comp = null;
-
- comp = createComponent("Binomial", 0, 40,
- new String[] { "p=0.5,n=20", "p=0.7,n=20", "p=0.5,n=40" },
- new BinomialDistribution(20, 0.5),
- new BinomialDistribution(20, 0.7),
- new BinomialDistribution(40, 0.5));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Geometric", 0, 10,
- new String[] { "p=0.2", "p=0.5", "p=0.8" },
- new GeometricDistribution(0.2),
- new GeometricDistribution(0.5),
- new GeometricDistribution(0.8));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Hypergeometric", 0, 10,
- new String[] { "p=0.3", "p=0.5", "p=0.75" },
- new HypergeometricDistribution(100, 6, 20),
- new HypergeometricDistribution(100, 10, 20),
- new HypergeometricDistribution(100, 15, 20));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Pascal", 0, 50,
- new String[] { "p=0.3", "p=0.5", "p=0.7" },
- new PascalDistribution(10, 0.3),
- new PascalDistribution(10, 0.5),
- new PascalDistribution(10, 0.7));
- container.add(comp, c);
-
- c.gridy++;
- c.gridx = 0;
- comp = createComponent("Poisson", 0, 20,
- new String[] { "λ=1", "λ=4", "λ=10" },
- new PoissonDistribution(1),
- new PoissonDistribution(4),
- new PoissonDistribution(10));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Uniform", 0, 30,
- new String[] { "l=1,u=10", "l=5,u=20", "l=1,u=25" },
- new UniformDiscreteDistribution(1, 10),
- new UniformDiscreteDistribution(5, 20),
- new UniformDiscreteDistribution(1, 25));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Zipf", 0, 15,
- new String[] { "n=10,e=0.5", "n=10,e=1", "n=10,e=2", "n=10,e=5" },
- new ZipfDistribution(10, 0.5),
- new ZipfDistribution(10, 1),
- new ZipfDistribution(10, 2),
- new ZipfDistribution(10, 5));
- container.add(comp, c);
-
- JScrollPane scrollPane = new JScrollPane(container);
- add(scrollPane);
-
- }
-
- @Override
- public Component getMainPanel() {
- return container;
- }
-
- }
-
- public static void main(String[] args) {
- ExampleUtils.showExampleFrame(new Display());
- }
-}
diff --git a/src/userguide/java/org/apache/commons/math4/userguide/RealDistributionComparison.java b/src/userguide/java/org/apache/commons/math4/userguide/RealDistributionComparison.java
deleted file mode 100644
index 098c943..0000000
--- a/src/userguide/java/org/apache/commons/math4/userguide/RealDistributionComparison.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.math4.userguide;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-
-import org.apache.commons.statistics.distribution.BetaDistribution;
-import org.apache.commons.statistics.distribution.CauchyDistribution;
-import org.apache.commons.statistics.distribution.ChiSquaredDistribution;
-import org.apache.commons.statistics.distribution.ExponentialDistribution;
-import org.apache.commons.statistics.distribution.FDistribution;
-import org.apache.commons.statistics.distribution.GammaDistribution;
-import org.apache.commons.statistics.distribution.LevyDistribution;
-import org.apache.commons.statistics.distribution.LogNormalDistribution;
-import org.apache.commons.statistics.distribution.NormalDistribution;
-import org.apache.commons.statistics.distribution.ParetoDistribution;
-import org.apache.commons.statistics.distribution.ContinuousDistribution;
-import org.apache.commons.statistics.distribution.TDistribution;
-import org.apache.commons.statistics.distribution.WeibullDistribution;
-import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.userguide.ExampleUtils.ExampleFrame;
-
-import com.xeiam.xchart.Chart;
-import com.xeiam.xchart.ChartBuilder;
-import com.xeiam.xchart.Series;
-import com.xeiam.xchart.SeriesMarker;
-import com.xeiam.xchart.StyleManager.ChartType;
-import com.xeiam.xchart.StyleManager.LegendPosition;
-import com.xeiam.xchart.XChartPanel;
-
-/**
- * Displays pdf/cdf for real distributions.
- */
-public class RealDistributionComparison {
-
- public static void addPDFSeries(Chart chart, ContinuousDistribution distribution, String desc, int lowerBound, int upperBound) {
- // generates Log data
- List<Number> xData = new ArrayList<Number>();
- List<Number> yData = new ArrayList<Number>();
- int samples = 100;
- double stepSize = (upperBound - lowerBound) / (double) samples;
- for (double x = lowerBound; x <= upperBound; x += stepSize) {
- try {
- double density = distribution.density(x);
- if (! Double.isInfinite(density) && ! Double.isNaN(density)) {
- xData.add(x);
- yData.add(density);
- }
- } catch (Exception e) {
- // ignore
- // some distributions may reject certain values depending on the parameter settings
- }
- }
-
- Series series = chart.addSeries(desc, xData, yData);
- series.setMarker(SeriesMarker.NONE);
- series.setLineStyle(new BasicStroke(1.2f));
- }
-
- public static void addCDFSeries(Chart chart, ContinuousDistribution distribution, String desc, int lowerBound, int upperBound) {
- // generates Log data
- List<Number> xData = new ArrayList<Number>();
- List<Number> yData = new ArrayList<Number>();
- int samples = 100;
- double stepSize = (upperBound - lowerBound) / (double) samples;
- for (double x = lowerBound; x <= upperBound; x += stepSize) {
- double density = distribution.cumulativeProbability(x);
- if (! Double.isInfinite(density) && ! Double.isNaN(density)) {
- xData.add(x);
- yData.add(density);
- }
- }
-
- Series series = chart.addSeries(desc, xData, yData);
- series.setMarker(SeriesMarker.NONE);
- series.setLineStyle(new BasicStroke(1.2f));
- }
-
- public static Chart createChart(String title, int minX, int maxX, LegendPosition position) {
- Chart chart = new ChartBuilder().width(235).height(200).build();
-
- // Customize Chart
- chart.setChartTitle(title);
- chart.getStyleManager().setChartTitleVisible(true);
- chart.getStyleManager().setChartTitleFont(new Font("Arial", Font.PLAIN, 10));
- chart.getStyleManager().setLegendPosition(position);
- chart.getStyleManager().setLegendVisible(true);
- chart.getStyleManager().setLegendFont(new Font("Arial", Font.PLAIN, 10));
- chart.getStyleManager().setLegendPadding(6);
- chart.getStyleManager().setLegendSeriesLineLength(6);
- chart.getStyleManager().setAxisTickLabelsFont(new Font("Arial", Font.PLAIN, 9));
-
- chart.getStyleManager().setXAxisMin(minX);
- chart.getStyleManager().setXAxisMax(maxX);
- chart.getStyleManager().setChartBackgroundColor(Color.white);
- chart.getStyleManager().setChartPadding(4);
-
- chart.getStyleManager().setChartType(ChartType.Line);
- return chart;
- }
-
- public static JComponent createComponent(String distributionName, int minX, int maxX, String[] seriesText, ContinuousDistribution... series) {
- JComponent container = new JPanel();
- container.setLayout(new BoxLayout(container, BoxLayout.PAGE_AXIS));
-
- container.add(new JLabel(distributionName));
-
- Chart chart = createChart("PDF", minX, maxX, LegendPosition.InsideNE);
- int i = 0;
- for (ContinuousDistribution d : series) {
- addPDFSeries(chart, d, seriesText[i++], minX, maxX);
- }
- container.add(new XChartPanel(chart));
-
- chart = createChart("CDF", minX, maxX, LegendPosition.InsideSE);
- i = 0;
- for (ContinuousDistribution d : series) {
- addCDFSeries(chart, d, seriesText[i++], minX, maxX);
- }
- container.add(new XChartPanel(chart));
-
- container.setBorder(BorderFactory.createLineBorder(Color.black, 1));
- return container;
- }
-
- @SuppressWarnings("serial")
- public static class Display extends ExampleFrame {
-
- private JComponent container;
-
- public Display() {
- setTitle("Commons-Math: Real distributions overview");
- setSize(1320, 920);
-
- container = new JPanel();
- container.setLayout(new GridBagLayout());
-
- GridBagConstraints c = new GridBagConstraints();
- c.fill = GridBagConstraints.VERTICAL;
- c.gridx = 0;
- c.gridy = 0;
- c.insets = new Insets(2, 2, 2, 2);
-
- JComponent comp = null;
-
- comp = createComponent("Normal", -5, 5,
- new String[] { "μ=0,σ\u00B2=0.2", "μ=0,σ\u00B2=1", "μ=0,σ\u00B2=5", "μ=-2,σ\u00B2=0.5" },
- new NormalDistribution(0, FastMath.sqrt(0.2)),
- new NormalDistribution(0, 1),
- new NormalDistribution(0, FastMath.sqrt(5)),
- new NormalDistribution(-2, FastMath.sqrt(0.5)));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Beta", 0, 1,
- new String[] { "α=β=0.5", "α=5,β=1", "α=1,β=3", "α=2,β=2", "α=2,β=5" },
- new BetaDistribution(0.5, 0.5),
- new BetaDistribution(5, 1),
- new BetaDistribution(1, 3),
- new BetaDistribution(2, 2),
- new BetaDistribution(2, 5));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Cauchy", -5, 5,
- new String[] { "x=0,γ=0.5", "x=0,γ=1", "x=0,γ=2", "x=-2,γ=1" },
- new CauchyDistribution(0, 0.5),
- new CauchyDistribution(0, 1),
- new CauchyDistribution(0, 2),
- new CauchyDistribution(-2, 1));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("ChiSquared", 0, 5,
- new String[] { "k=1", "k=2", "k=3", "k=4", "k=6" },
- new ChiSquaredDistribution(1),
- new ChiSquaredDistribution(2),
- new ChiSquaredDistribution(3),
- new ChiSquaredDistribution(4),
- new ChiSquaredDistribution(6));
- container.add(comp, c);
-
- c.gridy++;
- c.gridx = 0;
- comp = createComponent("Exponential", 0, 5,
- new String[] { "λ=0.5", "λ=1", "λ=1.5", "λ=2.5" },
- new ExponentialDistribution(0.5),
- new ExponentialDistribution(1),
- new ExponentialDistribution(1.5),
- new ExponentialDistribution(2.5));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Fisher-Snedecor", 0, 5,
- new String[] { "d1=1,d2=1", "d1=2,d2=1", "d1=5,d2=2", "d1=100,d2=1", "d1=100,d2=100" },
- new FDistribution(1, 1),
- new FDistribution(2, 1),
- new FDistribution(5, 2),
- new FDistribution(100, 1),
- new FDistribution(100, 100));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Gamma", 0, 20,
- new String[] { "k=1,θ=2", "k=2,θ=2", "k=3,θ=2", "k=5,θ=1", "k=9,θ=0.5" },
- new GammaDistribution(1, 2),
- new GammaDistribution(2, 2),
- new GammaDistribution(3, 2),
- new GammaDistribution(5, 1),
- new GammaDistribution(9, 0.5));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Levy", 0, 3,
- new String[] { "c=0.5", "c=1", "c=2", "c=4", "c=8" },
- new LevyDistribution(0, 0.5),
- new LevyDistribution(0, 1),
- new LevyDistribution(0, 2),
- new LevyDistribution(0, 4),
- new LevyDistribution(0, 8));
- container.add(comp, c);
-
- c.gridy++;
- c.gridx = 0;
- comp = createComponent("Log-Normal", 0, 3,
- new String[] { "μ=0,σ\u00B2=10", "μ=0,σ\u00B2=1.5", "μ=0,σ\u00B2=1", "μ=0,σ\u00B2=0.5", "μ=0,σ\u00B2=0.25", "μ=0,σ\u00B2=0.125" },
- new LogNormalDistribution(0, 10),
- new LogNormalDistribution(0, 1.5),
- new LogNormalDistribution(0, 1),
- new LogNormalDistribution(0, 0.5),
- new LogNormalDistribution(0, 0.25),
- new LogNormalDistribution(0, 0.125));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Pareto", 0, 5,
- new String[] { "x=1,α=1", "x=1,α=2", "x=1,α=3", "x=1,α=10" },
- new ParetoDistribution(1, 1),
- new ParetoDistribution(1, 2),
- new ParetoDistribution(1, 3),
- new ParetoDistribution(1, 10));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Student-T", -5, 5,
- new String[] { "df=1", "df=2", "df=5", "df=10000" },
- new TDistribution(1),
- new TDistribution(2),
- new TDistribution(5),
- new TDistribution(10000));
- container.add(comp, c);
-
- c.gridx++;
- comp = createComponent("Weibull", 0, 3,
- new String[] { "λ=0.5,k=1", "λ=1,k=1", "λ=1.5,k=1", "λ=5,k=1" },
- new WeibullDistribution(0.5, 1),
- new WeibullDistribution(1, 1),
- new WeibullDistribution(1.5, 1),
- new WeibullDistribution(5, 1));
- container.add(comp, c);
-
- JScrollPane scrollPane = new JScrollPane(container);
- add(scrollPane);
-
- }
-
- @Override
- public Component getMainPanel() {
- return container;
- }
-
- }
-
- public static void main(String[] args) {
- ExampleUtils.showExampleFrame(new Display());
- }
-}