Class Smooth_Simple

java.lang.Object
de.tilman_neumann.jml.factor.base.congruence.AQPair
de.tilman_neumann.jml.factor.base.congruence.Smooth_Simple
All Implemented Interfaces:
Smooth
Direct Known Subclasses:
Smooth_1LargeSquare, Smooth_nLargeSquares, Smooth_Perfect

public abstract class Smooth_Simple
extends AQPair
implements Smooth
A smooth congruence from a single AQ-pair.
  • Constructor Details

    • Smooth_Simple

      public Smooth_Simple​(java.math.BigInteger A, SortedIntegerArray smallFactors)
  • Method Details

    • getAQPairs

      public java.util.Set<AQPair> getAQPairs()
      Specified by:
      getAQPairs in interface Smooth
      Returns:
      the set of AQPairs this smooth relation consists of
    • addMyAQPairsViaXor

      public void addMyAQPairsViaXor​(java.util.Set<AQPair> targetSet)
      Description copied from interface: Smooth
      Add this's AQPairs to the target set via xor. This operation permits to get around without creating new array objects for all those congruence sub-classes that represent just a single AQPair.
      Specified by:
      addMyAQPairsViaXor in interface Smooth
    • getMatrixElements

      public java.lang.Integer[] getMatrixElements()
      Specified by:
      getMatrixElements in interface Smooth
      Returns:
      set matrix elements. For a smooth relation these are the small factors appearing with odd exponent.
    • isExactSquare

      public boolean isExactSquare()
      Description copied from interface: Smooth
      Test if the Q of this smooth congruence is an exact square. Since smooth congruences can not have non-square large Q-factors, only the small Q-factors need to be checked.
      Specified by:
      isExactSquare in interface Smooth
      Returns:
      true if Q is square