fromP3 method

void fromP3(
  1. Point q
)

Builds a lookup table at runtime. Fast.

Implementation

void fromP3(Point q) {
  // Goal: v.points[i] = (2*i+1)*Q, i.e., Q, 3Q, 5Q, ..., 15Q
  // This allows lookup of -15Q, ..., -3Q, -Q, 0, Q, 3Q, ..., 15Q
  points[0].fromP3(q);
  final Point q2 = Point.zero()..add(q, q);
  final Point tmpP3 = Point.zero();
  final projP1xP1 tmpP1xP1 = projP1xP1.zero();
  for (int i = 0; i < 7; i++) {
    points[i + 1].fromP3(tmpP3..fromP1xP1(tmpP1xP1..add(q2, points[i])));
  }
}