@Override
  public T multiply(final T other) {
    final Fq[] b = new Fq[degree * 2 - 1];
    Arrays.fill(b, Fq.zero());
    for (int i = 0; i < degree; ++i) {
      for (int j = 0; j < degree; ++j) {
        b[i + j] = b[i + j].add(coefficients[i].multiply(other.coefficients[j]));
      }
    }

    for (int i = b.length; i > degree; --i) {
      final Fq top = b[i - 1];
      final int exp = i - degree - 1;
      for (int j = 0; j < degree; ++j) {
        b[exp + j] = b[exp + j].subtract(top.multiply(modulusCoefficients[j]));
      }
    }

    return newInstance(Arrays.copyOfRange(b, 0, degree));
  }
Get coefficients fq [ ].

@return the fq [ ]
crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/altbn128/AbstractFqp.java