Moved FastMathTestPerformance out of the main test tree. Is is a benchmark rather than a test.
JIRA: MATH-1195 Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/a6ed07c5 Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/a6ed07c5 Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/a6ed07c5 Branch: refs/heads/master Commit: a6ed07c55cf8c42e196dd6e6e1bf0a38f0f7b754 Parents: fa6fcf2 Author: Luc Maisonobe <[email protected]> Authored: Sun Apr 12 17:54:36 2015 +0200 Committer: Luc Maisonobe <[email protected]> Committed: Sun Apr 12 17:54:36 2015 +0200 ---------------------------------------------------------------------- src/changes/changes.xml | 4 + .../math4/util/FastMathTestPerformance.java | 1091 ------------------ .../userguide/FastMathTestPerformance.java | 1087 +++++++++++++++++ 3 files changed, 1091 insertions(+), 1091 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-math/blob/a6ed07c5/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 0bd49c4..3dada49 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -54,6 +54,10 @@ If the output is not quite correct, check for invisible trailing spaces! </release> <release version="4.0" date="XXXX-XX-XX" description=""> + <action dev="luc" type="fix" issue="MATH-1195"> + Moved FastMathTestPerformance out of the main test tree, as is is + a benchmark rather than a test. + </action> <action dev="luc" type="add"> Added a way to build polyhedrons sets from a list of vertices and facets specified using vertices indices. http://git-wip-us.apache.org/repos/asf/commons-math/blob/a6ed07c5/src/test/java/org/apache/commons/math4/util/FastMathTestPerformance.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math4/util/FastMathTestPerformance.java b/src/test/java/org/apache/commons/math4/util/FastMathTestPerformance.java deleted file mode 100644 index eb09f68..0000000 --- a/src/test/java/org/apache/commons/math4/util/FastMathTestPerformance.java +++ /dev/null @@ -1,1091 +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.util; - -import org.apache.commons.math4.PerfTestUtils; -import org.apache.commons.math4.util.FastMath; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.Assert; - -/** - * Performance tests for FastMath. - * Not enabled by default, as the class does not end in Test. - * - * Invoke by running<br/> - * {@code mvn test -Dtest=FastMathTestPerformance}<br/> - * or by running<br/> - * {@code mvn test -Dtest=FastMathTestPerformance -DargLine="-DtestRuns=1234 -server"}<br/> - */ -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 = "%-5s %13s %13s %13s Runs=%d Java %s (%s) %s (%s)"; - // Detail format - private static final String FMT_DTL = "%-5s %6d %6.1f %6d %6.4f %6d %6.4f"; - - @SuppressWarnings("boxing") - @BeforeClass - public static void header() { - 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") - )); - } - - @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 - )); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @Test - public 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); - Assert.assertTrue(!Double.isNaN(x)); - } - - @SuppressWarnings("boxing") - @Test - public void testSimpleBenchmark() { - final String SM = "StrictMath"; - final String M = "Math"; - final String FM = "FastMath"; - - final int numStat = 100; - final int numCall = RUNS / numStat; - - final double x = Math.random(); - final double y = Math.random(); - - PerfTestUtils.timeAndReport("log", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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", - 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); - } - }); - } -}
