Class DoubleCRTMath

java.lang.Object
org.apfloat.internal.DoubleBaseMath
org.apfloat.internal.DoubleCRTMath
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
DoubleCarryCRTStepStrategy

public class DoubleCRTMath extends DoubleBaseMath
Basic arithmetic for calculating the Chinese Remainder Theorem. Works for the double type.
Version:
1.6
Author:
Mikko Tommila
See Also:
Serialized Form
  • Constructor Summary

    Constructors
    Constructor
    Description
    DoubleCRTMath​(int radix)
    Creates a carry-CRT math using the specified radix.
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    add​(double[] src, double[] srcDst)
    Adds three words.
    double
    compare​(double[] src1, double[] src2)
    Compares three words.
    double
    divide​(double[] srcDst)
    Divides three words by the base to produce two words.
    void
    multiply​(double[] src, double factor, double[] dst)
    Multiplies two words by one word to produce a result of three words.
    void
    subtract​(double[] src, double[] srcDst)
    Subtracts three words.

    Methods inherited from class org.apfloat.internal.DoubleBaseMath

    baseAdd, baseDivide, baseMultiplyAdd, baseSubtract

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DoubleCRTMath

      public DoubleCRTMath(int radix)
      Creates a carry-CRT math using the specified radix.
      Parameters:
      radix - The radix that will be used.
  • Method Details

    • multiply

      public final void multiply(double[] src, double factor, double[] 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 double compare(double[] src1, double[] 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 double add(double[] src, double[] 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(double[] src, double[] 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 double divide(double[] 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.