87{
89 mpfr_init2(
p, mpfr_get_prec(v->re));
90 mpfr_init2(denom, mpfr_get_prec(v->re));
91
92 if (mpfr_cmpabs(v->re, v->im) >= 0)
93 {
94
95
96
97
98
99 mpfr_div(
p, v->im, v->re, MPFR_RNDN);
100 mpfr_mul(denom,
p, v->im, MPFR_RNDN);
101 mpfr_add(denom, denom, v->re, MPFR_RNDN);
102 mpfr_si_div(
result->re, 1, denom, MPFR_RNDN);
103 mpfr_div(
result->im,
p, denom, MPFR_RNDN);
105 }
106 else
107 {
108
109
110
111
112
113 mpfr_div(
p, v->re, v->im, MPFR_RNDN);
114 mpfr_mul(denom,
p, v->re, MPFR_RNDN);
115 mpfr_add(denom, denom, v->im, MPFR_RNDN);
116 mpfr_si_div(
result->im, 1, denom, MPFR_RNDN);
118 mpfr_div(
result->re,
p, denom, MPFR_RNDN);
119 }
120
122 mpfr_clear(denom);
123}
VALGRIND_MAKE_MEM_DEFINED & result(result)