Boost 1.46.1のpoisson_distributionを使った乱数生成は動かない

古い話かもしれないが, 今使っているUbuntu 12.04のboost/tr1/random.hpp (tr1/random)で, poisson_distributionを用いた乱数生成をしようとすると動かない. 動いてもとても遅く, おかしな値が返ってくる.

実際, Boostのサイトから現状の最新版である1.53.0をダウンロードして展開し, インクルードパスに指定してコンパイルするとちゃんと動作した (g++ -I/path/to/boost_1_53_0 test.cpp && ./a.out). 使ったコードは以下の通り.

#include <boost/tr1/random.hpp>
#include <iostream>
#include <ctime>

int main(void)
{
    static std::tr1::mt19937 eng;
    eng.seed((unsigned int)time(NULL));

    // std::tr1::uniform_int<int> dist(1, 52);                                  
    std::tr1::poisson_distribution<int, double> dist(7.5);

    for (unsigned int i(0); i < 100; ++i)
    {
        std::cout << dist(eng) << " " << std::flush;
    }
    std::cout << std::endl;

    return 0;
}