docs: static HeapAlphaSketch newHeapInstance(final int lgNomLongs, final long seed, final float p,
        final ResizeFactor rf) {
  
      if (lgNomLongs < ALPHA_MIN_LG_NOM_LONGS) {
        throw new SketchesArgumentException(
          "This sketch requires a minimum nominal entries of " + (1 << ALPHA_MIN_LG_NOM_LONGS));
      }
  
      final double nomLongs = (1L << lgNomLongs);
      final double alpha = nomLongs / (nomLongs + 1.0);
      final long split1 = (long) (((p * (alpha + 1.0)) / 2.0) * MAX_THETA_LONG_AS_DOUBLE);
  
      final HeapAlphaSketch has = new HeapAlphaSketch(lgNomLongs, seed, p, rf, alpha, split1);
  
      final int lgArrLongs = Util.startingSubMultiple(lgNomLongs + 1, rf, MIN_LG_ARR_LONGS);
      has.lgArrLongs_ = lgArrLongs;
      has.hashTableThreshold_ = setHashTableThreshold(lgNomLongs, lgArrLongs);
      has.curCount_ = 0;
      has.thetaLong_ = (long)(p * MAX_THETA_LONG_AS_DOUBLE);
      has.empty_ = true; //other flags: bigEndian = readOnly = compact = ordered = false;
      has.cache_ = new long[1 << lgArrLongs];
      return has;
    }