x^2+y^2=c^2*(1+d*x^2*y^2)
Inverted coordinates [database entry] represent x y as X Y Z satisfying the following equations:
x=Z/X y=Z/Y
This representation was introduced in the Bernstein–Lange paper "Inverted Edwards coordinates" (AAECC 2007). This representation does not cover the points (0,+-c) and (+-c,0).
Operation | Assumptions | Cost | Readdition cost |
---|---|---|---|
addition | Z1=1 and Z2=1 | 7M + 2*c | 7M + 2*c |
addition | X2=1 | 8M + 1S + 2*c + 1*d | 8M + 1S + 2*c + 1*d |
addition | Z2=1 | 8M + 1S + 2*c + 1*d | 8M + 1S + 2*c + 1*d |
addition | Z2=1 | 9M + 1*c | 9M + 1*c |
addition | 9M + 1S + 2*c + 1*d | 9M + 1S + 2*c + 1*d | |
addition | 11M + 1*c | 11M + 1*c | |
doubling | ccd2=2*c*c*d and Z1=1 | 3M + 3S + 1*c | |
doubling | ccd2=2*c*c*d | 3M + 4S + 1*ccd2 + 1*c | |
tripling | 9M + 4S + 1*c + 1*d | ||
tripling | ccd=c*c*d | 7M + 7S + 1*ccd | |
scaling | 1I + 2M |
C = X1*X2 D = Y1*Y2 E = C*D H = C-D I = (X1+Y1)*(X2+Y2)-C-D X3 = c*(E+d)*H Y3 = c*(E-d)*I Z3 = H*I
A = Z1*Z2
B = d*A^2
D = Y1*Y2
E = X1*D
F = E-B
G = E+B
H = X1-D
I = X1*Y2+Y1
X3 = c*G*H
Y3 = c*F*I
Z3 = A*H*I
A = Z1
B = d*A^2
C = X1*X2
D = Y1*Y2
E = C*D
H = C-D
I = (X1+Y1)*(X2+Y2)-C-D
X3 = c*(E+B)*H
Y3 = c*(E-B)*I
Z3 = A*H*I
A = X1 B = Y1 C = Z1*X2 D = Z1*Y2 E = A*B F = C*D G = E+F H = E-F X3 = ((A+D)*(B+C)-G)*H Y3 = ((A-C)*(B+D)-H)*G Z3 = c*G*H
A = Z1*Z2
B = d*A^2
C = X1*X2
D = Y1*Y2
E = C*D
H = C-D
I = (X1+Y1)*(X2+Y2)-C-D
X3 = c*(E+B)*H
Y3 = c*(E-B)*I
Z3 = A*H*I
A = X1*Z2 B = Y1*Z2 C = Z1*X2 D = Z1*Y2 E = A*B F = C*D G = E+F H = E-F X3 = ((A+D)*(B+C)-G)*H Y3 = ((A-C)*(B+D)-H)*G Z3 = c*G*H
A = X1^2 B = Y1^2 C = A+B D = A-B E = (X1+Y1)^2-C Z3 = c*D*E X3 = C*D Y3 = E*(C-ccd2)
A = X1^2 B = Y1^2 C = A+B D = A-B E = (X1+Y1)^2-C Z3 = c*D*E X3 = C*D Y3 = E*(C-ccd2*Z1^2)
XX = X1^2 YY = Y1^2 ZZ = (c*Z1)^2 D = XX+YY DD = D^2 E = 4*(D-d*ZZ) H = 2*D*(YY-XX) P = DD-XX*E Q = DD-YY*E X3 = (H+Q)*Q*X1 Y3 = (H-P)*P*Y1 Z3 = P*Q*Z1
XX = X1^2 YY = Y1^2 ZZ = Z1^2 D = XX+YY DD = D^2 E = 4*(D-ccd*ZZ) H = 2*D*(YY-XX) P = DD-XX*E Q = DD-YY*E QQ = Q^2 X3 = (H+Q)*((Q+X1)^2-QQ-XX) Y3 = 2*(H-P)*P*Y1 Z3 = P*((Q+Z1)^2-QQ-ZZ)
A = 1/Z1 X3 = X1*A Y3 = Y1*A Z3 = 1