
Hi, Steven Thanks for your reply. I'm using MSVC 2010, too. I met such problems when I generated a million random numbers with the mersenne_twister generator and OpenMP. I'm not sure whether v1.47 is thread safe, though. Here is the code triggered the memory access violation: int num_point = 1000; int n_para = 1000; boost::numeric::ublas::matrix<double> ui(num_point, n_para); #pragma omp parallel for shared(ui, num_point, n_para) private(i, j) for (i=0; i<num_point; i++) { for (j=0; j<n_para; j++) { ui(i,j) = unirand_real(0.0,1.0); } } Thanks, Jacky On 07/13/2011 11:35 AM, Hongyu Miao wrote:
Sorry to bother you with this. I met a problem with the Random library in the latest release v1.47.
<snip>
However, when I adopted my code to v1.47, the following code failed due to
memory access violation after a number of function calls:
double unirand_real(double a, double b) { // Create a random number generator engine static boost::random::mt19937 rng_real(static_cast<unsigned int>(std::time(0)));
// select Uniform probability distribution boost::random::uniform_real_distribution<> dist(a, b);
// return random sample return dist(rng_real); }
I will appreciate your help with this problem as right now I think the Random library may have a bug.
I can't reproduce this problem with MSVC 2010. a) What compiler are you using? b) Can you provide a complete minimal test case that fails? In Christ, Steven Watanabe