Implement point doubling for weierstrass curves #11
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.
Quick, low hanging fruit for #10
Implement the exception free point doubling algorithm from the same source as the point addition algorithm.
It should be noted that on my system (Intel i7-7700k, Windows 10), criterion benchmarks were somewhat unconclusive, for P256, there was a 33% performance improvement with the doubling algorithm. For P384 however, there was a 30% performance degradation, whereas for p521, there was no difference.
As such, help with more in depth testing would be appreciated.
Also of note, adding a verification of equality when adding two points to instead call the point doubling function should they be equal (with both reference and inner field comparison) also produced unconclusive results, thus it was not added to the commit
PS : here is an archive containing the produced criterion graphs, should they be of use.
criterion_comparisons.zip