[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jakarta-commons-dev
Subject:    [3/3] commons-numbers git commit: Removed "Commons Math" code examples.
From:       erans () apache ! org
Date:       2017-04-30 15:38:09
Message-ID: d7476bb3da30443cb5882279dd44022d () git ! apache ! org
[Download RAW message or body]

Removed "Commons Math" code examples.


Project: http://git-wip-us.apache.org/repos/asf/commons-numbers/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-numbers/commit/a960a5ca
Tree: http://git-wip-us.apache.org/repos/asf/commons-numbers/tree/a960a5ca
Diff: http://git-wip-us.apache.org/repos/asf/commons-numbers/diff/a960a5ca

Branch: refs/heads/master
Commit: a960a5ca73b1f5b8bdce7fc75502b75e6d945aff
Parents: bd596be
Author: Gilles Sadowski <gilles@harfang.homelinux.org>
Authored: Sun Apr 30 17:32:32 2017 +0200
Committer: Gilles Sadowski <gilles@harfang.homelinux.org>
Committed: Sun Apr 30 17:32:32 2017 +0200

----------------------------------------------------------------------
 src/userguide/README                            |    8 -
 .../userguide/ClusterAlgorithmComparison.java   |  304 -----
 .../commons/math4/userguide/ExampleUtils.java   |  114 --
 .../userguide/FastMathTestPerformance.java      | 1142 ------------------
 .../IntegerDistributionComparison.java          |  239 ----
 .../LowDiscrepancyGeneratorComparison.java      |  253 ----
 .../userguide/RealDistributionComparison.java   |  309 -----
 .../clustering/ImageClusteringExample.java      |  203 ----
 .../userguide/filter/CannonballExample.java     |  321 -----
 .../filter/ConstantVoltageExample.java          |  240 ----
 .../userguide/genetics/HelloWorldExample.java   |  187 ---
 .../genetics/ImageEvolutionExample.java         |  230 ----
 .../math4/userguide/genetics/Polygon.java       |  121 --
 .../userguide/genetics/PolygonChromosome.java   |  135 ---
 .../genetics/RandomPolygonMutation.java         |   49 -
 .../userguide/geometry/GeometryExample.java     |  280 -----
 .../math4/userguide/sofm/ChineseRings.java      |  109 --
 .../userguide/sofm/ChineseRingsClassifier.java  |  335 -----
 src/userguide/pom.xml                           |   85 --
 src/userguide/resources/ColorfulBird.jpg        |  Bin 98227 -> 0 bytes
 src/userguide/resources/feather-small.gif       |  Bin 7128 -> 0 bytes
 src/userguide/resources/monalisa.png            |  Bin 29270 -> 0 bytes
 src/userguide/resources/references.txt          |    4 -
 23 files changed, 4668 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/a960a5ca/src/userguide/README
                
----------------------------------------------------------------------
diff --git a/src/userguide/README b/src/userguide/README
deleted file mode 100644
index a6bcedd..0000000
--- a/src/userguide/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This directory contains source code that is not part of the Apache
-Commons Math library.  It contains syntactically correct and working
-examples of use.
-
-In order to run one of the applications (a class that must contain a
-"main" method), you would type (in a shell console) a command similar
-to the following:
- $ mvn -q exec:java \
-Dexec.mainClass=org.apache.commons.complex.userguide.sofm.ChineseRingsClassifier

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/a960a5ca/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java
                
----------------------------------------------------------------------
diff --git a/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java \
b/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java
 deleted file mode 100644
index dba2ed7..0000000
--- a/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java
                
+++ /dev/null
@@ -1,304 +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.complex.userguide;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.RenderingHints;
-import java.awt.Shape;
-import java.awt.geom.Ellipse2D;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-
-import org.apache.commons.complex.distribution.NormalDistribution;
-import org.apache.commons.complex.geometry.euclidean.twod.Vector2D;
-import org.apache.commons.complex.ml.clustering.CentroidCluster;
-import org.apache.commons.complex.ml.clustering.Cluster;
-import org.apache.commons.complex.ml.clustering.Clusterable;
-import org.apache.commons.complex.ml.clustering.Clusterer;
-import org.apache.commons.complex.ml.clustering.DBSCANClusterer;
-import org.apache.commons.complex.ml.clustering.DoublePoint;
-import org.apache.commons.complex.ml.clustering.FuzzyKMeansClusterer;
-import org.apache.commons.complex.ml.clustering.KMeansPlusPlusClusterer;
-import org.apache.commons.complex.random.RandomAdaptor;
-import org.apache.commons.complex.random.RandomGenerator;
-import org.apache.commons.complex.random.SobolSequenceGenerator;
-import org.apache.commons.complex.random.Well19937c;
-import org.apache.commons.complex.util.FastMath;
-import org.apache.commons.complex.util.Pair;
-import org.apache.commons.complex.userguide.ExampleUtils.ExampleFrame;
-
-/**
- * Plots clustering results for various algorithms and datasets.
- * Based on
- * <a href="http://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_comparison.html">scikit \
                learn</a>.
- */
-public class ClusterAlgorithmComparison {
-
-    public static List<Vector2D> makeCircles(int samples, boolean shuffle, double \
                noise, double factor, final RandomGenerator random) {
-        if (factor < 0 || factor > 1) {
-            throw new IllegalArgumentException();
-        }
-        
-        NormalDistribution dist = new NormalDistribution(random, 0.0, noise, 1e-9);
-
-        List<Vector2D> points = new ArrayList<Vector2D>();
-        double range = 2.0 * FastMath.PI;
-        double step = range / (samples / 2.0 + 1);
-        for (double angle = 0; angle < range; angle += step) {
-            Vector2D outerCircle = new Vector2D(FastMath.cos(angle), \
                FastMath.sin(angle));
-            Vector2D innerCircle = outerCircle.scalarMultiply(factor);
-            
-            points.add(outerCircle.add(generateNoiseVector(dist)));
-            points.add(innerCircle.add(generateNoiseVector(dist)));
-        }
-        
-        if (shuffle) {
-            Collections.shuffle(points, new RandomAdaptor(random));
-        }
-
-        return points;
-    }
-
-    public static List<Vector2D> makeMoons(int samples, boolean shuffle, double \
                noise, RandomGenerator random) {
-        NormalDistribution dist = new NormalDistribution(random, 0.0, noise, 1e-9);
-
-        int nSamplesOut = samples / 2;
-        int nSamplesIn = samples - nSamplesOut;
-        
-        List<Vector2D> points = new ArrayList<Vector2D>();
-        double range = FastMath.PI;
-        double step = range / (nSamplesOut / 2.0);
-        for (double angle = 0; angle < range; angle += step) {
-            Vector2D outerCircle = new Vector2D(FastMath.cos(angle), \
                FastMath.sin(angle));
-            points.add(outerCircle.add(generateNoiseVector(dist)));
-        }
-
-        step = range / (nSamplesIn / 2.0);
-        for (double angle = 0; angle < range; angle += step) {
-            Vector2D innerCircle = new Vector2D(1 - FastMath.cos(angle), 1 - \
                FastMath.sin(angle) - 0.5);
-            points.add(innerCircle.add(generateNoiseVector(dist)));
-        }
-        
-        if (shuffle) {
-            Collections.shuffle(points, new RandomAdaptor(random));
-        }
-
-        return points;
-    }
-
-    public static List<Vector2D> makeBlobs(int samples, int centers, double \
                clusterStd,
-                                           double min, double max, boolean shuffle, \
                RandomGenerator random) {
-
-        NormalDistribution dist = new NormalDistribution(random, 0.0, clusterStd, \
                1e-9);
-
-        double range = max - min;
-        Vector2D[] centerPoints = new Vector2D[centers];
-        for (int i = 0; i < centers; i++) {
-            double x = random.nextDouble() * range + min;
-            double y = random.nextDouble() * range + min;
-            centerPoints[i] = new Vector2D(x, y);
-        }
-        
-        int[] nSamplesPerCenter = new int[centers];
-        int count = samples / centers;
-        Arrays.fill(nSamplesPerCenter, count);
-        
-        for (int i = 0; i < samples % centers; i++) {
-            nSamplesPerCenter[i]++;
-        }
-        
-        List<Vector2D> points = new ArrayList<Vector2D>();
-        for (int i = 0; i < centers; i++) {
-            for (int j = 0; j < nSamplesPerCenter[i]; j++) {
-                Vector2D point = new Vector2D(dist.sample(), dist.sample());
-                points.add(point.add(centerPoints[i]));
-            }
-        }
-        
-        if (shuffle) {
-            Collections.shuffle(points, new RandomAdaptor(random));
-        }
-
-        return points;
-    }
-    
-    public static List<Vector2D> makeRandom(int samples) {
-        SobolSequenceGenerator generator = new SobolSequenceGenerator(2);
-        generator.skipTo(999999);
-        List<Vector2D> points = new ArrayList<Vector2D>();
-        for (double i = 0; i < samples; i++) {
-            double[] vector = generator.nextVector();
-            vector[0] = vector[0] * 2 - 1;
-            vector[1] = vector[1] * 2 - 1;
-            Vector2D point = new Vector2D(vector);
-            points.add(point);
-        }
-        
-        return points;
-    }
-
-    public static Vector2D generateNoiseVector(NormalDistribution distribution) {
-        return new Vector2D(distribution.sample(), distribution.sample());
-    }
-    
-    public static List<DoublePoint> normalize(final List<Vector2D> input, double \
                minX, double maxX, double minY, double maxY) {
-        double rangeX = maxX - minX;
-        double rangeY = maxY - minY;
-        List<DoublePoint> points = new ArrayList<DoublePoint>();
-        for (Vector2D p : input) {
-            double[] arr = p.toArray();
-            arr[0] = (arr[0] - minX) / rangeX * 2 - 1;
-            arr[1] = (arr[1] - minY) / rangeY * 2 - 1;
-            points.add(new DoublePoint(arr));
-        }
-        return points;
-    }
-    
-    @SuppressWarnings("serial")
-    public static class Display extends ExampleFrame {
-        
-        public Display() {
-            setTitle("Commons-Math: Cluster algorithm comparison");
-            setSize(800, 800);
-            
-            setLayout(new GridBagLayout());
-            
-            int nSamples = 1500;
-            
-            RandomGenerator rng = new Well19937c(0);
-            List<List<DoublePoint>> datasets = new ArrayList<List<DoublePoint>>();
-
-            datasets.add(normalize(makeCircles(nSamples, true, 0.04, 0.5, rng), -1, \
                1, -1, 1));
-            datasets.add(normalize(makeMoons(nSamples, true, 0.04, rng), -1, 2, -1, \
                1));
-            datasets.add(normalize(makeBlobs(nSamples, 3, 1.0, -10, 10, true, rng), \
                -12, 12, -12, 12));
-            datasets.add(normalize(makeRandom(nSamples), -1, 1, -1, 1));
-
-            List<Pair<String, Clusterer<DoublePoint>>> algorithms = new \
                ArrayList<Pair<String, Clusterer<DoublePoint>>>();
-            
-            algorithms.add(new Pair<String, Clusterer<DoublePoint>>("KMeans\n(k=2)", \
                new KMeansPlusPlusClusterer<DoublePoint>(2)));            
-            algorithms.add(new Pair<String, Clusterer<DoublePoint>>("KMeans\n(k=3)", \
                new KMeansPlusPlusClusterer<DoublePoint>(3)));
-            algorithms.add(new Pair<String, \
Clusterer<DoublePoint>>("FuzzyKMeans\n(k=3, fuzzy=2)", new \
                FuzzyKMeansClusterer<DoublePoint>(3, 2)));
-            algorithms.add(new Pair<String, \
Clusterer<DoublePoint>>("FuzzyKMeans\n(k=3, fuzzy=10)", new \
                FuzzyKMeansClusterer<DoublePoint>(3, 10)));
-            algorithms.add(new Pair<String, \
Clusterer<DoublePoint>>("DBSCAN\n(eps=.1, min=3)", new \
                DBSCANClusterer<DoublePoint>(0.1, 3)));
-            
-            GridBagConstraints c = new GridBagConstraints();
-            c.fill = GridBagConstraints.VERTICAL;
-            c.gridx = 0;
-            c.gridy = 0;
-            c.insets = new Insets(2, 2, 2, 2);
-
-            for (Pair<String, Clusterer<DoublePoint>> pair : algorithms) {
-                JLabel text = new JLabel("<html><body>" + \
                pair.getFirst().replace("\n", "<br>"));
-                add(text, c);
-                c.gridx++;
-            }
-            c.gridy++;
-
-            for (List<DoublePoint> dataset : datasets) {
-                c.gridx = 0;
-                for (Pair<String, Clusterer<DoublePoint>> pair : algorithms) {
-                    long start = System.currentTimeMillis();
-                    List<? extends Cluster<DoublePoint>> clusters = \
                pair.getSecond().cluster(dataset);
-                    long end = System.currentTimeMillis();
-                    add(new ClusterPlot(clusters, end - start), c);
-                    c.gridx++;
-                }
-                c.gridy++;
-            }            
-        }
-
-    }
-
-    @SuppressWarnings("serial")
-    public static class ClusterPlot extends JComponent {
-
-        private static double PAD = 10;
-
-        private List<? extends Cluster<DoublePoint>> clusters;
-        private long duration;
-
-        public ClusterPlot(final List<? extends Cluster<DoublePoint>> clusters, long \
                duration) {
-            this.clusters = clusters;
-            this.duration = duration;
-        }
-        
-        @Override
-        protected void paintComponent(Graphics g) {
-            super.paintComponent(g);
-            Graphics2D g2 = (Graphics2D)g;
-            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
-                                RenderingHints.VALUE_ANTIALIAS_ON);
-
-            int w = getWidth();
-            int h = getHeight();
-
-            g2.clearRect(0, 0, w, h);
-            
-            g2.setPaint(Color.black);
-            g2.drawRect(0, 0, w - 1, h - 1);
-            
-            int index = 0;
-            Color[] colors = new Color[] { Color.red, Color.blue, \
                Color.green.darker() };
-            for (Cluster<DoublePoint> cluster : clusters) {
-                g2.setPaint(colors[index++]);
-                for (DoublePoint point : cluster.getPoints()) {
-                    Clusterable p = transform(point, w, h);
-                    double[] arr = p.getPoint();
-                    g2.fill(new Ellipse2D.Double(arr[0] - 1, arr[1] - 1, 3, 3));
-                }
-                
-                if (cluster instanceof CentroidCluster) {
-                    Clusterable p = transform(((CentroidCluster<?>) \
                cluster).getCenter(), w, h);
-                    double[] arr = p.getPoint();
-                    Shape s = new Ellipse2D.Double(arr[0] - 4, arr[1] - 4, 8, 8); 
-                    g2.fill(s);
-                    g2.setPaint(Color.black);
-                    g2.draw(s);
-                }
-            }
-            
-            g2.setPaint(Color.black);
-            g2.drawString(String.format("%.2f s", duration / 1e3), w - 40, h - 5);
-        }        
-        
-        @Override
-        public Dimension getPreferredSize() {
-            return new Dimension(150, 150);
-        }
-
-        private Clusterable transform(Clusterable point, int width, int height) {
-            double[] arr = point.getPoint();
-            return new DoublePoint(new double[] { PAD + (arr[0] + 1) / 2.0 * (width \
                - 2 * PAD),
-                                                  height - PAD - (arr[1] + 1) / 2.0 \
                * (height - 2 * PAD) });
-        }
-    }
-
-    public static void main(String[] args) {
-        ExampleUtils.showExampleFrame(new Display());
-    }
-}

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/a960a5ca/src/userguide/java/org/apache/commons/math4/userguide/ExampleUtils.java
                
----------------------------------------------------------------------
diff --git a/src/userguide/java/org/apache/commons/math4/userguide/ExampleUtils.java \
b/src/userguide/java/org/apache/commons/math4/userguide/ExampleUtils.java deleted \
file mode 100644 index 1b57361..0000000
--- a/src/userguide/java/org/apache/commons/math4/userguide/ExampleUtils.java
+++ /dev/null
@@ -1,114 +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.complex.userguide;
-
-import java.awt.Component;
-import java.awt.Graphics2D;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.InputEvent;
-import java.awt.event.KeyEvent;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-
-import javax.imageio.ImageIO;
-import javax.swing.JFileChooser;
-import javax.swing.JFrame;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.KeyStroke;
-import javax.swing.SwingUtilities;
-
-public class ExampleUtils {
-
-    @SuppressWarnings("serial")
-    public static class ExampleFrame extends JFrame {
-        
-        /**
-         * Returns the main panel which should be printed by the screenshot action.
-         * <p>
-         * By default, it returns the content pane of this frame, but can be \
                overriden
-         * in case the frame has a global scroll pane which would cut off any \
                offscreen content. 
-         *
-         * @return the main panel to print
-         */
-        public Component getMainPanel() {
-            return getContentPane();
-        }
-    }
-
-    public static void showExampleFrame(final ExampleFrame frame) {
-        Runnable r = new Runnable() {
-            public void run() {
-                JMenuItem screenshot = new JMenuItem("Screenshot (png)");
-                screenshot.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_0, \
                InputEvent.CTRL_DOWN_MASK));
-                screenshot.addActionListener(new ActionListener() {
-                    public void actionPerformed(ActionEvent ae) {
-                        JFileChooser fileChooser = new \
                JFileChooser(System.getProperty("user.dir"));
-                        if (fileChooser.showSaveDialog(frame) == \
                JFileChooser.APPROVE_OPTION) {
-                          File file = fileChooser.getSelectedFile();
-                          BufferedImage img = getScreenShot(frame.getMainPanel());
-                          try {
-                              // write the image as a PNG
-                              ImageIO.write(img, "png", file);
-                          } catch (Exception e) {
-                              e.printStackTrace();
-                          }
-                        }
-                    }
-                });
-                
-                JMenuItem exit = new JMenuItem("Exit");
-                exit.addActionListener(new ActionListener() {
-                    public void actionPerformed(ActionEvent e) {
-                        System.exit(0);
-                    }
-                });
-                
-                JMenu menu = new JMenu("File");
-                menu.add(screenshot);
-                menu.add(exit);
-                JMenuBar mb = new JMenuBar();
-                mb.add(menu);
-                frame.setJMenuBar(mb);
-
-                frame.setLocationRelativeTo(null);
-                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-                frame.setVisible(true);
-            }
-        };
-        SwingUtilities.invokeLater(r);
-    }
-
-    private static BufferedImage getScreenShot(Component component) {
-        BufferedImage image = new BufferedImage(component.getWidth(), \
                component.getHeight(), BufferedImage.TYPE_INT_RGB);
-        // call the Component's paint method, using the Graphics object of the \
                image.
-        component.paint(image.getGraphics());
-        return image;
-    }
-    
-    public static BufferedImage resizeImage(BufferedImage originalImage, int width, \
                int height, int type) throws IOException {
-        BufferedImage resizedImage = new BufferedImage(width, height, type);
-        Graphics2D g = resizedImage.createGraphics();
-        g.drawImage(originalImage, 0, 0, width, height, null);
-        g.dispose();
-        return resizedImage;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/a960a5ca/src/userguide/java/org/apache/commons/math4/userguide/FastMathTestPerformance.java
                
----------------------------------------------------------------------
diff --git a/src/userguide/java/org/apache/commons/math4/userguide/FastMathTestPerformance.java \
b/src/userguide/java/org/apache/commons/math4/userguide/FastMathTestPerformance.java \
deleted file mode 100644 index 1657174..0000000
--- a/src/userguide/java/org/apache/commons/math4/userguide/FastMathTestPerformance.java
                
+++ /dev/null
@@ -1,1142 +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.complex.userguide;
-
-import org.apache.commons.complex.PerfTestUtils;
-import org.apache.commons.complex.util.FastMath;
-
-/**
- * Performance benchmark for FastMath.
- * 
- */
-public class FastMathTestPerformance {
-    private static final int RUNS = \
                Integer.parseInt(System.getProperty("testRuns","10000000"));
-    private static final double F1 = 1d / RUNS;
-
-    // Header format
-    private static final String FMT_HDR = "%-13s %13s %13s %13s Runs=%d Java %s (%s) \
                %s (%s)";
-    // Detail format
-    private static final String FMT_DTL = "%-13s %6d %6.1f %6d %6.4f %6d %6.4f";
-
-    public static void main(String[] args) {
-        System.out.println(String.format(FMT_HDR,
-                                         "Name","StrictMath","FastMath","Math",RUNS,
-                                         System.getProperty("java.version"),
-                                         \
                System.getProperty("java.runtime.version","?"),
-                                         System.getProperty("java.vm.name"),
-                                         System.getProperty("java.vm.version")
-                                         ));
-        testAbs();
-        testAcos();
-        testAsin();
-        testAtan();
-        testAtan2();
-        testCbrt();
-        testCos();
-        testCosh();
-        testExp();
-        testExpm1();
-        testHypot();
-        testLog();
-        testLog10();
-        testLog1p();
-        testPow();
-        testSin();
-        testSinh();
-        testSqrt();
-        testTan();
-        testTanh();
-        testIEEEremainder();
-
-    }
-
-    @SuppressWarnings("boxing")
-    private static void report(String name, long strictMathTime, long fastMathTime, \
                long mathTime) {
-        long unitTime = strictMathTime;
-        System.out.println(String.format(FMT_DTL,
-                name,
-                strictMathTime / RUNS, (double) strictMathTime / unitTime,
-                fastMathTime / RUNS, (double) fastMathTime / unitTime,
-                mathTime / RUNS, (double) mathTime / unitTime
-                ));
-    }
-
-    private static void assertTrue(boolean condition) {
-        if (!condition) {
-            System.err.println("assertion failed!");
-            System.exit(1);
-        }
-    }
-    private static void testLog() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.log(0.01 + i);
-        }
-        long strictMath = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.log(0.01 + i);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.log(0.01 + i);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("log",strictMath,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testLog10() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.log10(0.01 + i);
-        }
-        long strictMath = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.log10(0.01 + i);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.log10(0.01 + i);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("log10",strictMath,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testLog1p() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.log1p(-0.9 + i);
-        }
-        long strictMath = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.log1p(-0.9 + i);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.log1p(-0.9 + i);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("log1p",strictMath,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testPow() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.pow(0.01 + i * F1, i * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.pow(0.01 + i * F1, i * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.pow(0.01 + i * F1, i * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-        report("pow",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testExp() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.exp(100 * i * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.exp(100 * i * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.exp(100 * i * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("exp",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testSin() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.sin(100 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.sin(100 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.sin(100 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("sin",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testAsin() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.asin(0.999 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.asin(0.999 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.asin(0.999 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("asin",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testCos() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.cos(100 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.cos(100 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.cos(100 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("cos",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-            
-    private static void testAcos() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.acos(0.999 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.acos(0.999 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.acos(0.999 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-        report("acos",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testTan() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.tan(100 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.tan(100 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.tan(100 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("tan",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testAtan() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.atan(100 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.atan(100 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.atan(100 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("atan",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testAtan2() {
-        double x = 0;
-        long time = System.nanoTime();
-        int max   = (int) FastMath.floor(FastMath.sqrt(RUNS));
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += StrictMath.atan2((i - max/2) * (100.0 / max), (j - max/2) * \
                (100.0 / max));
-            }
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += FastMath.atan2((i - max/2) * (100.0 / max), (j - max/2) * \
                (100.0 / max));
-            }
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += Math.atan2((i - max/2) * (100.0 / max), (j - max/2) * (100.0 / \
                max));
-            }
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("atan2",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testHypot() {
-        double x = 0;
-        long time = System.nanoTime();
-        int max   = (int) FastMath.floor(FastMath.sqrt(RUNS));
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += StrictMath.atan2((i - max/2) * (100.0 / max), (j - max/2) * \
                (100.0 / max));
-            }
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += FastMath.atan2((i - max/2) * (100.0 / max), (j - max/2) * \
                (100.0 / max));
-            }
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += Math.atan2((i - max/2) * (100.0 / max), (j - max/2) * (100.0 / \
                max));
-            }
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("hypot",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testIEEEremainder() {
-        double x = 0;
-        long time = System.nanoTime();
-        int max   = (int) FastMath.floor(FastMath.sqrt(RUNS));
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += StrictMath.IEEEremainder((i - max/2) * (100.0 / max), (j + 1) * \
                (100.0 / max));
-            }
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += FastMath.IEEEremainder((i - max/2) * (100.0 / max), (j + 1) * \
                (100.0 / max));
-            }
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < max; i++) {
-            for (int j = 0; j < max; j++) {
-                x += Math.IEEEremainder((i - max/2) * (100.0 / max), (j + 1) * \
                (100.0 / max));
-            }
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("IEEEremainder",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testCbrt() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.cbrt(100 * i * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.cbrt(100 * i * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.cbrt(100 * i * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("cbrt",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testSqrt() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.sqrt(100 * i * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.sqrt(100 * i * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.sqrt(100 * i * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("sqrt",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testCosh() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.cosh(100 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.cosh(100 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.cosh(100 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("cosh",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testSinh() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.sinh(100 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.sinh(100 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.sinh(100 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("sinh",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testTanh() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.tanh(100 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.tanh(100 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.tanh(100 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("tanh",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-     
-    private static void testExpm1() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.expm1(100 * (i - RUNS/2) * F1);
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.expm1(100 * (i - RUNS/2) * F1);
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.expm1(100 * (i - RUNS/2) * F1);
-        }
-        long mathTime = System.nanoTime() - time;
-        report("expm1",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    private static void testAbs() {
-        double x = 0;
-        long time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += StrictMath.abs(i * (1 - 0.5 * RUNS));
-        }
-        long strictTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += FastMath.abs(i * (1 - 0.5 * RUNS));
-        }
-        long fastTime = System.nanoTime() - time;
-
-        x = 0;
-        time = System.nanoTime();
-        for (int i = 0; i < RUNS; i++) {
-            x += Math.abs(i * (1 - 0.5 * RUNS));
-        }
-        long mathTime = System.nanoTime() - time;
-
-        report("abs",strictTime,fastTime,mathTime);
-        assertTrue(!Double.isNaN(x));
-    }
-
-    @SuppressWarnings("boxing")
-    private static void testSimpleBenchmark() {
-        final String SM = "StrictMath";
-        final String M = "Math";
-        final String FM = "FastMath";
-
-        final int maxWidth = 15;
-        final int numStat = 100;
-        final int numCall = RUNS / numStat;
-
-        final double x = Math.random();
-        final double y = Math.random();
-
-        PerfTestUtils.timeAndReport("log",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.log(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.log(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.log(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("log10",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.log10(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.log10(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.log10(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("log1p",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.log1p(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.log1p(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.log1p(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("pow",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.pow(x, y);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.pow(x, y);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.pow(x, y);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("exp",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.exp(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.exp(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.exp(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("sin",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.sin(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.sin(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.sin(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("asin",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.asin(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.asin(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.asin(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("cos",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.cos(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.cos(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.cos(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("acos",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.acos(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.acos(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.acos(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("tan",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.tan(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.tan(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.tan(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("atan",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.atan(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.atan(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.atan(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("atan2",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.atan2(x, y);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.atan2(x, y);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.atan2(x, y);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("hypot",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.hypot(x, y);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.hypot(x, y);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.hypot(x, y);
-                                        }
-                                    });
-
-
-        PerfTestUtils.timeAndReport("cbrt",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.cbrt(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.cbrt(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.cbrt(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("sqrt",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.sqrt(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.sqrt(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.sqrt(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("cosh",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.cosh(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.cosh(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.cosh(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("sinh",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.sinh(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.sinh(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.sinh(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("tanh",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.tanh(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.tanh(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.tanh(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("expm1",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.expm1(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.expm1(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.expm1(x);
-                                        }
-                                    });
-
-        PerfTestUtils.timeAndReport("abs",
-                                    maxWidth,
-                                    numCall,
-                                    numStat,
-                                    false,
-                                    new PerfTestUtils.RunTest(SM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return StrictMath.abs(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(M) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return Math.abs(x);
-                                        }
-                                    },
-                                    new PerfTestUtils.RunTest(FM) {
-                                        @Override
-                                        public Double call() throws Exception {
-                                            return FastMath.abs(x);
-                                        }
-                                    });
-    }
-}

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/a960a5ca/src/userguide/java/org/apache/commons/math4/userguide/IntegerDistributionComparison.java
                
----------------------------------------------------------------------
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 9e3c423..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.complex.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.complex.distribution.BinomialDistribution;
-import org.apache.commons.complex.distribution.GeometricDistribution;
-import org.apache.commons.complex.distribution.HypergeometricDistribution;
-import org.apache.commons.complex.distribution.IntegerDistribution;
-import org.apache.commons.complex.distribution.PascalDistribution;
-import org.apache.commons.complex.distribution.PoissonDistribution;
-import org.apache.commons.complex.distribution.UniformIntegerDistribution;
-import org.apache.commons.complex.distribution.ZipfDistribution;
-import org.apache.commons.complex.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, IntegerDistribution 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, IntegerDistribution 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,
-                                             IntegerDistribution... 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 (IntegerDistribution d : series) {
-            addPDFSeries(chart, d, seriesText[i++], minX, maxX);
-        }
-        container.add(new XChartPanel(chart));
-
-        chart = createChart("CDF", minX, maxX, LegendPosition.InsideSE);
-        i = 0;
-        for (IntegerDistribution 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 UniformIntegerDistribution(1, 10),
-                                   new UniformIntegerDistribution(5, 20),
-                                   new UniformIntegerDistribution(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());
-    }
-}


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic