func streamEntropy()

in toutoumomoma.go [301:324]


func streamEntropy(r io.Reader) (entropy, variance float64, err error) {
	// Tally classes.
	var (
		counts [256]float64
		n      int
		buf    [4096]byte
	)
	for {
		_n, err := r.Read(buf[:])
		n += _n
		for _, b := range buf[:_n] {
			counts[b]++
		}
		if err != nil {
			if err != io.EOF {
				return 0, 0, err
			}
			break
		}
	}

	entropy, variance = entropyVariance(&counts, n)
	return entropy, variance, nil
}