Spiros
Spiros

Reputation: 2346

Can I use a `mpfr_t` as both input and output argument?

The question is very simple and direct, but I could not find an answer on the documentation. If I have

mpfr_t a, b;

Can I do something like

mpfr_add(a, a, b, rnd);

This would compute the sum of a and b and store the result on a. I don't know if this results in an aliasing problem, potentially invalidating the result, or if this is fine.

Upvotes: 6

Views: 161

Answers (1)

Spiros
Spiros

Reputation: 2346

Never mind, it's in section 4.3 of the linked document.

MPFR allows you to use the same variable for both input and output in the same expression. For example, the main function for floating-point multiplication, mpfr_mul, can be used like this: mpfr_mul (x, x, x, rnd). This computes the square of x with rounding mode rnd and puts the result back in x.

Upvotes: 3

Related Questions