class_docstr: Point of Elliptic Curve
  
  Examples
  ========
  
  >>> from sympy.ntheory.elliptic_curve import EllipticCurve
  >>> e1 = EllipticCurve(-17, 16)
  >>> p1 = e1(0, -4, 1)
  >>> p2 = e1(1, 0)
  >>> p1 + p2
  (15, -56)
  >>> e3 = EllipticCurve(-1, 9)
  >>> e3(1, -3) * 3
  (664/169, 17811/2197)
  >>> (e3(1, -3) * 3).order()
  oo
  >>> e2 = EllipticCurve(-2, 0, 0, 1, 1)
  >>> p = e2(-1,1)
  >>> q = e2(0, -1)
  >>> p+q
  (4, 8)
  >>> p-q
  (1, 0)
  >>> 3*p-5*q
  (328/361, -2800/6859)
class_docstr_tok: ["Point","of","Elliptic","Curve","Examples","========",">",">",">","from","sympy.ntheory.elliptic_curve","import","EllipticCurve",">",">",">","e1","=","EllipticCurve","(","-17",",","16",")",">",">",">","p1","=","e1","(","0",",","-4",",","1",")",">",">",">","p2","=","e1","(","1",",","0",")",">",">",">","p1","+","p2","(","15",",","-56",")",">",">",">","e3","=","EllipticCurve","(","-1",",","9",")",">",">",">","e3","(","1",",","-3",")","*","3","(","664\/169",",","17811\/2197",")",">",">",">","(","e3","(","1",",","-3",")","*","3",")",".order","(",")","oo",">",">",">","e2","=","EllipticCurve","(","-2",",","0",",","0",",","1",",","1",")",">",">",">","p","=","e2","(","-1,1",")",">",">",">","q","=","e2","(","0",",","-1",")",">",">",">","p+q","(","4",",","8",")",">",">",">","p-q","(","1",",","0",")",">",">",">","3","*","p-5","*","q","(","328\/361",",","-2800\/6859",")"]
code: def __mul__(self, n):
      n = as_int(n)
      r = self.point_at_infinity(self._curve)
      if n == 0:
          return r
      if n < 0:
          return -self * -n
      p = self
      while n:
          if n & 1:
              r = r + p
          n >>= 1
          p = p + p
      return r
  
imports: from sympy.core.numbers import oo
  from sympy.core.symbol import symbols
  from sympy.polys.domains import FiniteField, QQ, RationalField, FF
  from sympy.polys.polytools import Poly
  from sympy.solvers.solvers import solve
  from sympy.utilities.iterables import is_sequence
  from sympy.utilities.misc import as_int
  from .factor_ import divisors
  from .residue_ntheory import polynomial_congruence
label_desc: Use image node_id 5 for calling the EllipticCurvePoint obj's underlying member method code with example usage: obj.__mul__(n) and returns: r, r, unknown