y^2=x^3+a*x^2+16*a*x
Standard coordinates [database entry] represent x y as X Y Z ZZ satisfying the following equations:
x=X/Z
y=Y/ZZ
ZZ=Z^2
| Operation | Assumptions | Cost | Readdition cost |
|---|---|---|---|
| addition | Z1=1 and Z2=1 | 4M + 4S + 1*a | 4M + 4S + 1*a |
| addition | Z1=1 and Z2=1 | 4M + 4S + 1*a | 4M + 4S + 1*a |
| addition | Z1=1 and Z2=1 | 6M + 3S + 1*a | 6M + 3S + 1*a |
| addition | Z2=1 | 8M + 4S + 1*a | 8M + 4S + 1*a |
| addition | Z2=1 | 9M + 3S + 1*a | 9M + 3S + 1*a |
| addition | 12M + 5S + 1*a | 12M + 5S + 1*a | |
| addition | 21M + 15S + 2^4 + 1*a | 21M + 11S + 1^4 + 1*a | |
| addition | 7I + 12M + 9S + 1^4 + 1*a | 4I + 9M + 8S + 1^4 + 1*a | |
| doubling | a2=2*a and a16=16*a and Z1=1 | 1M + 5S + 1*a2 + 1*a | |
| doubling | a2=2*a | 2M + 5S + 1*a2 + 1*a | |
| doubling | a4=4*a | 3M + 4S + 1*a + 1*a4 | |
| doubling | a16=16*a | 3M + 8S + 1*a16 + 2*a | |
| scaling | 1I + 2M + 1S |
A = Y2-Y1
AA = A^2
B = X2-X1
CC = B^2
F = X1*CC
Z3 = 2*CC
D = X2*Z3
ZZ3 = Z3^2
X3 = 2*(AA-F)-a*Z3-D
Y3 = ((A+B)^2-AA-CC)*(D-X3)-Y2*ZZ3
A = Y2-Y1
AA = A^2
B = X2-X1
CC = B^2
D = 2*X2*CC
F = X1*CC
Z3 = 2*CC
ZZ3 = Z3^2
X3 = 2*(AA-F)-a*Z3-D
Y3 = ((A+B)^2-AA-CC)*(D-X3)-Y2*ZZ3
A = Y1-Y2
B = X1-X2
C = B
Z3 = C^2
D = X1*Z3
E = A^2
F = X2*B*C
X3 = E-a*Z3-D-F
G = Z3^2
H = A*C
Y3 = H*(D-X3)-Y1*G
ZZ3 = G
A = Y2*ZZ1-Y1
AA = A^2
B = X2*Z1-X1
C = B*Z1
CC = C^2
D = 2*X2*CC
F = X1*B*C
Z3 = 2*CC
ZZ3 = Z3^2
X3 = 2*(AA-F)-a*Z3-D
Y3 = ((A+C)^2-AA-CC)*(D-X3)-Y2*ZZ3
A = Y2*ZZ1-Y1
B = X2*Z1-X1
C = B*Z1
Z3 = C^2
D = X2*Z3
E = A^2
F = X1*B*C
X3 = E-a*Z3-D-F
G = Z3^2
H = A*C
Y3 = H*(D-X3)-Y2*G
ZZ3 = G
A = Y1*ZZ2-Y2*ZZ1
AA = A^2
X2Z1 = X2*Z1
B = X1*Z2-X2Z1
C = B*Z2
E = C*Z1
EE = E^2
F = E*C
D = F*X1
U = AA-a*EE-D-X2Z1*E*B
X3 = 2*U
Y3 = 2*((E+A)^2-EE-AA)*(D-U)-Y1*(2*F)^2
Z3 = 2*EE
ZZ3 = Z3^2
A = Y1*Z2^2-Y2*Z1^2
B = X1*Z2-X2*Z1
D = Z1*Z2^2*B^2*X1
U = A^2-a*B^2*Z1^2*Z2^2-D-X2*B^2*Z1^2*Z2
X3 = U
Y3 = Z1*Z2*A*B*(D-U)-Z1^2*Z2^4*Y1*B^4
Z3 = Z1^2*Z2^2*B^2
ZZ3 = Z3^2
A = Y1/Z1^2-Y2/Z2^2
B = (X1/Z1)-(X2/Z2)
D = (X1/Z1)*B^2
X3 = A^2-a*B^2-D-(X2/Z2)*B^2
Y3 = A*B*(D-X3)-(Y1/Z1^2)*B^4
Z3 = B^2
ZZ3 = Z3^2
A = X1^2
B = A-a16
C = a2*A
YY = Y1^2
YY2 = 2*YY
Z3 = 2*YY2
X3 = B^2
V = (Y1+B)^2-YY-X3
Y3 = V*(X3+64*C+a*(YY2-C))
ZZ3 = Z3^2
A = X1^2
U = a2*ZZ1
B = A-8*U
C = A*U
YY = Y1^2
YY2 = 2*YY
Z3 = 2*YY2
X3 = B^2
V = (Y1+B)^2-YY-X3
Y3 = V*(X3+64*C+a*(YY2-C))
ZZ3 = Z3^2
A = X1^2
U = a4*ZZ1
B = A-4*U
C = A*U
Z3 = (2*Y1)^2
X3 = B^2
Y3 = Y1*B*(2*(X3+32*C)+a*(Z3-C))
ZZ3 = Z3^2
A = X1^2
B = X1^2-a16*Z1^2
YT = Y1*B
X3 = B^2
Z3 = 4*Y1^2
C = X1^2*a*Z1^2
D = Z3^2
E = a*(Z3-4*C)
Y3 = YT*(2*X3+E+256*C)
ZZ3 = D
A = 1/Z1
X3 = X1*A
Y3 = Y1*A^2
Z3 = 1
ZZ3 = 1