Explicit-Formulas Database

Genus-1 curves over large-characteristic fields

Doubling-oriented Doche–Icart–Kohel curves: y^2=x^3+a*x^2+16*a*x

Standard coordinates: x=X/Z, y=Y/ZZ, ZZ=Z^2

Tripling-oriented Doche–Icart–Kohel curves: y^2=x^3+3*a*(x+1)^2

Standard coordinates: x=X/Z^2, y=Y/Z^3, ZZ=Z^2

Edwards curves: x^2+y^2=c^2*(1+d*x^2*y^2)

Inverted coordinates: x=Z/X, y=Z/Y
Projective coordinates: x=X/Z, y=Y/Z

Hessian curves: x^3+y^3+1=3*d*x*y

Extended coordinates: x=X/Z, y=Y/Z, XX=X*X, YY=Y*Y, ZZ=Z*Z, XY=2*X*Y, XZ=2*X*Z, YZ=2*Y*Z
Projective coordinates: x=X/Z, y=Y/Z

Jacobi intersections: s^2+c^2=1, a*s^2+d^2=1

Extended coordinates: s=S/Z, c=C/Z, d=D/Z, SC=S*C, DZ=D*Z
Projective coordinates: s=S/Z, c=C/Z, d=D/Z

Jacobi quartics: y^2=x^4+2*a*x^2+1

Doubling-oriented XXYZZ coordinates: x=X/Z, y=Y/ZZ, XX=X^2, ZZ=Z^2, a^2+c^2=1
Doubling-oriented XXYZZR coordinates: x=X/Z, y=Y/ZZ, XX=X^2, ZZ=Z^2, R=2*X*Z, a^2+c^2=1
Doubling-oriented XYZ coordinates: x=X/Z, y=Y/Z^2, a^2+c^2=1
XXYZZ coordinates: x=X/Z, y=Y/ZZ, XX=X^2, ZZ=Z^2
XXYZZR coordinates: x=X/Z, y=Y/ZZ, XX=X^2, ZZ=Z^2, R=2*X*Z
XYZ coordinates: x=X/Z, y=Y/Z^2

Montgomery curves: b*y^2=x^3+a*x^2+x

XZ coordinates: x=X/Z

Short Weierstrass curves: y^2=x^3+a*x+b

Jacobian coordinates with a4=-3: x=X/Z^2, y=Y/Z^3, a=-3
Jacobian coordinates: x=X/Z^2, y=Y/Z^3
Projective coordinates with a4=-1: x=X/Z, y=Y/Z, a=-1
Projective coordinates with a4=-3: x=X/Z, y=Y/Z, a=-3
Projective coordinates: x=X/Z, y=Y/Z
XYZZ coordinates with a4=-3: x=X/ZZ, y=Y/ZZZ, ZZ^3=ZZZ^2, a=-3
XYZZ coordinates: x=X/ZZ, y=Y/ZZZ, ZZ^3=ZZZ^2

The EFD currently includes 316 explicit formulas for addition, doubling, tripling, and scaling of points in 22 representations on 8 shapes of genus-1 curves over large-characteristic fields.

Speed tables

The following speed tables distinguish between eighteen different operations: The tables are sorted in decreasing order of DBL cost; ties are broken in decreasing order of ADD cost; ties are broken in decreasing order of reADD cost; etc.

Smallest multiplication counts assuming I=100M, S=1M, *param=0M, add=0M, *const=0M:
Curve shape, representation DBL ADD reADD preADD mADD mreADD mpreADD mDBL mmADD mmreADD mmpreADD SUNI TPL DADD mDADD LADD mLADD SCALE
Short Weierstrass, projective 11 14 14 14 11 11 11 8 7 7 7 17 102
Short Weierstrass, projective with a4=-1 11 14 14 14 11 11 11 8 7 7 7 16 102
Short Weierstrass, XYZZ 10 14 14 14 14 14 14 10 14 14 14 104
Short Weierstrass, projective with a4=-3 10 14 14 14 11 11 11 8 7 7 7 17 102
Tripling-oriented Doche–Icart–Kohel, standard 9 17 16 17 11 11 11 6 6 6 6 12 104
Short Weierstrass, Jacobian 9 16 14 16 11 11 11 6 6 6 6 15 104
Short Weierstrass, XYZZ with a4=-3 9 14 14 14 14 14 14 9 14 14 14 104
Hessian, extended 9 12 12 12 11 11 11 9 11 11 11 105
Short Weierstrass, Jacobian with a4=-3 8 16 14 16 11 11 11 6 6 6 6 14 104
Jacobi quartic, doubling-oriented XYZ 8 13 11 14 11 11 11 5 7 7 7 13 103
Jacobi quartic, XYZ 8 13 11 14 11 11 11 5 7 7 7 13 103
Hessian, projective 8 12 12 12 10 10 10 6 8 7 8 14 102
Doubling-oriented Doche–Icart–Kohel, standard 7 17 17 17 12 12 12 6 8 8 8 103
Jacobi intersection, projective 7 14 12 14 12 11 12 6 10 9 10 14 14 103
Jacobi intersection, extended 7 12 12 12 11 11 11 7 11 11 11 12 16 104
Edwards, projective 7 11 11 11 9 9 9 6 7 7 7 11 13 102
Jacobi quartic, doubling-oriented XXYZZ 7 11 10 11 9 9 9 6 9 9 9 11 14 104
Jacobi quartic, XXYZZ 7 11 10 11 9 9 9 6 9 9 9 11 14 104
Jacobi quartic, XXYZZR 7 10 10 10 9 9 9 7 9 9 9 10 15 103
Jacobi quartic, doubling-oriented XXYZZR 7 10 10 10 9 9 9 7 9 9 9 10 15 103
Edwards, inverted 7 10 10 10 9 9 9 6 7 7 7 10 13 102
Montgomery, XZ 4 4 6 5 10 9 101

Smallest multiplication counts assuming I=100M, S=0.8M, *param=0M, add=0M, *const=0M:
Curve shape, representation DBL ADD reADD preADD mADD mreADD mpreADD mDBL mmADD mmreADD mmpreADD SUNI TPL DADD mDADD LADD mLADD SCALE
Short Weierstrass, projective 9.8 13.6 13.6 13.6 10.6 10.6 10.6 7.0 6.6 6.6 6.6 15.8 102.0
Short Weierstrass, projective with a4=-1 9.8 13.6 13.6 13.6 10.6 10.6 10.6 7.0 6.6 6.6 6.6 15.4 102.0
Short Weierstrass, projective with a4=-3 9.4 13.6 13.6 13.6 10.6 10.6 10.6 7.0 6.6 6.6 6.6 15.8 102.0
Short Weierstrass, XYZZ 9.2 13.6 13.6 13.6 13.6 13.6 13.6 9.2 13.6 13.6 13.6 103.8
Short Weierstrass, XYZZ with a4=-3 8.6 13.6 13.6 13.6 13.6 13.6 13.6 8.6 13.6 13.6 13.6 103.8
Hessian, projective 7.8 12.0 10.8 15.6 10.0 10.0 10.0 5.4 8.0 7.0 8.0 12.8 102.0
Hessian, extended 7.8 10.8 10.8 10.8 9.8 9.8 9.8 7.8 9.8 9.8 9.8 104.6
Tripling-oriented Doche–Icart–Kohel, standard 7.6 15.8 14.8 15.8 10.2 10.2 10.2 5.0 5.6 5.6 5.6 10.8 103.8
Short Weierstrass, Jacobian 7.4 15.0 13.2 15.0 10.2 10.2 10.2 5.0 5.6 5.6 5.6 13.0 103.8
Short Weierstrass, Jacobian with a4=-3 7.0 15.0 13.2 15.0 10.2 10.2 10.2 5.0 5.6 5.6 5.6 12.6 103.8
Jacobi quartic, XYZ 6.8 12.4 10.4 12.8 10.4 10.4 10.4 4.2 6.6 6.6 6.6 12.4 102.8
Jacobi quartic, doubling-oriented XYZ 6.6 12.4 10.4 12.8 10.4 10.4 10.4 4.2 6.6 6.6 6.6 12.4 102.8
Edwards, projective 6.2 10.8 10.8 10.8 9.0 9.0 9.0 5.4 6.8 6.8 6.8 10.8 12.2 102.0
Jacobi quartic, doubling-oriented XXYZZ 6.2 10.2 9.4 10.2 8.4 8.4 8.4 5.0 8.4 8.4 8.4 10.2 12.8 103.6
Jacobi quartic, XXYZZ 6.2 10.2 9.4 10.2 8.4 8.4 8.4 5.0 8.4 8.4 8.4 10.2 12.8 103.6
Edwards, inverted 6.2 9.8 9.8 9.8 8.8 8.8 8.8 5.4 7.0 7.0 7.0 9.8 12.2 102.0
Jacobi quartic, XXYZZR 6.2 9.4 9.4 9.4 8.4 8.4 8.4 5.8 8.2 8.2 8.2 9.4 12.8 102.8
Jacobi quartic, doubling-oriented XXYZZR 6.2 9.4 9.4 9.4 8.4 8.4 8.4 5.8 8.2 8.2 8.2 9.4 12.8 102.8
Doubling-oriented Doche–Icart–Kohel, standard 6.0 16.0 16.0 16.0 11.2 11.2 11.2 5.0 7.2 7.2 7.2 102.8
Jacobi intersection, projective 6.0 13.8 11.8 13.8 11.8 10.8 11.8 5.2 9.6 8.8 9.6 13.8 12.0 103.0
Jacobi intersection, extended 6.0 11.8 11.8 11.8 10.8 10.8 10.8 6.0 10.8 10.8 10.8 11.8 14.0 104.0
Montgomery, XZ 3.6 3.6 5.6 4.6 9.2 8.2 101.0

Smallest multiplication counts assuming I=100M, S=0.67M, *param=0M, add=0M, *const=0M:
Curve shape, representation DBL ADD reADD preADD mADD mreADD mpreADD mDBL mmADD mmreADD mmpreADD SUNI TPL DADD mDADD LADD mLADD SCALE
Short Weierstrass, projective 9.02 13.34 13.34 13.34 10.34 10.34 10.34 6.35 6.34 6.34 6.34 15.02 102.00
Short Weierstrass, projective with a4=-1 9.02 13.34 13.34 13.34 10.34 10.34 10.34 6.35 6.34 6.34 6.34 15.01 102.00
Short Weierstrass, projective with a4=-3 9.01 13.34 13.34 13.34 10.34 10.34 10.34 6.35 6.34 6.34 6.34 15.02 102.00
Short Weierstrass, XYZZ 8.68 13.34 13.34 13.34 13.34 13.34 13.34 8.68 13.34 13.34 13.34 103.67
Short Weierstrass, XYZZ with a4=-3 8.34 13.34 13.34 13.34 13.34 13.34 13.34 8.34 13.34 13.34 13.34 103.67
Hessian, projective 7.02 12.00 10.02 14.04 10.00 10.00 10.00 5.01 8.00 7.00 8.00 12.02 102.00
Hessian, extended 7.02 10.02 10.02 10.02 9.02 9.02 9.02 7.02 9.02 9.02 9.02 104.34
Tripling-oriented Doche–Icart–Kohel, standard 6.69 15.02 14.02 15.02 9.68 9.68 9.68 4.35 5.34 5.34 5.34 10.02 103.67
Short Weierstrass, Jacobian 6.36 14.35 12.68 14.35 9.68 9.68 9.68 4.35 5.34 5.34 5.34 11.70 103.67
Short Weierstrass, Jacobian with a4=-3 6.35 14.35 12.68 14.35 9.68 9.68 9.68 4.35 5.34 5.34 5.34 11.69 103.67
Jacobi quartic, XYZ 6.02 12.01 10.01 12.02 10.01 10.01 10.01 3.68 6.34 6.34 6.34 12.01 102.67
Jacobi quartic, doubling-oriented XYZ 5.69 12.01 10.01 12.02 10.01 10.01 10.01 3.68 6.34 6.34 6.34 12.01 102.67
Edwards, projective 5.68 10.35 10.35 10.35 9.00 9.00 9.00 5.01 6.67 6.67 6.67 10.35 11.68 102.00
Jacobi quartic, XXYZZ 5.68 9.68 9.01 9.68 8.01 8.01 8.01 4.35 8.01 8.01 8.01 9.68 11.37 103.34
Edwards, inverted 5.68 9.67 9.67 9.67 8.67 8.67 8.67 5.01 7.00 7.00 7.00 9.67 11.68 102.00
Jacobi quartic, XXYZZR 5.68 9.01 9.01 9.01 8.01 8.01 8.01 5.02 7.68 7.68 7.68 9.01 11.37 102.67
Jacobi quartic, doubling-oriented XXYZZ 5.36 9.68 9.01 9.68 8.01 8.01 8.01 4.35 8.01 8.01 8.01 9.68 11.37 103.34
Jacobi quartic, doubling-oriented XXYZZR 5.36 9.01 9.01 9.01 8.01 8.01 8.01 5.02 7.68 7.68 7.68 9.01 11.37 102.67
Doubling-oriented Doche–Icart–Kohel, standard 5.35 15.35 15.35 15.35 10.68 10.68 10.68 4.35 6.68 6.68 6.68 102.67
Jacobi intersection, projective 5.35 13.67 11.67 13.67 11.67 10.67 11.67 4.68 9.34 8.67 9.34 13.67 10.70 103.00
Jacobi intersection, extended 5.35 11.67 11.67 11.67 10.67 10.67 10.67 5.35 10.67 10.67 10.67 11.67 12.70 104.00
Montgomery, XZ 3.34 3.34 5.34 4.34 8.68 7.68 101.00