Input: | P1 = (X1, Y1, Z1), P2 = (x2, y2) | Output: | P3 = P1 + P2 | (1) | T1 = Z1Z1 | (2) | T2 = T1Z1 | (3) | T1 = T1x2 | (4) | T2 = T2y2, T1 = T1 − X1 | (5) | T3 = T1T1, T2 = T2 − Y1 | (6) | Z3 = Z1T1 | (7) | T4 = T3T1 | (8) | T3 = T3X1 | (9) | T5 = T2T2 − T4, T1 = 3T3 | (10) | T4 = T4Y1, T1 = T1 − T5 | (11) | Y3 = T1T2 − T4, X3 = T3 − T1 | (12) | return (X3, Y3, Z3) | Input: | P1 = (X1, Y1, Z1) | Output: | P3 = 2P1 | (1) | T1 = Z1Z1, Y3 = 2Y1 | (2) | T4 = Y3Y3, T2 = X1 − T1, T1 = X1 + T1 | (3) | T2 = T2T1 | (4) | T3 = T4X1, T2 = 3T2 | (5) | Z3 = Y3Z1, T1 = 2T3 | (6) | X3 = T2T2 − T1 | (7) | T3 = T4T4, T1 = T3 − X3 | (8) | T3 = T3/2, Y3 = T1T2 − T3 | (9) | return (X3, Y3, Z3) |
|