long double の乱数生成に boost を使用しようとしています (64 ビット マシン上)。
ある時点で私は使用します
rng = boost::mt19937();
ただし、コンパイラは、boost/random/mersenne_twister.hpp の 88 行目で、
x[i] = (1812433253UL * (x[i-1] ^ (x[i-1] >> (w-2))) + i) & mask;
64ビットを32ビット値に短縮する暗黙の変換があります...
ロングダブルとダブルのどちらが欲しいかさえ指定していませんでした...なぜ彼はそれについて議論しているのですか? 64ビットOSを使用しているからですか?
この問題の簡単な解決策はありますか? ロングダブルジェネレーターが必要です... xD
ありがとう