Exemple #1
0
void    rand_c0o1(double *r, int n, void *d)
{
    if( n >= DSFMT_N64 ) {
        int     nn;

        if( n % 2 != 0 ) nn = n - 1;
        else             nn = n;

        if( d == NULL ) {
            dsfmt_fill_array_close_open(&dsfmt_global_data, r, nn);
        } else {
            dsfmt_t *p = (dsfmt_t*) d;
            dsfmt_fill_array_close_open(p, r, nn);
        }

        if( n % 2 != 0 ) r[n-1] = rand_c0o1(d);
    } else {
        for(int i=0; i<n; i++) r[i] = rand_c0o1(d);
    }
}
Exemple #2
0
void drunif(RngEngine* rng, double* buffer, BlasInt* n, BlasInt* isAligned,
			RngErrorType* info) {

	if ((*isAligned == 0) || (*n == 1)) {
		for (BlasInt iter = 0; iter < *n; ++iter) {
			buffer[iter] = dsfmt_genrand_close_open(&(rng->m_dsfmt));
		}
	} else if (*n > 1) {
		dsfmt_fill_array_close_open(&(rng->m_dsfmt), buffer, *n);
	}
	*info = 0;
}