y^^{2}=x^^{4}+2*a*x^^{2}+1
Doubling-oriented XYZ coordinates [database entry] make the additional assumptions
a^^{2}+c^^{2}=1and represent x y as X Y Z satisfying the following equations:
x=X/Z
y=Y/Z^^{2}
Operation | Assumptions | Cost | Readdition cost |
---|---|---|---|
addition | Z1=1 and Z2=1 | 5M + 2S + 1*a | 5M + 2S + 1*a |
addition | Z2=1 | 8M + 3S + 1*a | 8M + 3S + 1*a |
addition | 10M + 3S + 1*a | 9M + 3S + 1*a | |
addition | 8M + 6S + 1*a | 8M + 3S + 1*a | |
addition | 10M + 4S + 1*a | 9M + 2S + 1*a | |
addition | b=-2*a | 10M + 4S + 1*b | 9M + 2S + 1*b |
addition | 19M + 8S + 1*a | 18M + 6S + 1*a | |
addition | Z1=1 and Z2=1 | 2I + 11M + 5S + 1*a | 2I + 11M + 4S + 1*a |
doubling | a2=2*a and Z1=1 | 1M + 4S + 1*a2 | |
doubling | a2=2*a and c2=2*c | 1M + 7S + 1*a2 + 1*c2 + 1*c | |
doubling | b=4-4*a^^{2} | 2M + 6S + 1*a + 1*b | |
doubling | a2=2*a | 2M + 6S + 1*a2 | |
doubling | a2=2*a | 3M + 6S + 2*a2 | |
doubling | 1M + 9S + 1*a | ||
doubling | a2=2*a | 2M + 5S + 1^^{4} + 1*a2 + 2*c | |
doubling | 19M + 8S + 1*a | ||
doubling | 19M + 8S + 1*a | ||
scaling | 1I + 2M + 1S |
T7 = Y1+X1 T8 = Y2+X2 T2 = Y1*Y2 T7 = T7*T8 T7 = T7-T2 T5 = X1*X2 T6 = T5 X3 = T7-T6 T1 = X1+X2 T3 = T1^^{2} T6 = 2*T6 T3 = T3-T6 T3 = T3*T6 T4 = a*T6 T2 = T2+T4 T8 = T5^^{2} T5 = T8+1 T2 = T2*T5 Y3 = T2+T3 Z3 = 1-T8
T1 = X1 T2 = Y1 T3 = Z1 T4 = X2 T5 = Y2 T7 = T1*T3 T7 = T2+T7 T8 = T4 T8 = T5+T8 T2 = T2*T5 T7 = T7*T8 T7 = T7-T2 T5 = T1*T4 T1 = T1+T3 T8 = T3 T4 = T4+1 T6 = T5*T8 T7 = T7-T6 T1 = T1*T4 T1 = T1-T5 T1 = T1-T8 T3 = T1^^{2} T6 = 2*T6 T3 = T3-T6 T3 = T3*T6 T4 = a*T6 T2 = T2+T4 T4 = T8^^{2} T8 = T5^^{2} T5 = T4+T8 T2 = T2*T5 T2 = T2+T3 T5 = T4-T8 X3 = T7 Y3 = T2 Z3 = T5
T1 = X1 T2 = Y1 T3 = Z1 T4 = X2 T5 = Y2 T6 = Z2 T7 = T1*T3 T7 = T2+T7 T8 = T4*T6 T8 = T5+T8 T2 = T2*T5 T7 = T7*T8 T7 = T7-T2 T5 = T1*T4 T1 = T1+T3 T8 = T3*T6 T4 = T4+T6 T6 = T5*T8 T7 = T7-T6 T1 = T1*T4 T1 = T1-T5 T1 = T1-T8 T3 = T1^^{2} T6 = 2*T6 T3 = T3-T6 T3 = T3*T6 T4 = a*T6 T2 = T2+T4 T4 = T8^^{2} T8 = T5^^{2} T5 = T4+T8 T2 = T2*T5 T2 = T2+T3 T5 = T4-T8 X3 = T7 Y3 = T2 Z3 = T5
A2 = X2^^{2} C2 = Z2^^{2} D2 = A2+C2 B2 = (X2+Z2)^^{2}-D2 E2 = B2+Y2 A1 = X1^^{2} C1 = Z1^^{2} D1 = A1+C1 B1 = (X1+Z1)^^{2}-D1 E1 = B1+Y1 A1A2 = A1*A2 B1B2 = B1*B2 C1C2 = C1*C2 Y1Y2 = Y1*Y2 F = C1C2+A1A2 G = 2*B1B2 X3 = E1*E2-B1B2-Y1Y2 Y3 = F*(4*Y1Y2+a*G)+(D1*D2-F)*G Z3 = 2*(C1C2-A1A2)
A2 = X2^^{2} B2 = X2*Z2 C2 = Z2^^{2} A1 = X1^^{2} B1 = X1*Z1 C1 = Z1^^{2} A1A2 = A1*A2 B1B2 = B1*B2 C1C2 = C1*C2 Y1Y2 = Y1*Y2 E = C1C2+A1A2 F = (A1+C1)*(A2+C2)-E G = 2*B1B2 X3 = (B1+Y1)*(B2+Y2)-B1B2-Y1Y2 Y3 = E*(Y1Y2+a*G)+G*F Z3 = C1C2-A1A2
T1 = X1^^{2} T2 = X2^^{2} T3 = X1*Z1 T4 = X2*Z2 T5 = Z1^^{2} T6 = Z2^^{2} T7 = Y1 T8 = Y2 T9 = T7*T8 T7 = T7+T3 T8 = T8+T4 T3 = T3*T4 T7 = T7*T8 T7 = T7-T9 T7 = T7-T3 T4 = T1*T2 T8 = T5*T6 T1 = T1+T5 T2 = T2+T6 T5 = T1*T2 T5 = T5-T4 T5 = T5-T8 T1 = T8-T4 T2 = T8+T4 T6 = b*T3 T6 = T9-T6 T6 = T6*T2 T3 = 2*T3 T3 = T5*T3 T8 = T6+T3 X3 = T7 Y3 = T8 Z3 = T1
X3 = X1*Z1*Y2+Y1*X2*Z2 Y3 = ((Z1*Z2)^^{2}+(X1*X2)^^{2})*(Y1*Y2+2*a*X1*X2*Z1*Z2)+2*X1*X2*Z1*Z2*(X1^^{2}*Z2^^{2}+Z1^^{2}*X2^^{2}) Z3 = (Z1*Z2)^^{2}-(X1*X2)^^{2}
r = 1-(X1*X2)^^{2} X3 = (X1*Y2+Y1*X2)/r Y3 = ((1+(X1*X2)^^{2})*(Y1*Y2+2*a*X1*X2)+2*X1*X2*(X1^^{2}+X2^^{2}))/r^^{2} Z3 = 1
U1 = (X1+Y1)^^{2} U2 = Y1^^{2} S1 = X1^^{2} V1 = S1^^{2} aS1 = a2*S1 T = U2-V1-aS1 X3 = U1-U2-S1 Y3 = (T+V1)*(U2+aS1)+4*V1 Z3 = T-V1
XX1 = X1^^{2} XZ1 = X1*Z1 T1 = XZ1^^{2} T2 = Y1^^{2} S1 = (T2+c2*T1)^^{2} X3 = (XZ1+Y1)^^{2}-T1-T2 V = X3^^{2} Y3 = S1-c*V Z3 = T2-a2*T1-2*XX1^^{2}
T0 = X1*Z1 X3 = T0*Y1 X3 = X3+X3 T0 = T0^^{2} T1 = 2*a*T0 T2 = Y1^^{2} Z3 = T2-T1 Y3 = T0^^{2} Y3 = b*Y3 T0 = T2^^{2} Y3 = Y3+T0 T0 = X1^^{2} T0 = T0^^{2} Z3 = Z3-T0 Z3 = Z3-T0
XZ1 = X1*Z1 U1 = (XZ1+Y1)^^{2} U2 = Y1^^{2} V1 = (X1^^{2})^^{2} S1 = XZ1^^{2} aS1 = a2*S1 T = U2-V1-aS1 X3 = U1-U2-S1 Y3 = (T+V1)*(U2+aS1)+(2*S1)^^{2} Z3 = T-V1
U1 = (X1*Z1+Y1)^^{2} U2 = Y1^^{2} V1 = (X1^^{2})^^{2} S1 = (X1*Z1)^^{2} T = U2-V1-a2*S1 X3 = U1-U2-S1 Y3 = (T+V1)*(U2+a2*S1)+4*S1^^{2} Z3 = T-V1
XX = X1^^{2} XXXX = XX^^{2} YY = Y1^^{2} ZZ = Z1^^{2} ZZZZ = ZZ^^{2} M = XX+ZZ XZ = (X1+Z1)^^{2}-M XZXZ = XZ^^{2} X3 = (Y1+XZ)^^{2}-YY-XZXZ Y3 = (ZZZZ+XXXX)*(4*YY+2*a*XZXZ)+XZXZ^^{2} Z3 = 2*(ZZZZ-XXXX)
T1 = (X1*Z1)^^{2} T2 = Y1^^{2} S1 = (T2+2*c*T1)^^{2} U = (X1*Z1+Y1)^^{2}-T1-T2 V = U^^{2} X3 = U Y3 = S1-c*V Z3 = T2-a2*T1-2*X1^^{4}
X3 = X1*Z1*Y1+Y1*X1*Z1 Y3 = ((Z1*Z1)^^{2}+(X1*X1)^^{2})*(Y1*Y1+2*a*X1*X1*Z1*Z1)+2*X1*X1*Z1*Z1*(X1^^{2}*Z1^^{2}+Z1^^{2}*X1^^{2}) Z3 = (Z1*Z1)^^{2}-(X1*X1)^^{2}
X2 = X1 Y2 = Y1 Z2 = Z1 X3 = X1*Z1*Y2+Y1*X2*Z2 Y3 = ((Z1*Z2)^^{2}+(X1*X2)^^{2})*(Y1*Y2+2*a*X1*X2*Z1*Z2)+2*X1*X2*Z1*Z2*(X1^^{2}*Z2^^{2}+Z1^^{2}*X2^^{2}) Z3 = (Z1*Z2)^^{2}-(X1*X2)^^{2}
A = 1/Z1
X3 = X1*A
Y3 = Y1*A^^{2}
Z3 = 1