225 {
226 if (mpz_sgn(n) < 0) throw exc::engine_error("can only raise to a nonnegative power");
228 if (n1.first)
229 mpz_pow_ui(&
result, &a, n1.second);
230 else
231 throw exc::engine_error("exponent too large");
232 }
static std::pair< bool, int > get_si(mpz_srcptr n)
VALGRIND_MAKE_MEM_DEFINED & result(result)