square method

Bls12NativeFp6 square()

Squaring

Implementation

Bls12NativeFp6 square() {
  final s0 = c0.square();
  final ab = c0 * c1;
  final s1 = ab + ab;
  final s2 = (c0 - c1 + c2).square();
  final bc = c1 * c2;
  final s3 = bc + bc;
  final s4 = c2.square();

  return Bls12NativeFp6(
    c0: s3.mulByNonresidue() + s0,
    c1: s4.mulByNonresidue() + s1,
    c2: s1 + s2 + s3 - s0 - s4,
  );
}