static void rand_triang_bang(t_rand_triang *x) { t_float u1, u2; u1 = fran(); u2 = fran(); outlet_float(x->x_obj.ob_outlet, 0.5*(u1+u2)); }
static void rand_linear_bang(t_rand_linear *x) { t_float u1, u2; u1 = fran(); u2 = fran(); if(u2 < u1) u1 = u2; outlet_float(x->x_obj.ob_outlet, u1); }
static void rand_expo_bang(t_rand_expo *x) { t_float u, l; l = (x->x_lambda <= 0 ? 0.0001 : x->x_lambda); do { u = fran(); } while(u == 0); outlet_float(x->x_obj.ob_outlet, -log(u)/l); }
static void rand_weibull_bang(t_rand_weibull *x) { t_float u, a, t, tinv; t = (x->x_t <= 0 ? 0.0001 : x->x_t); tinv = 1/t; do { u = fran(); } while(u == 0 || u == 1); a = 1/(1 - u); outlet_float(x->x_obj.ob_outlet, x->x_s*pow(log(a), tinv)); }
static void rand_bilex_bang(t_rand_bilex *x) { t_float u, s = 1, l; l = (x->x_lambda <= 0 ? 0.0001 : x->x_lambda); do { u = 2*fran(); } while(u == 0 || u == 2); if(u > 1) { u = 2-u; s=-1; } outlet_float(x->x_obj.ob_outlet, s*log(u)/l); }