80 #if defined(USE_OPENMP) && (USE_OPENMP == 1)
94 #if defined(USE_OPENMP) && (USE_OPENMP == 1)
103 const int bits_per_byte = 8;
104 const int num_bits =
sizeof(uint64_t) * bits_per_byte;
108 static_cast<LongIndexType>(array_size/num_bits);
113 #if defined(USE_OPENMP) && (USE_OPENMP == 1)
114 #pragma omp parallel if (num_threads > 0)
123 #if defined(USE_OPENMP) && (USE_OPENMP == 1)
130 #if defined(USE_OPENMP) && (USE_OPENMP == 1)
131 #pragma omp for schedule(static)
136 uint64_t bits = random_number_generator.
next(thread_id);
142 if (bits & ( uint64_t(1) << j))
145 array[i*num_bits + j] = 1.0;
150 array[i*num_bits + j] = -1.0;
161 uint64_t bits = random_number_generator.
next(thread_id);
165 for (
LongIndexType i = num_chunks * num_bits; i < array_size; ++i)
168 if (bits & ( uint64_t(1) << j))
static void generate_random_array(RandomNumberGenerator &random_number_generator, DataType *array, const LongIndexType array_size, const IndexType num_threads)
Generates a pseudo-random array with Rademacher distribution where elements are either +1 or -1.