name tripling-oriented Doche--Icart--Kohel curves parameter a coordinate x coordinate y satisfying y^2 = x^3 + 3 a(x+1)^2 addition x = (-x1^3 + (x2 - 3 a) x1^2 + (x2^2 + 6 a x2) x1 + (y1^2 - 2 y2 y1 + (-x2^3 - 3 a x2^2 + y2^2)))/(x1^2 - 2 x2 x1 + x2^2) addition y = ((-y1 + 2 y2) x1^3 + (-3 a y1 + (-3 y2 x2 + 3 a y2)) x1^2 + ((3 x2^2 + 6 a x2) y1 - 6 a y2 x2) x1 + (y1^3 - 3 y2 y1^2 + (-2 x2^3 - 3 a x2^2 + 3 y2^2) y1 + (y2 x2^3 + 3 a y2 x2^2 - y2^3)))/(-x1^3 + 3 x2 x1^2 - 3 x2^2 x1 + x2^3) doubling x = 9/(4 y1^2) x1^4 + 9/y1^2 a x1^3 + (9/y1^2 a^2 + 9/y1^2 a) x1^2 + (18/y1^2 a^2 - 2) x1 + (9/y1^2 a^2 - 3 a) doubling y = -27/(8 y1^3) x1^6 - 81/(4 y1^3) a x1^5 + (-81/(2 y1^3) a^2 - 81/(4 y1^3) a) x1^4 + (-27/y1^3 a^3 - 81/y1^3 a^2 + 9/(2 y1)) x1^3 + (-81/y1^3 a^3 - 81/(2 y1^3) a^2 + 27/(2 y1) a) x1^2 + (-81/y1^3 a^3 + 9/y1 a^2 + 9/y1 a) x1 + (-27/y1^3 a^3 + 9/y1 a^2 - y1) negation x = x1 negation y = -y1 toweierstrass u = x toweierstrass v = y a0 = 1 a1 = 0 a3 = 0 a2 = 3 a a4 = 6 a a6 = 3 a fromweierstrass x = u fromweierstrass y = v