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