ch.javasoft.math
Class DoubleOperations

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

public class DoubleOperations
extends AbstractNumberOps<Double>

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


Constructor Summary
DoubleOperations()
           
 
Method Summary
 Double abs(Double number)
          Returns the absolute value of the given number, i.e.
 Double add(Double numA, Double 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(Double o1, Double o2)
           
 Double divide(Double numA, Double numB)
          Returns the ratio of the two values, i.e.
 Double fromByteArray(byte[] bytes)
          Converts the byte array containing binary data into a new number instance.
static DoubleOperations instance()
          Returns the singleton instance
 Double invert(Double number)
          Returns the inverted value, i.e.
 boolean isOne(Double number)
          Returns true if this value is numerically equal to one, i.e.
 boolean isZero(Double number)
          Returns true if this value is numerically equal to zero, i.e.
 Double multiply(Double numA, Double numB)
          Returns the product of the two values, i.e.
 Double negate(Double number)
          Returns the negated value, i.e.
 Double[] newArray(int size)
          Create a new array of the underlying number type
 Double[][] newArray(int rows, int cols)
          Create a new 2 dimensional array of the underlying number type
 Class<Double> numberClass()
          The class representing numbers of this number operations instance
 Double one()
          Returns the value representing one
 Double pow(Double numA, Double numB)
          Returns the powered value, i.e.
 Double readFrom(DataInput in)
          Reads binary data from the given data input.
 Double reduce(Double number)
          Converts the number into some reduced form.
 Double[] reduceVector(boolean cloneOnChange, Double... vector)
          Converts a vector into some reduced form.
 int signum(Double number)
          Returns signum of the value, i.e.
 Double subtract(Double numA, Double numB)
          Returns the difference of the two values, i.e.
 byte[] toByteArray(Double number)
          Converts this number to binary data and returns it as a byte array.
 Double valueOf(double value)
          Create an instance of the underlying number type based on the submitted double value
 Double valueOf(long value)
          Create an instance of the underlying number type based on the submitted long integer value
 Double valueOf(Number number)
          Create an instance of the underlying number type based on the submitted number
 Double valueOf(String s)
          Create an instance of the underlying number type based on the given string representation of the number
 void writeTo(Double number, DataOutput out)
          Converts this number to binary data and writes it to the data output.
 Double 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

DoubleOperations

public DoubleOperations()
Method Detail

instance

public static DoubleOperations instance()
Returns the singleton instance

Returns:
the singleton instance

numberClass

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


newArray

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


newArray

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


valueOf

public Double 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 Double valueOf(Number number)
Description copied from interface: NumberOperations
Create an instance of the underlying number type based on the submitted number


valueOf

public Double 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 Double valueOf(double value)
Description copied from interface: NumberOperations
Create an instance of the underlying number type based on the submitted double value


abs

public Double abs(Double 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<Double>
Overrides:
abs in class AbstractNumberOps<Double>

add

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


divide

public Double divide(Double numA,
                     Double 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 Double invert(Double number)
Description copied from interface: NumberOperations
Returns the inverted value, i.e. 1 / number

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

isOne

public boolean isOne(Double 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<Double>
Overrides:
isOne in class AbstractNumberOps<Double>

isZero

public boolean isZero(Double 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<Double>
Overrides:
isZero in class AbstractNumberOps<Double>

multiply

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


negate

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


reduce

public Double reduce(Double 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 Double[] reduceVector(boolean cloneOnChange,
                             Double... 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 Double one()
Description copied from interface: NumberOperations
Returns the value representing one


pow

public Double pow(Double numA,
                  Double 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(Double number)
Description copied from interface: NumberOperations
Returns signum of the value, i.e. -1, 0, 1 for negative, zero or positive values


subtract

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


zero

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


compare

public int compare(Double o1,
                   Double o2)

toByteArray

public byte[] toByteArray(Double 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(Double 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 Double 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 Double 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