def _mul_(self, other): r""" Multiplication of two (S-)ideal classes. EXAMPLES:: sage: G = NumberField(x^2 + 23,'a').class_group(); G Class group of order 3 with structure C3 of Number Field in a with defining polynomial x^2 + 23 sage: I = G.0; I Fractional ideal class (2, 1/2*a - 1/2) sage: I*I # indirect doctest Fractional ideal class (2, 1/2*a + 1/2) sage: I*I*I # indirect doctest Trivial principal fractional ideal class sage: K.<a> = QuadraticField(-14) sage: I = K.ideal(2,a) sage: S = (I,) sage: CS = K.S_class_group(S) sage: G = K.ideal(3,a+1) sage: CS(G)*CS(G) Trivial S-ideal class """ m = AbelianGroupElement._mul_(self, other) m._value = (self.ideal() * other.ideal()).reduce_equiv() return m
def _mul_(self, other): r""" Multiplication of two (S-)ideal classes. EXAMPLE:: sage: G = NumberField(x^2 + 23,'a').class_group(); G Class group of order 3 with structure C3 of Number Field in a with defining polynomial x^2 + 23 sage: I = G.0; I Fractional ideal class (2, 1/2*a - 1/2) sage: I*I # indirect doctest Fractional ideal class (2, 1/2*a + 1/2) sage: I*I*I # indirect doctest Trivial principal fractional ideal class sage: K.<a> = QuadraticField(-14) sage: I = K.ideal(2,a) sage: S = (I,) sage: CS = K.S_class_group(S) sage: G = K.ideal(3,a+1) sage: CS(G)*CS(G) Trivial S-ideal class """ m = AbelianGroupElement._mul_(self, other) m._value = (self.ideal() * other.ideal()).reduce_equiv() return m
def _mul_(left, right): """ Multiply ``left`` and ``right`` TESTS:: sage: G.<a,b> = AbelianGroupWithValues([5,2], 2) sage: a._mul_(b) a*b sage: a*b a*b sage: (a*b).value() 10 """ m = AbelianGroupElement._mul_(left, right) m._value = left.value() * right.value() return m
def _mul_(left, right): """ Multiply ``left`` and ``right`` TESTS:: sage: G.<a,b> = AbelianGroupWithValues([5,2], 2) sage: a._mul_(b) a*b sage: a*b a*b sage: (a*b).value() 10 """ m = AbelianGroupElement._mul_(left, right) m._value = left.value() * right.value() return m
def _mul_(self, other): r""" Multiplies together two S-ideal classes. EXAMPLES:: sage: K.<a> = QuadraticField(-14) sage: I = K.ideal(2,a) sage: S = (I,) sage: CS = K.S_class_group(S) sage: G = K.ideal(3,a+1) sage: CS(G)*CS(G) Trivial S-ideal class """ m = AbelianGroupElement._mul_(self, other) return SFractionalIdealClass(self.parent(), (self.ideal() * other.ideal()).reduce_equiv(), m.list())
def _mul_(self, other): r""" Multiplication of two ideal classes. EXAMPLE:: sage: G = NumberField(x^2 + 23,'a').class_group(); G Class group of order 3 with structure C3 of Number Field in a with defining polynomial x^2 + 23 sage: I = G.0; I Fractional ideal class (2, 1/2*a - 1/2) sage: I*I # indirect doctest Fractional ideal class (2, 1/2*a + 1/2) sage: I*I*I # indirect doctest Trivial principal fractional ideal class """ m = AbelianGroupElement._mul_(self, other) return FractionalIdealClass(self.parent(), (self.__ideal * other.__ideal).reduce_equiv(), m.list())
def _mul_(self, other): r""" Multiplies together two S-ideal classes. EXAMPLES:: sage: K.<a> = QuadraticField(-14) sage: I = K.ideal(2,a) sage: S = (I,) sage: CS = K.S_class_group(S) sage: G = K.ideal(3,a+1) sage: CS(G)*CS(G) Trivial S-ideal class """ m = AbelianGroupElement._mul_(self, other) return SFractionalIdealClass( self.parent(), (self.ideal() * other.ideal()).reduce_equiv(), m.list())
def _mul_(self, other): r""" Multiplication of two ideal classes. EXAMPLE:: sage: G = NumberField(x^2 + 23,'a').class_group(); G Class group of order 3 with structure C3 of Number Field in a with defining polynomial x^2 + 23 sage: I = G.0; I Fractional ideal class (2, 1/2*a - 1/2) sage: I*I # indirect doctest Fractional ideal class (2, 1/2*a + 1/2) sage: I*I*I # indirect doctest Trivial principal fractional ideal class """ m = AbelianGroupElement._mul_(self, other) return FractionalIdealClass( self.parent(), (self.__ideal * other.__ideal).reduce_equiv(), m.list())