def _mul_(self, other): """ Multiply ``self`` by ``other``. EXAMPLES:: sage: F = FreeAbelianMonoid(index_set=ZZ) sage: a,b,c,d,e = [F.gen(i) for i in range(5)] sage: a*b^2*e*d F[0]*F[1]^2*F[3]*F[4] """ return self.__class__(self.parent(), dict_addition([self._monomial, other._monomial]))
def _mul_(self, other): """ Multiply ``self`` by ``other``. EXAMPLES:: sage: G = Groups().Commutative().free(index_set=ZZ) sage: a,b,c,d,e = [G.gen(i) for i in range(5)] sage: a*b^2*e^-1*d F[0]*F[1]^2*F[3]*F[4]^-1 sage: (a*b^2*d^2) * (d^-4*b^-2*e) F[0]*F[3]^-2*F[4] sage: (a*b^-2*d^2) * (d^-2*b^2*a^-1) 1 """ return self.__class__(self.parent(), dict_addition([self._monomial, other._monomial]))
def _mul_(self, other): """ Multiply ``self`` by ``other``. EXAMPLES:: sage: G = Groups().Commutative().free(index_set=ZZ) sage: a,b,c,d,e = [G.gen(i) for i in range(5)] sage: a*b^2*e^-1*d F[0]*F[1]^2*F[3]*F[4]^-1 sage: (a*b^2*d^2) * (d^-4*b^-2*e) F[0]*F[3]^-2*F[4] sage: (a*b^-2*d^2) * (d^-2*b^2*a^-1) 1 """ return self.__class__( self.parent(), dict_addition([self._monomial, other._monomial]))
def _add_(self, other): """ Return ``self`` added to ``other``. EXAMPLES:: sage: W.<x,y,z> = DifferentialWeylAlgebra(QQ) sage: dx,dy,dz = W.differentials() sage: (dx*dy) + dz + x^3 - 2 dx*dy + dz + x^3 - 2 """ F = self.parent() return self.__class__(F, dict_addition([self.__monomials, other.__monomials])) d = copy(self.__monomials) zero = self.parent().base_ring().zero() for m,c in other.__monomials.iteritems(): d[m] = d.get(m, zero) + c if d[m] == zero: del d[m] return self.__class__(self.parent(), d)