Class LongCRTMath

java.lang.Object
org.apfloat.internal.LongBaseMath
org.apfloat.internal.LongCRTMath
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
LongCarryCRTStepStrategy

public class LongCRTMath extends LongBaseMath
Basic arithmetic for calculating the Chinese Remainder Theorem. Works for the long type.
Version:
1.6
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • BASE_MASK

      private static final long BASE_MASK
      See Also:
    • INVERSE_MAX_POWER_OF_TWO_BASE

      private static final double INVERSE_MAX_POWER_OF_TWO_BASE
      See Also:
    • base

      private long base
    • inverseBase

      private double inverseBase
  • Constructor Details

    • LongCRTMath

      public LongCRTMath(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(long[] src, long factor, long[] 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 long compare(long[] src1, long[] 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 long add(long[] src, long[] 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(long[] src, long[] 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 long divide(long[] 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.