'Performs element-wise clipping of Tensor `a`, storing the result in out.
The clipped value will be between [a_min, a_max].
Arguments:
a (Tensor): the Tensor on which to perform the operation
a_min (Tensor, numeric): lower bound for clip (inclusive).
a_max (Tensor, numeric): upper bound for clip (inclusive).
out (Tensor, optional): where the result will be stored. If out is
None, only the op-tree will be returned.
Returns:
OpTreeNode: the resulting op-tree'

def clip(self, a, a_min, a_max, out=None):

    return self.minimum(self.maximum(a, a_min), a_max, out=out)
