Author: luc Date: Wed Dec 9 22:49:24 2009 New Revision: 889007 URL: http://svn.apache.org/viewvc?rev=889007&view=rev Log: added UnivariateRealFunction type implementations of the java.lang.Math methods
Added: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/UnivariateRealFunctions.java (with props) Modified: commons/proper/math/trunk/pom.xml Modified: commons/proper/math/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/pom.xml?rev=889007&r1=889006&r2=889007&view=diff ============================================================================== --- commons/proper/math/trunk/pom.xml (original) +++ commons/proper/math/trunk/pom.xml Wed Dec 9 22:49:24 2009 @@ -167,6 +167,9 @@ <url>http://www.benmccann.com</url> </contributor> <contributor> + <name>Jake Mannix</name> + </contributor> + <contributor> <name>Fredrik Norin</name> </contributor> <contributor> Added: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/UnivariateRealFunctions.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/UnivariateRealFunctions.java?rev=889007&view=auto ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/UnivariateRealFunctions.java (added) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/UnivariateRealFunctions.java Wed Dec 9 22:49:24 2009 @@ -0,0 +1,225 @@ +/* + * 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.math.analysis; + + +/** + * Set of {...@link UnivariateRealFunction} classes wrapping methods from + * the standard Math class. + * + * @version $Revision$ $Date$ + */ +public class UnivariateRealFunctions { + + /** The {...@code Math.abs} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction ABS = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.abs(d); + } + }; + + /** The - operator wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction NEGATE = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return -d; + } + }; + + /** The {...@code Math.sin} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction SIN = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.sin(d); + } + }; + + /** The {...@code Math.sqrt} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction SQRT = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.sqrt(d); + } + }; + + /** The {...@code Math.sinh} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction SINH = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.sinh(d); + } + }; + + /** The {...@code Math.exp} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction EXP = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.exp(d); + } + }; + + /** The {...@code Math.expm1} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction EXP1M = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.expm1(d); + } + }; + + /** The {...@code Math.asin} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction ASIN = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.asin(d); + } + }; + + /** The {...@code Math.atan} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction ATAN = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.atan(d); + } + }; + + /** The {...@code Math.tan} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction TAN = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.tan(d); + } + }; + + /** The {...@code Math.tanh} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction TANH = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.tanh(d); + } + }; + + /** The {...@code Math.cbrt} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction CBRT = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.cbrt(d); + } + }; + + /** The {...@code Math.ceil} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction CEIL = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.ceil(d); + } + }; + + /** The {...@code Math.floor} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction FLOOR = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.floor(d); + } + }; + + /** The {...@code Math.log} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction LOG = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.log(d); + } + }; + + /** The {...@code Math.log10} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction LOG10 = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.log10(d); + } + }; + + /** The {...@code Math.cos} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction COS = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.cos(d); + } + }; + + /** The {...@code Math.abs} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction ACOS = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.acos(d); + } + }; + + /** The {...@code Math.cosh} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction COSH = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.cosh(d); + } + }; + + /** The {...@code Math.rint} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction RINT = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.rint(d); + } + }; + + /** The {...@code Math.signum} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction SIGNUM = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.signum(d); + } + }; + + /** The {...@code Math.ulp} method wrapped as a {...@link UnivariateRealFunction}. */ + public static final UnivariateRealFunction ULP = new UnivariateRealFunction() { + /** {...@inheritdoc} */ + public double value(double d) { + return Math.ulp(d); + } + }; + + /** The {...@code Math.pow} method wrapped as a {...@link UnivariateRealFunction}. */ + public static class Pow implements UnivariateRealFunction { + + /** The power to which the value should be raised. */ + private final double pow; + + /** Simple constructor. + * @param pow the power to which the value should be raised + */ + public Pow(double pow) { + this.pow = pow; + } + + /** {...@inheritdoc} */ + public double value(double d) { + return Math.pow(d, pow); + } + + } + +} Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/UnivariateRealFunctions.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/UnivariateRealFunctions.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision