code: func calcDatasetSize(epoch int) uint64 {
  	size := datasetInitBytes + datasetGrowthBytes*uint64(epoch) - mixBytes
  	for !new(big.Int).SetUint64(size / mixBytes).ProbablyPrime(1) { // Always accurate for n < 2^64
  		size -= 2 * mixBytes
  	}
  	return size
  }
docs: // calcDatasetSize calculates the dataset size for epoch. The dataset 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.