Package edu.jas.arith

Class PrimeList

java.lang.Object
edu.jas.arith.PrimeList
All Implemented Interfaces:
Iterable<BigInteger>

public final class PrimeList extends Object implements Iterable<BigInteger>
List of big primes. Provides an Iterator for generating prime numbers. Similar to ALDES/SAC2 SACPOL.PRIME list. See Knuth vol 2, page 390, for list of known primes. See also ALDES/SAC2 SACPOL.PRIME
  • Field Details

    • SMALL_LIST

      private static volatile List<BigInteger> SMALL_LIST
      Cache the val list for different size
    • LOW_LIST

      private static volatile List<BigInteger> LOW_LIST
    • MEDIUM_LIST

      private static volatile List<BigInteger> MEDIUM_LIST
    • LARGE_LIST

      private static volatile List<BigInteger> LARGE_LIST
    • MERSENNE_LIST

      private static volatile List<BigInteger> MERSENNE_LIST
    • val

      private List<BigInteger> val
      The list of probable primes in requested range.
    • last

      private BigInteger last
      The last prime in the list.
  • Constructor Details

    • PrimeList

      public PrimeList()
      Constructor for PrimeList.
    • PrimeList

      public PrimeList(PrimeList.Range r)
      Constructor for PrimeList.
      Parameters:
      r - size range for primes.
  • Method Details

    • addSmall

      private void addSmall()
      Add small primes.
    • addLow

      private void addLow()
      Add low sized primes.
    • addMedium

      private void addMedium()
      Add medium sized primes.
    • addLarge

      private void addLarge()
      Add large sized primes.
    • addMersenne

      private void addMersenne()
      Add Mersenne sized primes.
    • getLongPrime

      public static BigInteger getLongPrime(int n, int m)
      Method to compute a prime as 2**n - m.
      Parameters:
      n - power for 2.
      m - for 2**n - m.
      Returns:
      2**n - m
    • getMersennePrime

      public static BigInteger getMersennePrime(int n)
      Method to compute a Mersenne prime as 2**n - 1.
      Parameters:
      n - power for 2.
      Returns:
      2**n - 1
    • checkPrimes

      protected boolean checkPrimes()
      Check if the list contains really prime numbers.
      Returns:
      true if all checked numbers are prime
    • checkPrimes

      protected boolean checkPrimes(int n)
      Check if the list contains really prime numbers.
      Parameters:
      n - number of primes to check.
      Returns:
      true if all checked numbers are prime
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • size

      public int size()
      Size of current list.
      Returns:
      current size of list.
    • get

      public BigInteger get(int i)
      Get prime at index i.
      Parameters:
      i - index to get element.
      Returns:
      prime at index i.
    • iterator

      public Iterator<BigInteger> iterator()
      Iterator. Always has next, will generate new primes if required.
      Specified by:
      iterator in interface Iterable<BigInteger>
      Returns:
      iterator over the prime list.