def __ge__(self, other): return Ge()(self, utils.ensure_tensor(other))
def __ne__(self, other): return Neg()(self, utils.ensure_tensor(other))
def __lt__(self, other): return Lt()(self, utils.ensure_tensor(other))
def __rmul__(self, other): return utils.ensure_tensor(other).mul(self)
def __eq__(self, other): return Eq()(self, utils.ensure_tensor(other))
def __radd__(self, other): return utils.ensure_tensor(other).add(self)
def __rsub__(self, other): return utils.ensure_tensor(other).sub(self)
def div(self, other): return Div()(self, utils.ensure_tensor(other))
def cat(self, other, dim=0): if isinstance(dim, Tensor): dim = dim.data return Concat()(self, utils.ensure_tensor(other), dim)
def pow(self, other): return Pow()(self, utils.ensure_tensor(other))
def mm(self, other): return MM()(self, utils.ensure_tensor(other))
def mul(self, other): return Mul()(self, utils.ensure_tensor(other))
def sub(self, other): return Add()(self, Neg()(utils.ensure_tensor(other)))
def add(self, other): return Add()(self, utils.ensure_tensor(other))