Эффективное использование ускоренного распределения

(Перефразировал вопрос)

Я создаю класс-оболочку для ускорения нормального распространения и хочу сделать его максимально эффективным.

Если я использую:

double x = 0.0;
boost::variate_generator<boost::mt19937&,boost::normal_distribution<> > var_nor(rng, nd);
for (int i=0; i<20; i++) {
     double x = var_nor();
}

Цикл работает отлично. Меня беспокоит то, что я не хочу объявлять что-либо без необходимости, так как метод вызывается много раз. Я попытался разделить код и поместить эту строку в конструктор:

boost::variate_generator<boost::mt19937&,boost::normal_distribution<> > var_nor(rng, nd);

и есть пример метода, который делает это:

     double x = var_nor();
     return x;

Но в этом случае я получаю сообщение о том, что var_nor () (т.е. без аргументов) не найден. Может ли кто-нибудь сказать мне, что происходит с этими заявлениями повышения, т.е. что это

boost:variate_generate etc.

линия на самом деле делать сvar_nor? With my limited C++ knowledge, it looks as if var_nor is being defined with two different signatures.

Спасибо, парни Пит

Ответы на вопрос(2)

Ваш ответ на вопрос