code: func calcCacheSize(epoch int) uint64 {
  	size := cacheInitBytes + cacheGrowthBytes*uint64(epoch) - hashBytes
  	for !new(big.Int).SetUint64(size / hashBytes).ProbablyPrime(1) { // Always accurate for n < 2^64
  		size -= 2 * hashBytes
  	}
  	return size
  }
docs: // calcCacheSize calculates the cache size for epoch. The cache size grows linearly,
  // however, we always take the highest prime below the linearly growing threshold in order
  // to reduce the risk of accidental regularities leading to cyclic behavior.