y^2=x^3+a*x+b
XZ coordinates [database entry] represent x y as X Z satisfying the following equations:
x=X/Z
XX = X1^2 ZZ = Z1^2 A = 2*((X1+Z1)^2-XX-ZZ) aZZ = a*ZZ X3 = (XX-aZZ)^2-b2*A*ZZ Z3 = A*(XX+aZZ)+b4*ZZ^2
XX = X1^2 ZZ = Z1^2 A = 2*((X1+Z1)^2-XX-ZZ) aZZ = a*ZZ b2ZZ = b2*ZZ X3 = (XX-aZZ)^2-A*b2ZZ Z3 = A*(XX+aZZ)+2*b2ZZ*ZZ
T1 = X1^2 T2 = Z1^2 T3 = a*T2 T4 = T1-T3 T5 = T4^2 T6 = b*T2 T7 = X1*Z1 T8 = T6*T7 T9 = 8*T8 X3 = T5-T9 T10 = T1+T3 T11 = T7*T10 T12 = T6*T2 T13 = T11+T12 Z3 = 4*T13
X3 = (X1^2-a*Z1^2)^2-8*b*X1*Z1^3 Z3 = 4*(X1*Z1*(X1^2+a*Z1^2)+b*Z1^4)
X3 = (X1^2-a*Z1^2)^2-8*b*X1*Z1^3 Z3 = 4*Z1*(X1^3+a*X1*Z1^2+b*Z1^3)
A = X2*X3 B = Z2*Z3 C = X2*Z3 D = Z2*X3 X5 = (A-a*B)^2-b4*B*(C+D) Z5 = X1*(C-D)^2
T1 = X2*X3 T2 = Z2*Z3 T3 = X2*Z3 T4 = Z2*X3 T5 = a*T2 T6 = T1-T5 T7 = T6^2 T8 = b*T2 T9 = 4*T8 T10 = T3+T4 T11 = T9*T10 T12 = T7-T11 X5 = T12 T13 = T3-T4 T14 = T13^2 Z5 = X1*T14
T1 = X2*X3 T2 = Z2*Z3 T3 = X2*Z3 T4 = X3*Z2 T5 = T3+T4 T6 = a*T2 T7 = T1+T6 T8 = T5*T7 T9 = 2*T8 T10 = T2^2 T11 = b*T10 T12 = 4*T11 T13 = T9+T12 T14 = T3-T4 T15 = T14^2 T16 = T13 T17 = X1*T15 X5 = T16-T17 Z5 = T15
T1 = X2*X3 T2 = Z2*Z3 T3 = X2*Z3 T4 = Z2*X3 T5 = a*T2 T6 = T1-T5 T7 = T6^2 T8 = b*T2 T9 = 4*T8 T10 = T3+T4 T11 = T9*T10 T12 = T7-T11 X5 = Z1*T12 T13 = T3-T4 T14 = T13^2 Z5 = X1*T14
T1 = X2*X3 T2 = Z2*Z3 T3 = X2*Z3 T4 = X3*Z2 T5 = T3+T4 T6 = a*T2 T7 = T1+T6 T8 = T5*T7 T9 = 2*T8 T10 = T2^2 T11 = b*T10 T12 = 4*T11 T13 = T9+T12 T14 = T3-T4 T15 = T14^2 T16 = Z1*T13 T17 = X1*T15 X5 = T16-T17 Z5 = Z1*T15
X5 = (X2*X3-a*Z2*Z3)^2-4*b*Z2*Z3*(X2*Z3+X3*Z2) Z5 = X1*(X2*Z3-X3*Z2)^2
X5 = (X2*X3-a*Z2*Z3)^2-4*b*Z2*Z3*(X2*Z3+X3*Z2) Z5 = X1*(X2*Z3-X3*Z2)^2
R = 2*(X2*Z3+X3*Z2)*(X2*X3+a*Z2*Z3)+4*b*Z2^2*Z3^2 S = (X2*Z3-X3*Z2)^2 X5 = R-S*X1 Z5 = S
X5 = Z1*((X2*X3-a*Z2*Z3)^2-4*b*Z2*Z3*(X2*Z3+X3*Z2)) Z5 = X1*(X2*Z3-X3*Z2)^2
R = 2*(X2*Z3+X3*Z2)*(X2*X3+a*Z2*Z3)+4*b*Z2^2*Z3^2 S = (X2*Z3-X3*Z2)^2 X5 = R*Z1-S*X1 Z5 = S*Z1
XX = X2^2 ZZ = Z2^2 E = 2*((X2+Z2)^2-XX-ZZ) aZZ = a*ZZ X4 = (XX-aZZ)^2-b2*E*ZZ Z4 = E*(XX+aZZ)+b4*ZZ^2 A = X2*X3 B = Z2*Z3 C = X2*Z3 D = Z2*X3 X5 = (A-a*B)^2-b4*B*(C+D) Z5 = X1*(C-D)^2
XX = X2^2 ZZ = Z2^2 aZZ = a*ZZ E = (X2+Z2)^2-XX-ZZ X4 = (XX-aZZ)^2-b4*E*ZZ Z4 = 2*E*(XX+aZZ)+b4*ZZ^2 A = X2*X3 B = Z2*Z3 C = X2*Z3 D = X3*Z2 X5 = (A-a*B)^2-b4*B*(C+D) Z5 = X1*(C-D)^2
XX = X2^2 ZZ = Z2^2 aZZ = a*ZZ E = (X2+Z2)^2-XX-ZZ X4 = (XX-aZZ)^2-b4*E*ZZ Z4 = 2*E*(XX+aZZ)+b4*ZZ^2 A = X2*X3 B = Z2*Z3 C = X2*Z3 D = X3*Z2 R = 2*(C+D)*(A+a*B)+b4*B^2 S = (C-D)^2 X5 = R-S*X1 Z5 = S
XX = X2^2 ZZ = Z2^2 aZZ = a*ZZ E = (X2+Z2)^2-XX-ZZ X4 = (XX-aZZ)^2-b4*E*ZZ Z4 = 2*E*(XX+aZZ)+b4*ZZ^2 A = X2*X3 B = Z2*Z3 C = X2*Z3 D = X3*Z2 R = 2*(C+D)*(A+a*B)+b4*B^2 S = (C-D)^2 X5 = R-S*X1 Z5 = S
XX = X2^2 ZZ = Z2^2 E = 2*((X2+Z2)^2-XX-ZZ) aZZ = a*ZZ b2ZZ = b2*ZZ X4 = (XX-aZZ)^2-E*b2ZZ Z4 = E*(XX+aZZ)+2*b2ZZ*ZZ A = X2*X3 B = Z2*Z3 C = X2*Z3 D = Z2*X3 X5 = (A-a*B)^2-b4*B*(C+D) Z5 = X1*(C-D)^2
XX = X2^2 ZZ = Z2^2 aZZ = a*ZZ E = (X2+Z2)^2-XX-ZZ X4 = (XX-aZZ)^2-b4*E*ZZ Z4 = 2*E*(XX+aZZ)+b4*ZZ^2 A = X2*X3 B = Z2*Z3 C = X2*Z3 D = X3*Z2 X5 = Z1*((A-a*B)^2-b4*B*(C+D)) Z5 = X1*(C-D)^2
XX = X2^2 ZZ = Z2^2 aZZ = a*ZZ E = (X2+Z2)^2-XX-ZZ X4 = (XX-aZZ)^2-b4*E*ZZ Z4 = 2*E*(XX+aZZ)+b4*ZZ^2 A = X2*X3 B = Z2*Z3 C = X2*Z3 D = X3*Z2 R = 2*(C+D)*(A+a*B)+b4*B^2 S = (C-D)^2 X5 = R*Z1-S*X1 Z5 = S*Z1
X4 = (X2^2-a*Z2^2)^2-8*b*X2*Z2^3 Z4 = 4*(X2*Z2*(X2^2+a*Z2^2)+b*Z2^4) X5 = ((X2*X3-a*Z2*Z3)^2-4*b*Z2*Z3*(X2*Z3+X3*Z2)) Z5 = X1*(X2*Z3-X3*Z2)^2
X4 = (X2^2-a*Z2^2)^2-8*b*X2*Z2^3 Z4 = 4*(X2*Z2*(X2^2+a*Z2^2)+b*Z2^4) R = 2*(X2*Z3+X3*Z2)*(X2*X3+a*Z2*Z3)+4*b*Z2^2*Z3^2 S = (X2*Z3-X3*Z2)^2 X5 = R-S*X1 Z5 = S
X4 = (X2^2-a*Z2^2)^2-8*b*X2*Z2^3 Z4 = 4*(X2*Z2*(X2^2+a*Z2^2)+b*Z2^4) X5 = Z1*((X2*X3-a*Z2*Z3)^2-4*b*Z2*Z3*(X2*Z3+X3*Z2)) Z5 = X1*(X2*Z3-X3*Z2)^2
X4 = (X2^2-a*Z2^2)^2-8*b*X2*Z2^3 Z4 = 4*(X2*Z2*(X2^2+a*Z2^2)+b*Z2^4) R = 2*(X2*Z3+X3*Z2)*(X2*X3+a*Z2*Z3)+4*b*Z2^2*Z3^2 S = (X2*Z3-X3*Z2)^2 X5 = R*Z1-S*X1 Z5 = S*Z1
X4 = (X2^2-a*Z2^2)^2-8*b*X2*Z2^3 Z4 = 4*Z2*(X2^3+a*X2*Z2^2+b*Z2^3) X5 = (X2*X3-a*Z2*Z3)^2-4*b*Z2*Z3*(X2*Z3+X3*Z2) Z5 = X1*(X2*Z3-X3*Z2)^2