Miscellaneous Complex Functions (GNU MPC 1.4.1)

### 5.11 Miscellaneous Functions ¶

Function: `int` mpc_urandom `(mpc_t rop, gmp_randstate_t state)` ¶

  Generate a uniformly distributed random complex in the unit square [0, 1] x [0, 1]. Return 0, unless an exponent in the real or imaginary part is not in the current exponent range, in which case that part is set to NaN and a zero value is returned. The second argument is a `gmp_randstate_t` structure which should be created using the GMP `rand_init` function, see the GMP manual.

Function: `const char *` mpc_get_version `(void)` ¶

  Return the GNU MPC version, as a null-terminated string.

Macro: MPC_VERSION ¶
Macro: MPC_VERSION_MAJOR ¶
Macro: MPC_VERSION_MINOR ¶
Macro: MPC_VERSION_PATCHLEVEL ¶
Macro: MPC_VERSION_STRING ¶

  `MPC_VERSION` is the version of GNU MPC as a preprocessing constant. `MPC_VERSION_MAJOR`, `MPC_VERSION_MINOR` and `MPC_VERSION_PATCHLEVEL` are respectively the major, minor and patch level of GNU MPC version, as preprocessing constants. `MPC_VERSION_STRING` is the version as a string constant, which can be compared to the result of `mpc_get_version` to check at run time the header file and library used match:

      if (strcmp (mpc_get_version (), MPC_VERSION_STRING))
        fprintf (stderr, "Warning: header and library do not match\n");

  Note: Obtaining different strings is not necessarily an error, as in general, a program compiled with some old GNU MPC version can be dynamically linked with a newer GNU MPC library version (if allowed by the library versioning system).

Macro: `long` MPC_VERSION_NUM `(major, minor, patchlevel)` ¶

  Create an integer in the same format as used by `MPC_VERSION` from the given major, minor and patchlevel. Here is an example of how to check the GNU MPC version at compile time:

      #if (!defined(MPC_VERSION) || (MPC_VERSION<MPC_VERSION_NUM(2,1,0)))
      # error "Wrong GNU MPC version."
      #endif