# Interface CarryCRTBuilder<T>

Type Parameters:
  `T` - The element array type of the CRT.

All Known Implementing Classes:
  `DoubleCarryCRTBuilder, FloatCarryCRTBuilder, IntCarryCRTBuilder, LongCarryCRTBuilder`

public interface CarryCRTBuilder<T>
Interface of a factory for creating carry-CRT related objects. The factory method pattern is used.

Since:
  1.7.0
Version:
  1.7.0
Author:
  Mikko Tommila
See Also:
  - `CarryCRTStrategy`
  - `CarryCRTStepStrategy`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CarryCRTStrategy`
  `createCarryCRT(int radix)`
  Creates an object for implementing the carry-CRT of a three-NTT based convolution using the specified radix.
  `CarryCRTStepStrategy<T>`
  `createCarryCRTSteps(int radix)`
  Creates an object for implementing the steps of the carry-CRT of a three-NTT based convolution using the specified radix.

- ## Method Details

  - ### createCarryCRT

    CarryCRTStrategy createCarryCRT(int radix)
    Creates an object for implementing the carry-CRT of a three-NTT based convolution using the specified radix.
    Parameters:
      `radix` - The radix that will be used.
    Returns:
      A suitable object for performing the carry-CRT.

  - ### createCarryCRTSteps

    CarryCRTStepStrategy<T> createCarryCRTSteps(int radix)
    Creates an object for implementing the steps of the carry-CRT of a three-NTT based convolution using the specified radix.
    Parameters:
      `radix` - The radix that will be used.
    Returns:
      A suitable object for performing the carry-CRT steps.