(self, a, b)
:param a: IntegersModuloPrimeElement
        :param b: IntegersModuloPrimeElement
        :return: IntegersModuloPrimeElement
def mul(self, a, b):
        """

        :param a: IntegersModuloPrimeElement
        :param b: IntegersModuloPrimeElement
        :return: IntegersModuloPrimeElement
        """
        if type(a) == IntegersModuloPrimeElement and type(b) == IntegersModuloPrimeElement:
            return IntegersModuloPrimeElement((a.val * b.val) % self.mod)
        elif type(a) == IntegersModuloPrimeElement and type(b) == int:
            if b == 0:
                return self.add_identity
            elif b < 0:
                raise ValueError("Scalars in multiplication must be non-negative")
            else:
                return IntegersModuloPrimeElement((a.val * b) % self.mod)
        elif type(a) == int and type(b) == IntegersModuloPrimeElement:
            if a == 0:
                return self.add_identity
            elif a < 0:
                raise ValueError("Scalars in multiplication must be non-negative")
            else:
                return IntegersModuloPrimeElement((a * b.val) % self.mod)
        else:
            raise TypeError("Multiplication only supports two IntegersModuloPrimeElement objects" +
                             "one int plus one object")
def mul ( self , a , b ) : if type ( a ) == IntegersModuloPrimeElement and type ( b ) == IntegersModuloPrimeElement : return IntegersModuloPrimeElement ( ( a . val * b . val ) % self . mod ) elif type ( a ) == IntegersModuloPrimeElement and type ( b ) == int : if b == 0 : return self . add_identity elif b < 0 : raise ValueError ( "Scalars in multiplication must be non-negative" ) else : return IntegersModuloPrimeElement ( ( a . val * b ) % self . mod ) elif type ( a ) == int and type ( b ) == IntegersModuloPrimeElement : if a == 0 : return self . add_identity elif a < 0 : raise ValueError ( "Scalars in multiplication must be non-negative" ) else : return IntegersModuloPrimeElement ( ( a * b . val ) % self . mod ) else : raise TypeError ( "Multiplication only supports two IntegersModuloPrimeElement objects" + "one int plus one object" )