001package com.hfg.math;
002
003
004//------------------------------------------------------------------------------
005/**
006 * General mathmatical utility methods.
007 *
008 * @author J. Alex Taylor, hairyfatguy.com
009 */
010//------------------------------------------------------------------------------
011// com.hfg XML/HTML Coding Library
012//
013// This library is free software; you can redistribute it and/or
014// modify it under the terms of the GNU Lesser General Public
015// License as published by the Free Software Foundation; either
016// version 2.1 of the License, or (at your option) any later version.
017//
018// This library is distributed in the hope that it will be useful,
019// but WITHOUT ANY WARRANTY; without even the implied warranty of
020// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
021// Lesser General Public License for more details.
022//
023// You should have received a copy of the GNU Lesser General Public
024// License along with this library; if not, write to the Free Software
025// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
026//
027// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com
028// jataylor@hairyfatguy.com
029//------------------------------------------------------------------------------
030
031public class MathUtil
032{
033   private static final double LOG_OF_2 = Math.log(2);
034
035   //**************************************************************************
036   // PUBLIC FUNCTIONS
037   //**************************************************************************
038
039   //--------------------------------------------------------------------------
040   public static long factorial(int inNum)
041   {
042      long result = 1;
043
044      for (int factor = 2; factor <= inNum; factor++)
045      {
046         result *= factor;
047      }
048
049      return result;
050   }
051
052   //--------------------------------------------------------------------------
053   /**
054    Calculates the log base 2 fo the specified value.
055    @param inValue the input value for which to calculate the log<sub>2</sub> value.
056    @return the log<sub>2</sub> value
057    */
058   public static double log2(double inValue)
059   {
060      return Math.log(inValue)/LOG_OF_2;
061   }
062
063}