Checks that P
is indeed a point on the elliptic curve C
.
If is_strict = true
, then this function constrains that P.x != Q.x
.
If you are calling this with is_strict = false
, you must ensure that P.x != Q.x
by some external logic (such
as a mathematical theorem).
Assumptions
Implements:
computing 2P + Q = P + Q + P for P = (x0, y0), Q = (x1, y1)
Constrains P != -Q
but allows P == Q
, in which case output is (0,0).
For Weierstrass curves only.
If is_strict = true
, then this function constrains that P.x != Q.x
.
If you are calling this with is_strict = false
, you must ensure that P.x != Q.x
by some external logic (such
as a mathematical theorem).
Assumptions
Computes [scalar] * P
on short Weierstrass curve y^2 = x^3 + b