# 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
• ## Constructor Summary

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

Modifier and Type
Method
Description
`final double`
```add(double[] src, double[] srcDst)```
`final double`
```compare(double[] src1, double[] src2)```
Compares three words.
`final double`
`divide(double[] srcDst)`
Divides three words by the base to produce two words.
`final void`
```multiply(double[] src, double factor, double[] dst)```
Multiplies two words by one word to produce a result of three words.
`final 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

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

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.