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.- Author:
- Tilman Neumann
-
-
Constructor Summary
Constructors Constructor Description Smooth_Simple(BigInteger A, SortedIntegerArray smallFactors)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMyAQPairsViaXor(Set<AQPair> targetSet)Addthis's AQPairs to the target set via xor.Set<AQPair>getAQPairs()Integer[]getMatrixElements()booleanisExactSquare()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
-
-
-
-
Constructor Detail
-
Smooth_Simple
public Smooth_Simple(BigInteger A, SortedIntegerArray smallFactors)
-
-
Method Detail
-
getAQPairs
public Set<AQPair> getAQPairs()
- Specified by:
getAQPairsin interfaceSmooth- Returns:
- the set of AQPairs this smooth relation consists of
-
addMyAQPairsViaXor
public void addMyAQPairsViaXor(Set<AQPair> targetSet)
Description copied from interface:SmoothAddthis'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:
addMyAQPairsViaXorin interfaceSmooth
-
getMatrixElements
public Integer[] getMatrixElements()
- Specified by:
getMatrixElementsin 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:SmoothTest 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:
isExactSquarein interfaceSmooth- Returns:
- true if Q is square
-
-