private static int[] PointPrecompute(PointAffine p, int count) { Debug.Assert(count > 0); PointExt q = PointCopy(p); PointExt d = PointCopy(q); PointAdd(q, d); int[] table = X25519Field.CreateTable(count * 4); int off = 0; int i = 0; for (;;) { X25519Field.Copy(q.x, 0, table, off); off += X25519Field.Size; X25519Field.Copy(q.y, 0, table, off); off += X25519Field.Size; X25519Field.Copy(q.z, 0, table, off); off += X25519Field.Size; X25519Field.Copy(q.t, 0, table, off); off += X25519Field.Size; if (++i == count) { break; } PointAdd(d, q); } return(table); }