http://benji3up2kxewkqfcq7buxk2xd6zwy3zggnurkrm3l4cvwy2iipvyyad.onion/mirrors/gmpdoc/Variable-Conventions.html
This
notation is by analogy with the assignment operator. GMP lets you use the same variable for both input and output in one call. For
example, the main function for integer multiplication, mpz_mul , can be
used to square x and put the result back in x with mpz_mul (x, x, x); Before you can assign to a GMP variable, you need to initialize it by calling
one of the special initialization functions.