org.apfloat.internal
Class IntCRTMath

java.lang.Object
  extended by org.apfloat.internal.IntCRTMath
Direct Known Subclasses:
IntCarryCRT

public class IntCRTMath
extends Object

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

Version:
1.1
Author:
Mikko Tommila

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 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.