wnafTable<SCALAR extends CryptoField<SCALAR>, G extends CryptoGroupElement<G, SCALAR>> static method

List<G> wnafTable<SCALAR extends CryptoField<SCALAR>, G extends CryptoGroupElement<G, SCALAR>>(
  1. G base,
  2. int window
)

Implementation

static List<G> wnafTable<
  SCALAR extends CryptoField<SCALAR>,
  G extends CryptoGroupElement<G, SCALAR>
>(G base, int window) {
  final List<G> table = [];
  final int size = 1 << (window - 1); // 2^(w-1)

  final G dbl = base.double();

  for (int i = 0; i < size; i++) {
    table.add(base);
    base = base + dbl; // base.addAssign(dbl) equivalent
  }
  return table;
}