272{
276 R.init(a);
277 R.init(b);
278 R.init(c);
279 R.init(d);
280 mpz_t gmp1;
281 mpz_init(gmp1);
282
283 for (
int i = 0; i <
ntrials; i++)
284 {
285 gen.nextElement(a);
286
287
288 R.power(b, a, 1);
289 EXPECT_TRUE(R.is_equal(b, a));
290
293 R.power(b, a, e1);
294 R.power(c, a, e2);
295 R.power(d, a, e1 + e2);
296 R.mult(c, b, c);
298
299
300 mpz_set_si(gmp1, e1);
301 R.power_mpz(d, a, gmp1);
302 EXPECT_TRUE(R.is_equal(d, b));
303 }
304 mpz_clear(gmp1);
305 R.clear(d);
306 R.clear(c);
307 R.clear(b);
308 R.clear(a);
309}
bool almostEqual(const M2::ARingRRi &R, int nbits, const M2::ARingRRi::ElementType &a, const M2::ARingRRi::ElementType &b)
aring-style adapter for arbitrary-precision real intervals, backed by MPFI.
int32_t rawRandomInt(int32_t max)