// MathUtility.java
/**
* Contains some static methods to perform
* routine mathematical chores.
*
* @author D. Nixon
*/
public class MathUtility {
/**
* Raises a floating-point number to a
* specified integer power.
*
* @param base the number to be raised to a power.
* @param exponent the integer exponent.
* @return base raised to the exponent power.
*/
public static double power(float base, int exponent)
{
if ( exponent < 0 ) {
exponent = 0 - exponent;
base = 1 / base;
} // if exponent < 0
double product = 1;
for ( int i = 0; i < exponent; i++ )
product *= base;
return product;
} // method power(float, int)
/**
* Raises an integer to a specified integer power,
* returning a long integer.
*
* Note that raising an integer to an integer power
* can yield an integer value only if the exponent
* is non-negative.
*
* @param base the number to be raised to a power.
* @param exponent the integer exponent.
* @return base raised to the exponent power,
* if exponent is non-negative.
* Otherwise, returns zero and prints
* an error message to the standard
* error stream.
*/
public static long power(int base, int exponent)
{
if (exponent < 0) {
System.err.println("Error: MathUtility.power(int, int) "
+ "cannot handle exponent "
+ exponent + " < 0.");
System.err.println("Non-negative exponent required to "
+ "return long integer value.");
return 0;
} // if exponent < 0
long product = 1;
for ( int i = 0; i < exponent; i++ )
product *= base;
return product;
} // method power(int, int)
} // class MathUtility