code: def raw_mul(self, e):
          
          e %= self._order
          P = self._infinity
          for bit in range(256):
              # add the power of the generator every time to make it more time-deterministic
              a = [P, P + self._powers[bit]]
              # choose the correct result
              P = a[e & 1]
              e >>= 1
          return P
docs: :param: e: an integer value
          :returns: e * self
  
          This method uses a precomputed table as an optimization.