fromP3 method

void fromP3(
  1. Point q
)

This is not optimised for speed; fixed-base tables should be precomputed.

Implementation

void fromP3(Point q) {
  // Goal: points[i] = (i+1)*Q, i.e., Q, 2Q, ..., 8Q
  // This allows lookup of -8Q, ..., -Q, 0, Q, ..., 8Q
  points[0].fromP3(q);
  final Point tmpP3 = Point.zero();
  final projP1xP1 tmpP1xP1 = projP1xP1.zero();
  for (int i = 0; i < 7; i++) {
    // Compute (i+1)*Q as Q + i*Q and convert to AffineCached
    points[i + 1].fromP3(tmpP3..fromP1xP1(tmpP1xP1..addAffine(q, points[i])));
  }
}