org.apfloat
Class Apint

java.lang.Object
  extended by java.lang.Number
      extended by org.apfloat.Apcomplex
          extended by org.apfloat.Apfloat
              extended by org.apfloat.Aprational
                  extended by org.apfloat.Apint
All Implemented Interfaces:
Serializable, Comparable<Apfloat>, Formattable

public class Apint
extends Aprational

Arbitrary precision integer class.

In addition to the constructors, it is possible to create an apint from an apfloat or aprational via the methods that round these numbers to an integer value: Apfloat.floor(), Apfloat.ceil(), and Apfloat.truncate().

Version:
1.3
Author:
Mikko Tommila
See Also:
ApintMath, Serialized Form

Field Summary
 
Fields inherited from class org.apfloat.Apcomplex
DEFAULT, I, INFINITE, ONE, ZERO
 
Constructor Summary
protected Apint()
          Default constructor.
  Apint(BigInteger value)
          Constructs an apint from a BigInteger.
  Apint(BigInteger value, int radix)
          Constructs an apint from a BigInteger using the specified radix.
  Apint(long value)
          Constructs an apfloat from the specified long.
  Apint(long value, int radix)
          Constructs an apfloat from the specified long and radix.
  Apint(PushbackReader in)
          Reads an apint from a stream using the default radix.
  Apint(PushbackReader in, int radix)
          Reads an apint from a stream using the specified radix.
  Apint(String value)
          Constructs an apfloat from the specified string.
  Apint(String value, int radix)
          Constructs an apfloat from the specified string and radix.
 
Method Summary
 Apint add(Apint x)
          Adds two apints.
 Apint ceil()
          Ceiling function.
 int compareTo(Apfloat x)
          Compare this apint to the specified apfloat.
 int compareTo(Apint x)
          Compare this apint to the specified apint.
 int compareTo(Aprational x)
          Compare this apint to the specified aprational.
 Apint denominator()
          Denominator of this aprational.
 Apint divide(Apint x)
          Divides two apints.
 boolean equals(Object obj)
          Compares this object to the specified object.
 Apint floor()
          Floor function.
 void formatTo(Formatter formatter, int flags, int width, int precision)
          Formats the object using the provided formatter.
protected  ApfloatImpl getImpl(long precision)
          Returns an ApfloatImpl representing this apint up to the requested precision.
 int hashCode()
          Returns a hash code for this apint.
 boolean isShort()
          Returns if this apint is "short".
 Apint mod(Apint x)
          Calculates the remainder when divided by an apint.
 Apint multiply(Apint x)
          Multiplies two apints.
 Apint negate()
          Negative value.
 Apint numerator()
          Numerator of this aprational.
 int radix()
          Radix of this apint.
 long scale()
          Returns the scale of this apint.
 int signum()
          Returns the signum function of this apint.
 Apint subtract(Apint x)
          Subtracts two apints.
 Apint toRadix(int radix)
          Convert this apint to the specified radix.
 String toString(boolean pretty)
          Returns a string representation of this aprational.
 Apint truncate()
          Truncates fractional part.
 void writeTo(Writer out, boolean pretty)
          Write a string representation of this aprational to a Writer.
 
Methods inherited from class org.apfloat.Aprational
add, divide, mod, multiply, precision, subtract, toString, writeTo
 
Methods inherited from class org.apfloat.Apfloat
add, byteValue, divide, doubleValue, equalDigits, floatValue, imag, intValue, longValue, mod, multiply, precision, real, shortValue, subtract
 
Methods inherited from class org.apfloat.Apcomplex
add, conj, divide, equalDigits, multiply, subtract
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Apint

protected Apint()
Default constructor. To be used only by subclasses that overload all needed methods.


Apint

public Apint(String value)
      throws NumberFormatException,
             ApfloatRuntimeException
Constructs an apfloat from the specified string. The default radix will be used.

Parameters:
value - The string representing the number.
Throws:
NumberFormatException - In case the number is invalid.
ApfloatRuntimeException

Apint

public Apint(String value,
             int radix)
      throws NumberFormatException,
             ApfloatRuntimeException
Constructs an apfloat from the specified string and radix.

Parameters:
value - The string representing the number.
radix - The radix of the number.
Throws:
NumberFormatException - In case the number is invalid.
ApfloatRuntimeException

Apint

public Apint(long value)
      throws NumberFormatException,
             ApfloatRuntimeException
Constructs an apfloat from the specified long. The default radix will be used.

Parameters:
value - The value of the number.
Throws:
NumberFormatException - In case the number is invalid.
ApfloatRuntimeException

Apint

public Apint(long value,
             int radix)
      throws NumberFormatException,
             ApfloatRuntimeException
Constructs an apfloat from the specified long and radix.

Parameters:
value - The value of the number.
radix - The radix of the number.
Throws:
NumberFormatException - In case the number is invalid.
ApfloatRuntimeException

Apint

public Apint(PushbackReader in)
      throws IOException,
             NumberFormatException,
             ApfloatRuntimeException
Reads an apint from a stream using the default radix.

Parameters:
in - The stream to read from
Throws:
IOException - If an I/O error occurs accessing the stream.
NumberFormatException - If the number is not valid.
ApfloatRuntimeException

Apint

public Apint(PushbackReader in,
             int radix)
      throws IOException,
             NumberFormatException,
             ApfloatRuntimeException
Reads an apint from a stream using the specified radix.

Parameters:
in - The stream to read from
radix - The radix of the number.
Throws:
IOException - If an I/O error occurs accessing the stream.
NumberFormatException - If the number is not valid.
ApfloatRuntimeException

Apint

public Apint(BigInteger value)
      throws NumberFormatException,
             ApfloatRuntimeException
Constructs an apint from a BigInteger. The default radix is used.

Parameters:
value - The value of the number.
Throws:
NumberFormatException - If the default radix is not valid.
ApfloatRuntimeException

Apint

public Apint(BigInteger value,
             int radix)
      throws NumberFormatException,
             ApfloatRuntimeException
Constructs an apint from a BigInteger using the specified radix.

Parameters:
value - The value of the number.
radix - The radix of the number.
Throws:
NumberFormatException - If the radix is not valid.
ApfloatRuntimeException
Method Detail

numerator

public Apint numerator()
Numerator of this aprational.

Overrides:
numerator in class Aprational
Returns:
this.

denominator

public Apint denominator()
Denominator of this aprational.

Overrides:
denominator in class Aprational
Returns:
Apcomplex.ONE.

radix

public int radix()
Radix of this apint.

Overrides:
radix in class Aprational
Returns:
Radix of this apint.

scale

public long scale()
           throws ApfloatRuntimeException
Returns the scale of this apint. Scale is equal to the number of digits in an apint.

Zero has a scale of -INFINITE.

Overrides:
scale in class Aprational
Returns:
Number of digits in this apint in the radix in which it's presented.
Throws:
ApfloatRuntimeException
See Also:
Apfloat.scale()

signum

public int signum()
Returns the signum function of this apint.

Overrides:
signum in class Aprational
Returns:
-1, 0 or 1 as the value of this apint is negative, zero or positive.

isShort

public boolean isShort()
                throws ApfloatRuntimeException
Returns if this apint is "short".

Overrides:
isShort in class Aprational
Returns:
true if the apint is "short", false if not.
Throws:
ApfloatRuntimeException
See Also:
Apfloat.isShort()

negate

public Apint negate()
             throws ApfloatRuntimeException
Negative value.

Overrides:
negate in class Aprational
Returns:
-this.
Throws:
ApfloatRuntimeException
Since:
1.1

add

public Apint add(Apint x)
          throws ApfloatRuntimeException
Adds two apints.

Parameters:
x - The number to be added to this number.
Returns:
this + x.
Throws:
ApfloatRuntimeException

subtract

public Apint subtract(Apint x)
               throws ApfloatRuntimeException
Subtracts two apints.

Parameters:
x - The number to be subtracted from this number.
Returns:
this - x.
Throws:
ApfloatRuntimeException

multiply

public Apint multiply(Apint x)
               throws ApfloatRuntimeException
Multiplies two apints.

Parameters:
x - The number to be multiplied by this number.
Returns:
this * x.
Throws:
ApfloatRuntimeException

divide

public Apint divide(Apint x)
             throws ArithmeticException,
                    ApfloatRuntimeException
Divides two apints.

Parameters:
x - The number by which this number is to be divided.
Returns:
this / x.
Throws:
ArithmeticException - In case the divisor is zero.
ApfloatRuntimeException

mod

public Apint mod(Apint x)
          throws ApfloatRuntimeException
Calculates the remainder when divided by an apint. The result has the same sign as this number. If x is zero, then zero is returned.

Parameters:
x - The number that is used as the divisor in the remainder calculation.
Returns:
this % x.
Throws:
ApfloatRuntimeException
See Also:
ApfloatMath.fmod(Apfloat,Apfloat)

floor

public Apint floor()
Floor function. Returns the largest (closest to positive infinity) value that is not greater than this apfloat and is equal to a mathematical integer.

Overrides:
floor in class Aprational
Returns:
This apint.

ceil

public Apint ceil()
Ceiling function. Returns the smallest (closest to negative infinity) value that is not less than this apfloat and is equal to a mathematical integer.

Overrides:
ceil in class Aprational
Returns:
This apint.

truncate

public Apint truncate()
Truncates fractional part.

Overrides:
truncate in class Aprational
Returns:
This apint.

toRadix

public Apint toRadix(int radix)
              throws NumberFormatException,
                     ApfloatRuntimeException
Convert this apint to the specified radix.

Overrides:
toRadix in class Aprational
Parameters:
radix - The radix.
Returns:
This number in the specified radix.
Throws:
NumberFormatException - If the radix is invalid.
ApfloatRuntimeException
Since:
1.2

compareTo

public int compareTo(Apint x)
Compare this apint to the specified apint.

Parameters:
x - Apint to which this apint is to be compared.
Returns:
-1, 0 or 1 as this apint is numerically less than, equal to, or greater than x.

compareTo

public int compareTo(Aprational x)
Compare this apint to the specified aprational.

Overrides:
compareTo in class Aprational
Parameters:
x - Aprational to which this apint is to be compared.
Returns:
-1, 0 or 1 as this apint is numerically less than, equal to, or greater than x.

compareTo

public int compareTo(Apfloat x)
Compare this apint to the specified apfloat.

Specified by:
compareTo in interface Comparable<Apfloat>
Overrides:
compareTo in class Aprational
Parameters:
x - Apfloat to which this apint is to be compared.
Returns:
-1, 0 or 1 as this apint is numerically less than, equal to, or greater than x.

equals

public boolean equals(Object obj)
Compares this object to the specified object.

Note: if two apfloats are compared where one number doesn't have enough precise digits, the mantissa is assumed to contain zeros. See Apfloat.compareTo(Apfloat).

Overrides:
equals in class Aprational
Parameters:
obj - The object to compare with.
Returns:
true if the objects are the same; false otherwise.

hashCode

public int hashCode()
Returns a hash code for this apint.

Overrides:
hashCode in class Aprational
Returns:
The hash code value for this object.

toString

public String toString(boolean pretty)
                throws ApfloatRuntimeException
Returns a string representation of this aprational.

Overrides:
toString in class Aprational
Parameters:
pretty - true to use a fixed-point notation, false to use an exponential notation.
Returns:
A string representing this object.
Throws:
ApfloatRuntimeException

writeTo

public void writeTo(Writer out,
                    boolean pretty)
             throws IOException,
                    ApfloatRuntimeException
Write a string representation of this aprational to a Writer.

Overrides:
writeTo in class Aprational
Parameters:
out - The output Writer.
pretty - true to use a fixed-point notation, false to use an exponential notation.
Throws:
IOException - In case of I/O error writing to the stream.
ApfloatRuntimeException

formatTo

public void formatTo(Formatter formatter,
                     int flags,
                     int width,
                     int precision)
Description copied from class: Aprational
Formats the object using the provided formatter.

Specified by:
formatTo in interface Formattable
Overrides:
formatTo in class Aprational
Parameters:
formatter - The formatter.
flags - The flags to modify the output format.
width - The minimum number of characters to be written to the output, or -1 for no minimum.
precision - The maximum number of characters to be written to the output, or -1 for no maximum.
See Also:
Apfloat.formatTo(Formatter,int,int,int)

getImpl

protected ApfloatImpl getImpl(long precision)
                       throws ApfloatRuntimeException
Returns an ApfloatImpl representing this apint up to the requested precision.

Overrides:
getImpl in class Aprational
Parameters:
precision - Precision of the ApfloatImpl that is needed.
Returns:
An ApfloatImpl representing this object to the requested precision.
Throws:
ApfloatRuntimeException