Remove unnecessary doubling condition #120
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi there
I found unnecessary condition branch.
Projective identity is$(x, y, z) = (0, 1, 0)$ and doubling is as follows.
t0 = 1 (y^2)
z3 = 2 (t0 + t0)
z3 = 4 (z3 + z3)
t1 = 0 (y * z)
t2 = 0 (z^2)
t2 = 0 (t2 * 12)
x3 = 0 (t2 * z3)
y3 = 1 (t0 + t2)
z3 = 0 (t1 * z3)
t1 = 0 (t2 + t2)
t2 = 0 (t1 + t2)
t0 = 1 (t0 - t2)
y3 = 1 (t0 * y3)
y3 = 1 (x3 + y3)
t1 = 0 (x * y)
x3 = 0 (t0 * t1)
x3 = 0 (x3 + x3)
double
arithmetic covers the identity case.Field
double
is faster thanadd
add_mixed
identity condition may not necessaryI would appreciate it if you could confirm.
Thank you.