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 void
addMyAQPairsViaXor(Set<AQPair> targetSet)
Addthis
's AQPairs to the target set via xor.Set<AQPair>
getAQPairs()
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
-
-
-
-
Constructor Detail
-
Smooth_Simple
public Smooth_Simple(BigInteger A, SortedIntegerArray smallFactors)
-
-
Method Detail
-
getAQPairs
public Set<AQPair> getAQPairs()
- Specified by:
getAQPairs
in interfaceSmooth
- Returns:
- the set of AQPairs this smooth relation consists of
-
addMyAQPairsViaXor
public void addMyAQPairsViaXor(Set<AQPair> targetSet)
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 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
-
-