DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gmp.info.gz) Variable Conventions

Info Catalog (gmp.info.gz) Function Classes (gmp.info.gz) GMP Basics (gmp.info.gz) Parameter Conventions
 
 Variable Conventions
 ====================
 
 GMP functions generally have output arguments before input arguments.
 This notation is by analogy with the assignment operator.  The BSD MP
 compatibility functions are exceptions, having the output arguments
 last.
 
    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.  When you're
 done with a variable, you need to clear it out, using one of the
 functions for that purpose.  Which function to use depends on the type
 of variable.  See the chapters on integer functions, rational number
 functions, and floating-point functions for details.
 
    A variable should only be initialized once, or at least cleared
 between each initialization.  After a variable has been initialized, it
 may be assigned to any number of times.
 
    For efficiency reasons, avoid excessive initializing and clearing.
 In general, initialize near the start of a function and clear near the
 end.  For example,
 
      void
      foo (void)
      {
        mpz_t  n;
        int    i;
        mpz_init (n);
        for (i = 1; i < 100; i++)
          {
            mpz_mul (n, ...);
            mpz_fdiv_q (n, ...);
            ...
          }
        mpz_clear (n);
      }
 
Info Catalog (gmp.info.gz) Function Classes (gmp.info.gz) GMP Basics (gmp.info.gz) Parameter Conventions
automatically generated byinfo2html