'Argument bounds can be `None` or ``bounds[0]`` and ``bounds[1]``
are lower  and upper domain boundaries, each is either `None` or
a scalar or a list or array of appropriate size.'

def __init__(self, bounds=None):

    self.bounds = bounds
    self.gamma = 1
    self.weights_initialized = False
    self.hist = []
