Class Smooth_Composite

  • All Implemented Interfaces:
    Smooth

    public class Smooth_Composite
    extends Object
    implements Smooth
    A smooth congruence composed from several partials.
    Author:
    Tilman Neumann
    • Constructor Detail

      • Smooth_Composite

        public Smooth_Composite​(Set<? extends AQPair> aqPairs)
        Constructor from several AQ-pairs.
        Parameters:
        aqPairs -
    • Method Detail

      • getAQPairs

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

        public void addMyAQPairsViaXor​(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 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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • equals

        public boolean equals​(Object o)
        Checks if this composite smooth relation is equal to another object.
        Simple smooths (having exactly one AQPair) and composite smooths (having strictly more than one AQPair) can never be equal; hence it is correct to have two separate equals() implementations that reject all objects of the other type.
        Overrides:
        equals in class Object