<div dir="ltr"><div class="gmail_extra">By the way, using the <a href="https://en.wikipedia.org/wiki/Jacobi_elliptic_functions">elliptic function addition laws</a> on Wikipedia, I get equations of equal speed to the Edwards curve addition laws.  It computes the _same_ X coordinate.  The only difference is that this is done on an ellipse.  I have not tested them in Python, yet.  I could have a typo, or Wikipedia could, but it should work out.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I prefer this ellipse method of visualizing the Edwards addition law, though I don't know how to add the twist:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">x3 = (x1*y2*d2 + x2*y1*d1) / (1 - d*x1^2*x2^2)<br></div><div class="gmail_extra">y3 = (y1*y2 - x1*x2*d1*d2) / (1 - d*x1^2*x2^2)</div><div class="gmail_extra">d3 = (d1*d2 - d*x1*y1*x2*y2) / (1 - d*x1^2*x2^2)</div><div class="gmail_extra"><br></div><div class="gmail_extra">A = x1*x2</div><div class="gmail_extra">B = A*A</div><div class="gmail_extra">N = 1 - d*C</div><div class="gmail_extra">C = y1*y2</div><div class="gmail_extra">D = d1*d2</div><div class="gmail_extra">E = A*C</div><div class="gmail_extra">F = x1*d2</div><div class="gmail_extra">G = x2*d1</div><div class="gmail_extra"><br></div><div class="gmail_extra">X3 = y2*F + y1*G</div><div class="gmail_extra">Y3 = C - A*D</div><div class="gmail_extra">D3 = D - d*A*C</div><div class="gmail_extra"><br></div><div class="gmail_extra">13 multiplies... identical to Edwards curve algorithm from Wikipedia.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Bill</div></div></div>