0
나는 64 비트 시스템에서의 long double의 난수 생성을 위해 부스트를 사용하려고합니다. 나는 그러나롱 더블의 (의사) 난수 생성기에 대한 부스트 사용하기
rng = boost::mt19937();
을 사용하는 일부 시점에서
는, 컴파일러는 라인 부스트/랜덤/mersenne_twister.hpp의 88에
x[i] = (1812433253UL * (x[i-1]^(x[i-1] >> (w-2))) + i) & mask;
가 64을 단축 암시 적 변환이 있음을 주장 비트를 32 비트 값으로 변환하십시오 ...
긴 이중 또는 이중을 원한다면 지정하지 않았습니다 ... 왜 그가 그 논쟁을하고 있습니까? 제가 64 비트 OS를 사용하고 있기 때문입니까?
이 문제에 대한 간단한 해결책이 있습니까? 나는 ...의 xD
감사
문제가 해결되지 않았습니다. 여기에 불만 : random/detail/large_arithmetic.hpp (boost 버전 1.49.0) 줄 99-100 –
Strange. 나는 작은 시험을 만들었다. VC10에서 경고 나 오류 메시지가 컴파일되지 않습니다. 다음은 소스 코드에 대한 [link] (http://ideone.com/XwHaL)입니다. 주석에 코드를 게시하는 것은 불가능합니다. 한계 초과. VC10에서 문제없이 컴파일됩니다. 온라인 컴파일러는'mt19937_64' 클래스가 없어서 에러를냅니다. 컴파일 할 수없는 샘플 코드를 게시 할 수 있습니까? – megabyte1024
그래서 경고가 나타나지만 어쨌든 작동합니다 ... xD Thanks. –