ch.javasoft.math
Class IntegerOperations

java.lang.Object
  extended by ch.javasoft.math.AbstractNumberOps<Integer>
      extended by ch.javasoft.math.IntegerOperations
All Implemented Interfaces:
NumberOperations<Integer>, Comparator<Integer>

public class IntegerOperations
extends AbstractNumberOps<Integer>

Number operations for Integer numbers. A singleton instance exists for this class.


Constructor Summary
IntegerOperations()
           
 
Method Summary
 Integer abs(Integer number)
          Returns the absolute value of the given number, i.e.
 Integer add(Integer numA, Integer numB)
          Returns the sum of the two values, i.e.
 int byteLength()
          Returns the byte array length if NumberOperations.toByteArray(Number) is used and if this size is fixed, and -1 if the size may vary depending on the number instance
 int compare(Integer o1, Integer o2)
           
 Integer divide(Integer numA, Integer numB)
          Returns the ratio of the two values, i.e.
 Integer fromByteArray(byte[] bytes)
          Converts the byte array containing binary data into a new number instance.
static IntegerOperations instance()
          Returns the singleton instance
 Integer invert(Integer number)
          Returns the inverted value, i.e.
 boolean isOne(Integer number)
          Returns true if this value is numerically equal to one, i.e.
 boolean isZero(Integer number)
          Returns true if this value is numerically equal to zero, i.e.
 Integer multiply(Integer numA, Integer numB)
          Returns the product of the two values, i.e.
 Integer negate(Integer number)
          Returns the negated value, i.e.
 Integer[] newArray(int size)
          Create a new array of the underlying number type
 Integer[][] newArray(int rows, int cols)
          Create a new 2 dimensional array of the underlying number type
 Class<Integer> numberClass()
          The class representing numbers of this number operations instance
 Integer one()
          Returns the value representing one
 Integer pow(Integer numA, Integer numB)
          Returns the powered value, i.e.
 Integer readFrom(DataInput in)
          Reads binary data from the given data input.
 Integer reduce(Integer number)
          Converts the number into some reduced form.
 Integer[] reduceVector(boolean cloneOnChange, Integer... vector)
          Converts a vector into some reduced form.
 int signum(Integer number)
          Returns signum of the value, i.e.
 Integer subtract(Integer numA, Integer numB)
          Returns the difference of the two values, i.e.
 byte[] toByteArray(Integer number)
          Converts this number to binary data and returns it as a byte array.
 Integer valueOf(double value)
          Create an instance of the underlying number type based on the submitted double value
 Integer valueOf(long value)
          Create an instance of the underlying number type based on the submitted long integer value
 Integer valueOf(Number number)
          Create an instance of the underlying number type based on the submitted number
 Integer valueOf(String s)
          Create an instance of the underlying number type based on the given string representation of the number
 void writeTo(Integer number, DataOutput out)
          Converts this number to binary data and writes it to the data output.
 Integer zero()
          Returns the value representing zero
 
Methods inherited from class ch.javasoft.math.AbstractNumberOps
isNegative, isNonNegative, isNonPositive, isNonZero, isPositive, max, max, min, min
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Constructor Detail

IntegerOperations

public IntegerOperations()
Method Detail

instance

public static IntegerOperations instance()
Returns the singleton instance

Returns:
the singleton instance

numberClass

public Class<Integer> numberClass()
Description copied from interface: NumberOperations
The class representing numbers of this number operations instance


abs

public Integer abs(Integer number)
Description copied from interface: NumberOperations
Returns the absolute value of the given number, i.e. a non-negative value abs(number)

Specified by:
abs in interface NumberOperations<Integer>
Overrides:
abs in class AbstractNumberOps<Integer>

add

public Integer add(Integer numA,
                   Integer numB)
Description copied from interface: NumberOperations
Returns the sum of the two values, i.e. numA + numB


newArray

public Integer[] newArray(int size)
Description copied from interface: NumberOperations
Create a new array of the underlying number type


newArray

public Integer[][] newArray(int rows,
                            int cols)
Description copied from interface: NumberOperations
Create a new 2 dimensional array of the underlying number type


valueOf

public Integer valueOf(String s)
Description copied from interface: NumberOperations
Create an instance of the underlying number type based on the given string representation of the number


valueOf

public Integer valueOf(Number number)
Description copied from interface: NumberOperations
Create an instance of the underlying number type based on the submitted number


valueOf

public Integer valueOf(long value)
Description copied from interface: NumberOperations
Create an instance of the underlying number type based on the submitted long integer value


valueOf

public Integer valueOf(double value)
Description copied from interface: NumberOperations
Create an instance of the underlying number type based on the submitted double value


divide

public Integer divide(Integer numA,
                      Integer numB)
Description copied from interface: NumberOperations
Returns the ratio of the two values, i.e. numA / numB.

For integer types, an integer division is performed, ignoring possible remainders


invert

public Integer invert(Integer number)
Description copied from interface: NumberOperations
Returns the inverted value, i.e. 1 / number

Specified by:
invert in interface NumberOperations<Integer>
Overrides:
invert in class AbstractNumberOps<Integer>

isOne

public boolean isOne(Integer number)
Description copied from interface: NumberOperations
Returns true if this value is numerically equal to one, i.e. number == 1

Specified by:
isOne in interface NumberOperations<Integer>
Overrides:
isOne in class AbstractNumberOps<Integer>

isZero

public boolean isZero(Integer number)
Description copied from interface: NumberOperations
Returns true if this value is numerically equal to zero, i.e. number == 0

Specified by:
isZero in interface NumberOperations<Integer>
Overrides:
isZero in class AbstractNumberOps<Integer>

multiply

public Integer multiply(Integer numA,
                        Integer numB)
Description copied from interface: NumberOperations
Returns the product of the two values, i.e. numA * numB


negate

public Integer negate(Integer number)
Description copied from interface: NumberOperations
Returns the negated value, i.e. -number


reduce

public Integer reduce(Integer number)
Description copied from interface: NumberOperations
Converts the number into some reduced form. This can for instance mean reduction for fraction numbers. If no reduction can be made, the number is returned unchanged.


reduceVector

public Integer[] reduceVector(boolean cloneOnChange,
                              Integer... vector)
Description copied from interface: NumberOperations
Converts a vector into some reduced form. For integer or fraction number vectors, this can for instance mean that the vector is shortened by the greatest common divisor of all vector components.

Note that the vector length might change by this operation. If only individual components of the vector should be reduced, which is not affecting the vector's length, reduce each number separately.

Parameters:
cloneOnChange - if a reduction can be made, the array is cloned and the original array is not changed. If no reduction can be made, or if cloneOnChange is false, the original array will be returned, unmodified in the former case, and with reduced values in the latter case.
vector - the vector to reduce

one

public Integer one()
Description copied from interface: NumberOperations
Returns the value representing one


pow

public Integer pow(Integer numA,
                   Integer numB)
Description copied from interface: NumberOperations
Returns the powered value, i.e. numAnumB. Negative exponents are allowed, also for integer types, without causing an exception. E.g. 3^-1 yields 0.


signum

public int signum(Integer number)
Description copied from interface: NumberOperations
Returns signum of the value, i.e. -1, 0, 1 for negative, zero or positive values


subtract

public Integer subtract(Integer numA,
                        Integer numB)
Description copied from interface: NumberOperations
Returns the difference of the two values, i.e. numA - numB


zero

public Integer zero()
Description copied from interface: NumberOperations
Returns the value representing zero


compare

public int compare(Integer o1,
                   Integer o2)

toByteArray

public byte[] toByteArray(Integer number)
Description copied from interface: NumberOperations
Converts this number to binary data and returns it as a byte array. Back-conversion is possible using the NumberOperations.fromByteArray(byte[]) method.


writeTo

public void writeTo(Integer number,
                    DataOutput out)
             throws IOException
Description copied from interface: NumberOperations
Converts this number to binary data and writes it to the data output. The counterpart of this method reading binary data is NumberOperations.readFrom(DataInput).

Throws:
IOException

fromByteArray

public Integer fromByteArray(byte[] bytes)
Description copied from interface: NumberOperations
Converts the byte array containing binary data into a new number instance. Forward-conversion is possible using the NumberOperations.toByteArray(Number) method.


readFrom

public Integer readFrom(DataInput in)
                 throws IOException
Description copied from interface: NumberOperations
Reads binary data from the given data input. Binary data is converted and a new number instance is returned. The counterpart of this method writing binary data is NumberOperations.writeTo(Number, DataOutput)

Throws:
IOException

byteLength

public int byteLength()
Description copied from interface: NumberOperations
Returns the byte array length if NumberOperations.toByteArray(Number) is used and if this size is fixed, and -1 if the size may vary depending on the number instance