org.apfloat
Class AprationalMath

java.lang.Object
  extended by org.apfloat.AprationalMath

public class AprationalMath
extends Object

Various mathematical functions for arbitrary precision rational numbers.

Version:
1.3
Author:
Mikko Tommila

Method Summary
static Aprational abs(Aprational x)
          Absolute value.
static Aprational copySign(Aprational x, Aprational y)
          Copy sign from one argument to another.
static Aprational negate(Aprational x)
          Deprecated. Use Aprational.negate().
static Aprational pow(Aprational x, long n)
          Integer power.
static Aprational product(Aprational... x)
          Product of numbers.
static Aprational scale(Aprational x, long scale)
          Multiply by a power of the radix.
static Aprational sum(Aprational... x)
          Sum of numbers.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

pow

public static Aprational pow(Aprational x,
                             long n)
                      throws ArithmeticException,
                             ApfloatRuntimeException
Integer power.

Parameters:
x - Base of the power operator.
n - Exponent of the power operator.
Returns:
x to the n:th power, that is xn.
Throws:
ArithmeticException - If both x and n are zero.
ApfloatRuntimeException

negate

@Deprecated
public static Aprational negate(Aprational x)
                         throws ApfloatRuntimeException
Deprecated. Use Aprational.negate().

Returns an aprational whose value is -x.

Parameters:
x - The argument.
Returns:
-x.
Throws:
ApfloatRuntimeException

abs

public static Aprational abs(Aprational x)
                      throws ApfloatRuntimeException
Absolute value.

Parameters:
x - The argument.
Returns:
Absolute value of x.
Throws:
ApfloatRuntimeException

copySign

public static Aprational copySign(Aprational x,
                                  Aprational y)
                           throws ApfloatRuntimeException
Copy sign from one argument to another.

Parameters:
x - The value whose sign is to be adjusted.
y - The value whose sign is to be used.
Returns:
x with its sign changed to match the sign of y.
Throws:
ApfloatRuntimeException
Since:
1.1

scale

public static Aprational scale(Aprational x,
                               long scale)
                        throws ApfloatRuntimeException
Multiply by a power of the radix. Note that this method is prone to intermediate overflow errors. Also, scaling by a very large negative number won't result in an underflow and a zero result, but an overflow of the denominator and an exception thrown.

Parameters:
x - The argument.
scale - The scaling factor.
Returns:
x * x.radix()scale.
Throws:
ApfloatRuntimeException

product

public static Aprational product(Aprational... x)
                          throws IllegalArgumentException,
                                 ApfloatRuntimeException
Product of numbers. This method may perform significantly better than simply multiplying the numbers sequentially.

Parameters:
x - The argument(s).
Returns:
The product of the given numbers.
Throws:
IllegalArgumentException - If there are no arguments.
ApfloatRuntimeException
Since:
1.3

sum

public static Aprational sum(Aprational... x)
                      throws IllegalArgumentException,
                             ApfloatRuntimeException
Sum of numbers. This method may perform significantly better than simply adding the numbers sequentially.

Parameters:
x - The argument(s).
Returns:
The sum of the given numbers.
Throws:
IllegalArgumentException - If there are no arguments.
ApfloatRuntimeException
Since:
1.3