class MiscBigIntegerGenerators {

  public BigInteger[] getPoly(int l) {
    // check that l is positive
    Integer lInt = l;
    BigInteger[] result = coefficientsOfPolynomiums.get(lInt);
    if (result == null) {
      // Generate a new set of OInts and store them...
      result = new BigInteger[l + 1];

      BigInteger[] coefficients = constructPolynomial(l);
      for (int i = 0; i <= l; i++) {
        result[i] = coefficients[coefficients.length - 1 - i];
      }

      coefficientsOfPolynomiums.put(lInt, result);
    }
    return result;
  }

  public  MiscBigIntegerGenerators(BigInteger modulus);
  protected  MiscBigIntegerGenerators(BigInteger modulus, HashMap<Integer, BigInteger[]> coefficientsOfPolynomiums);

}