@NotNull
  @Override
  public PrecompileContractResult computePrecompile(
      final Bytes input, @NotNull final MessageFrame messageFrame) {
    // https://eips.ethereum.org/EIPS/eip-7823
    // We introduce an upper bound to the inputs of the precompile,
    // each of the length inputs (length_of_BASE, length_of_EXPONENT and length_of_MODULUS)
    // MUST be less than or equal to 1024 bytes
    final long length_of_BASE = baseLength(input);
    final long length_of_EXPONENT = exponentLength(input);
    final long length_of_MODULUS = modulusLength(input);
    if (length_of_BASE > upperBound
        || length_of_EXPONENT > upperBound
        || length_of_MODULUS > upperBound) {
      return PrecompileContractResult.halt(
          null, Optional.of(ExceptionalHaltReason.PRECOMPILE_ERROR));
    }
    if (useNative) {
      return computeNative(input, length_of_MODULUS);
    } else {
      return computeDefault(input, length_of_BASE, length_of_EXPONENT, length_of_MODULUS);
    }
  }
Check if native Arithmetic libraries are enabled.

@return the boolean
evm/src/main/java/org/hyperledger/besu/evm/precompile/BigIntegerModularExponentiationPrecompiledContract.java