def __div__(self, other): """ Division (binary /) """ if isinstance(other, (float, int)): return MV(mv.divmf(ga, self._mv, other)) else: return MV( mv.mulmm(ga, self._mv, other.inv()._mv, ga._bmt_geo))
def __mul__(self, other): """ Multiplication (binary *)""" if isinstance(other, float): return MV(mv.mulmf(ga, self._mv, other)) else: return MV(mv.mulmm(ga, self._mv, other._mv, ga._bmt_geo))
def __xor__(self, other): """ Outer product (binary ^) """ return MV(mv.mulmm(ga, self._mv, other._mv, ga._bmt_out))
def __or__(self, other): """ Inner product (binary |) """ return MV(mv.mulmm(ga, self._mv, other._mv, ga._bmt_inn))
def __lshift__(self, other): """ Left contraction (binary <<) """ return MV(mv.mulmm(ga, self._mv, other._mv, ga._bmt_left))
def __div__(self, other): """ Division (binary /) """ if isinstance(other, (float, int)): return MV(mv.divmf(ga, self._mv, other)) else: return MV(mv.mulmm(ga, self._mv, other.inv()._mv, ga._bmt_geo))