code: func NewLogHist(b int, m float64, max float64) *LogHist {
  	// TODO(austin) Minimum value as well?  If the samples are
  	// actually integral, having fractional bin boundaries can
  	// mess up smoothing.
  	mOverLogb := m / math.Log(float64(b))
  	nbins := int(math.Ceil(mOverLogb * math.Log(max)))
  	return &LogHist{b: b, m: m, mOverLogb: mOverLogb, low: 0, high: 0, bins: make([]uint, nbins)}
  }
docs: // NewLogHist returns an empty logarithmic histogram with bins for
  // integral values of m * log_b(x) up to x = max.