'Transform values using this interval.
Parameters
values : array-like
The input values.
clip : bool, optional
If `True` (default), values outside the [0:1] range are
clipped to the [0:1] range.
out : `~numpy.ndarray`, optional
If specified, the output values will be placed in this array
(typically used for in-place calculations).
Returns
result : `~numpy.ndarray`
The transformed values.'

def __call__(self, values, clip=True, out=None):

    (vmin, vmax) = self.get_limits(values)
    if (out is None):
        values = np.subtract(values, float(vmin))
    else:
        if (out.dtype.kind != 'f'):
            raise TypeError('Can    only    do    in-place    scaling    for    floating-point    arrays')
        values = np.subtract(values, float(vmin), out=out)
    if ((vmax - vmin) != 0):
        np.true_divide(values, (vmax - vmin), out=values)
    if clip:
        np.clip(values, 0.0, 1.0, out=values)
    return values
