Skip to content

Conversation

daxpedda
Copy link
Contributor

This PR makes ProjectiveNielsPoint::identity() and associated constant IDENTITY.

This actually had quite the effect on Edwards scalar multiplication, it called the twisted-curve to Niel's form conversion 113 times during the operation which isn't being optimized away in release mode (with fat LTO, codegen-units = 1 and such). So during each iteration this added 3 multiplications to the already 20 present, a flat 15% increase. Which approximately matches the benchmarks I've run.

Also affects Decaf scalar multiplication with #1303.

@daxpedda daxpedda changed the title Make ProjectiveNielsPoint::identity() and associated constant Make ProjectiveNielsPoint::identity() an associated constant Aug 1, 2025
@daxpedda daxpedda mentioned this pull request Aug 3, 2025
49 tasks
@daxpedda daxpedda force-pushed the ed448-twisted-identity branch from 5653757 to 41a715a Compare September 1, 2025 17:39
@daxpedda daxpedda force-pushed the ed448-twisted-identity branch from 41a715a to 45db96f Compare September 2, 2025 13:39
@tarcieri tarcieri merged commit 95bf28e into RustCrypto:master Sep 2, 2025
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants