func NewSketchForEpsilonDelta(epsilon, delta float64) (*Sketch, error) {
	var (
		width = uint(math.Ceil(math.E / epsilon))
		depth = uint(math.Ceil(math.Log(1 / delta)))
	)
	return NewSketch(width, depth, 1.00026)
}
/*
NewSketchForEpsilonDelta for a given error rate epsiolen with a probability of delta
package cml
import (
	"errors"
	"math"
	"github.com/dgryski/go-farm"
)
type Sketch struct {
	w   uint
	d   uint
	exp float64
	store [][]uint16
}
func NewSketch(w uint, d uint, exp float64) (*Sketch, error) {
	store := make([][]uint16, d, d)
	for i := uint(0); i < d; i++ {
		store[i] = make([]uint16, w, w)
	}
	return &Sketch{
		w:     w,
		d:     d,
		exp:   exp,
		store: store,
	}, nil
}