cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> extern float vercwf_r (randcw_state_t state, int n, float u[]); extern double vercw_r (randcw_state_t state, int n, double u[]); extern long double vercwl_r (randcw_state_t state, int n, long double u[]); extern __float80 vercww_r (randcw_state_t state, int n, __float80 u[]); extern __float128 vercwq_r (randcw_state_t state, int n, __float128 u[]); extern long_long_double vercwll_r (randcw_state_t state, int n, long_long_double u[]); extern decimal_float vercwdf_r (randcw_state_t state, int n, decimal_float u[]); extern decimal_double vercwd_r (randcw_state_t state, int n, decimal_double u[]); extern decimal_long_double vercwdl_r (randcw_state_t state, int n, decimal_long_double u[]); extern decimal_long_long_double vercwdll_r (randcw_state_t state, int n, decimal_long_long_double u[]);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
The generator state is keep externally in the state argument, a vector of four UINT_LEAST32_T values, most conveniently initialized with incw_r(). This makes the functions thread safe, and allows creation of a practically-unlimited number of independent families of generators, each with its own state.