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 Summary
Constructors Constructor Description Smooth_Simple(java.math.BigInteger A, SortedIntegerArray smallFactors)
-
Method Summary
Modifier and Type Method Description void
addMyAQPairsViaXor(java.util.Set<AQPair> targetSet)
Addthis
's AQPairs to the target set via xor.java.util.Set<AQPair>
getAQPairs()
java.lang.Integer[]
getMatrixElements()
boolean
isExactSquare()
Test if the Q of this smooth congruence is an exact square.Methods inherited from class de.tilman_neumann.jml.factor.base.congruence.AQPair
equals, getA, getAllQFactors, getNumberOfLargeQFactors, getSmallQFactors, hashCode, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
Smooth_Simple
-
-
Method Details
-
getAQPairs
- Specified by:
getAQPairs
in interfaceSmooth
- Returns:
- the set of AQPairs this smooth relation consists of
-
addMyAQPairsViaXor
Description copied from interface:Smooth
Addthis
'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 interfaceSmooth
-
getMatrixElements
public java.lang.Integer[] getMatrixElements()- Specified by:
getMatrixElements
in interfaceSmooth
- 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 interfaceSmooth
- Returns:
- true if Q is square
-