org.apfloat.internal
Class IntCRTMath

java.lang.Object
  extended by org.apfloat.internal.IntBaseMath
      extended by org.apfloat.internal.IntCRTMath
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
IntCarryCRT

public class IntCRTMath
extends IntBaseMath

Basic arithmetic for calculating the Chinese Remainder Theorem. Works for the int type.

Version:
1.6
Author:
Mikko Tommila
See Also:
Serialized Form

Constructor Summary
IntCRTMath(int radix)
          Creates a carry-CRT math using the specified radix.
 
Method Summary
 int add(int[] src, int[] srcDst)
          Adds three words.
 int compare(int[] src1, int[] src2)
          Compares three words.
 int divide(int[] srcDst)
          Divides three words by the base to produce two words.
 void multiply(int[] src, int factor, int[] dst)
          Multiplies two words by one word to produce a result of three words.
 void subtract(int[] src, int[] srcDst)
          Subtracts three words.
 
Methods inherited from class org.apfloat.internal.IntBaseMath
baseAdd, baseDivide, baseMultiplyAdd, baseSubtract
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IntCRTMath

public IntCRTMath(int radix)
Creates a carry-CRT math using the specified radix.

Parameters:
radix - The radix that will be used.
Method Detail

multiply

public final void multiply(int[] src,
                           int factor,
                           int[] dst)
Multiplies two words by one word to produce a result of three words. Most significant word is stored first.

Parameters:
src - Source array, first multiplicand.
factor - Second multiplicand.
dst - Destination array.

compare

public final int compare(int[] src1,
                         int[] src2)
Compares three words. Most significant word is stored first.

Parameters:
src1 - First operand.
src2 - Second operand.
Returns:
Less than zero if src1 < src2, greater than zero if src1 > src2 and zero if src1 == src2.

add

public final int add(int[] src,
                     int[] srcDst)
Adds three words. Most significant word is stored first.

Parameters:
src - First operand.
srcDst - Second operand, and destination of the operation.
Returns:
Overflow carry bit.

subtract

public final void subtract(int[] src,
                           int[] srcDst)
Subtracts three words. Most significant word is stored first.

Parameters:
src - First operand.
srcDst - Second operand, and destination of the operation.

divide

public final int divide(int[] srcDst)
Divides three words by the base to produce two words. Most significant word is stored first.

Parameters:
srcDst - Source and destination of the operation.
Returns:
Remainder of the division.