public void TestPowersCalculation() { var powers = Enumerable.Range(0, 30) .Select(i => Fr.FromInt(1 << i)) .ToArray(); CollectionAssert.AreEqual(powers, MclBls12381.Powers(Fr.FromInt(2), 30)); }
public G1 Evaluate(int x, int y) { var result = G1.Zero; var powX = MclBls12381.Powers(Fr.FromInt(x), Degree + 1); var powY = MclBls12381.Powers(Fr.FromInt(y), Degree + 1); for (var i = 0; i <= Degree; ++i) { for (var j = 0; j <= Degree; ++j) { result += _coefficients[Index(i, j)] * powX[i] * powY[j]; } } return(result); }