cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ]
#include <mathcw.h>
extern float vlrcwf_r (randcw_state_t state, int n, float u[], float a, float b);
extern double vlrcw_r (randcw_state_t state, int n, double u[], double a, double b);
extern long double vlrcwl_r (randcw_state_t state, int n, long double u[], long double a, long double b);
extern __float80 vlrcww_r (randcw_state_t state, int n, __float80 u[], __float80 a, __float80 b);
extern __float128 vlrcwq_r (randcw_state_t state, int n, __float128 u[], __float128 a, __float128 b);
extern long_long_double vlrcwll_r (randcw_state_t state, int n, long_long_double u[],
long_long_double a, long_long_double b);
extern decimal_float vlrcwdf_r (randcw_state_t state, int n, decimal_float u[],
decimal_float a, decimal_float b);
extern decimal_double vlrcwd_r (randcw_state_t state, int n, decimal_double u[],
decimal_double a, decimal_double b);
extern decimal_long_double vlrcwdl_r (randcw_state_t state, int n, decimal_long_double u[],
decimal_long_double a, decimal_long_double b);
extern decimal_long_long_double vlrcwdll_r (randcw_state_t state, int n, decimal_long_long_double u[],
decimal_long_long_double a, decimal_long_long_double b);
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.