private static Fq12 lineFunc(
      final AltBn128Fq12Point p1, final AltBn128Fq12Point p2, final AltBn128Fq12Point t) {
    final Fq12 x1 = p1.getX();
    final Fq12 y1 = p1.getY();
    final Fq12 x2 = p2.getX();
    final Fq12 y2 = p2.getY();
    final Fq12 xT = t.getX();
    final Fq12 yT = t.getY();

    if (!x1.equals(x2)) {
      final Fq12 m = y2.subtract(y1).divide(x2.subtract(x1));
      final Fq12 result = m.multiply(xT.subtract(x1)).subtract(yT.subtract(y1));
      return result;
    } else if (y1.equals(y2)) {
      final Fq12 m = x1.power(2).multiply(3).divide(y1.multiply(2));
      final Fq12 result = m.multiply(xT.subtract(x1)).subtract(yT.subtract(y1));
      return result;
    } else {
      return xT.subtract(x1);
    }
  }
Finalize fq 12.

@param f the f
@return the fq 12
crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/altbn128/AltBn128Fq12Pairer.java