Author: psteitz Date: Wed Jun 20 16:39:50 2007 New Revision: 549299 URL: http://svn.apache.org/viewvc?view=rev&rev=549299 Log: Added log function. JIRA: MATH-158
Modified: jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/util/MathUtils.java jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/util/MathUtilsTest.java jakarta/commons/proper/math/trunk/xdocs/changes.xml Modified: jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/util/MathUtils.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/util/MathUtils.java?view=diff&rev=549299&r1=549298&r2=549299 ============================================================================== --- jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/util/MathUtils.java (original) +++ jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/util/MathUtils.java Wed Jun 20 16:39:50 2007 @@ -117,7 +117,26 @@ } return result; } - + + /** + * <p>Returns the + * <a href="http://mathworld.wolfram.com/Logarithm.html">logarithm</a> + * for base <code>b</code> of <code>x</code>. + * </p> + * <p>Returns <code>NaN<code> if either argument is negative. If + * <code>base</code> is 0 and <code>x</code> is positive, 0 is returned. + * If <code>base</code> is positive and <code>x</code> is 0, + * <code>Double.NEGATIVE_INFINITY</code> is returned. If both arguments + * are 0, the result is <code>NaN</code>.</p> + * + * @param base the base of the logarithm, must be greater than 0 + * @param x argument, must be greater than 0 + * @return the value of the logarithm - the number y such that base^y = x. + */ + public static double log(double base, double x) { + return Math.log(x)/Math.log(base); + } + /** * Returns a <code>double</code> representation of the <a * href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial Modified: jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/util/MathUtilsTest.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/util/MathUtilsTest.java?view=diff&rev=549299&r1=549298&r2=549299 ============================================================================== --- jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/util/MathUtilsTest.java (original) +++ jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/util/MathUtilsTest.java Wed Jun 20 16:39:50 2007 @@ -444,6 +444,16 @@ } } + public void testLog() { + assertEquals(2.0, MathUtils.log(2,4), 0); + assertEquals(3.0, MathUtils.log(2,8), 0); + assertTrue(Double.isNaN(MathUtils.log(-1, 1))); + assertTrue(Double.isNaN(MathUtils.log(1, -1))); + assertTrue(Double.isNaN(MathUtils.log(0, 0))); + assertEquals(0, MathUtils.log(0, 10), 0); + assertEquals(Double.NEGATIVE_INFINITY, MathUtils.log(10, 0), 0); + } + public void testGcd() { int a = 30; int b = 50; Modified: jakarta/commons/proper/math/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/xdocs/changes.xml?view=diff&rev=549299&r1=549298&r2=549299 ============================================================================== --- jakarta/commons/proper/math/trunk/xdocs/changes.xml (original) +++ jakarta/commons/proper/math/trunk/xdocs/changes.xml Wed Jun 20 16:39:50 2007 @@ -81,6 +81,9 @@ <action dev="psteitz" type="fix" issue="MATH-166" due-to="Lukas Theussl"> Increased default precision of Gamma and Beta functions. </action> + <action dev="psteitz" type="update" issue="MATH-158" due-to "Hasan Diwan"> + Added log function to MathUtils. + </action> </release> <release version="1.1" date="2005-12-17" description="This is a maintenance release containing bug fixes and enhancements. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]