247 {
251
252 if (mpfr_cmpabs(&a.re, &a.im) >= 0)
253 {
254
255
256
257
258
259 mpfr_div(
p, &a.im, &a.re, MPFR_RNDN);
260 mpfr_mul(denom,
p, &a.im, MPFR_RNDN);
261 mpfr_add(denom, denom, &a.re, MPFR_RNDN);
262 mpfr_si_div(&
result.re, 1, denom, MPFR_RNDN);
263 mpfr_div(&
result.im,
p, denom, MPFR_RNDN);
265 }
266 else
267 {
268
269
270
271
272
273 mpfr_div(
p, &a.re, &a.im, MPFR_RNDN);
274 mpfr_mul(denom,
p, &a.re, MPFR_RNDN);
275 mpfr_add(denom, denom, &a.im, MPFR_RNDN);
276 mpfr_si_div(&
result.im, 1, denom, MPFR_RNDN);
278 mpfr_div(&
result.re,
p, denom, MPFR_RNDN);
279 }
280
282 mpfr_clear(denom);
283 }
unsigned long get_precision() const
VALGRIND_MAKE_MEM_DEFINED & result(result)