Affine form refers to the regular form of coordinates on an -plane.
In affine form, every addition or doubling requires field inversion when computing fractions (e.g., ). Like with Weierstrass curves, this becomes the bottleneck for performance.
Extended Affine form is a lightweight optimization over the basic affine coordinates. It explicitly stores the product , which is used repeatedly in twisted Edwards point addition formulas. This avoids redundant multiplications and slightly speeds up scalar multiplication loops.
A point is stored as:
This means we store:
: the affine x-coordinate
: the affine y-coordinate
: the product of x and y
In standard affine form, when computing twisted Edwards additions, the term appears frequently. Without optimization, it must be recomputed each time.
By storing explicitly as a third coordinate, we reduce the number of field multiplications per operation. Though this doesn't eliminate field inversions like projective coordinates do, it provides a minimal memory overhead with noticeable performance gain in systems where full projective coordinates are unnecessary or costly.
Simply discard the third value:
To eliminate the need for inverses during addition and doubling, extended projective coordinates are widely used. This is the most efficient coordinate system for twisted Edwards curves.
So, the point is stored as:
The extra coordinate allows for more efficient addition formulas and better reuse of intermediate terms.
In this form, the twisted Edwards curve becomes:
However, in practice, point operations are implemented through optimized formulas that directly compute the result without explicitly evaluating this equation.
Refer to Hyperelliptic for Extended Projective points on the best practices on how to calculate addition and double operations on Projective coordinates.
Affine
Extended Affine
Extended Projective