Double method

void Double(
  1. CompletedGroupElement r
)

Implementation

void Double(CompletedGroupElement r) {
  var t0 = FieldElement();

  FeSquare(r.X, X);
  FeSquare(r.Z, Y);
  FeSquare2(r.T, Z);
  FeAdd(r.Y, X, Y);
  FeSquare(t0, r.Y);
  FeAdd(r.Y, r.Z, r.X);
  FeSub(r.Z, r.Z, r.X);
  FeSub(r.X, t0, r.Y);
  FeSub(r.T, r.T, r.Z);
}