Для чего нужен параметр "-DranSHR3" в mex-компиляторе - PullRequest
0 голосов
/ 21 января 2011

Я видел несколько материалов Matlab на сайте обмена файлами Mathworks, где авторы используют опцию "-DranSHR3" при компиляции с mex. Я проверил документацию mex , GNU GCC и Microsoft cl , но ничего не нашел.

Есть мысли о том, для чего используется эта опция? Где я могу найти более подробную информацию об этом?

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 января 2011

Опция -DranSHR3 определяет символ препроцессора ranSHR3, который, в свою очередь, выбирает генератор случайных чисел SHR3 вместо генератора по умолчанию.

Здесь вы можете прочитать о случайных генераторах Matlab.

Здесь Я нашел довольно длинный комментарий о SHR3.

По крайней мере в Matlab R2010b генератором по умолчанию для случайных потоков является Mersenne Twister, который является очень хорошим выбором. SHR3 по сравнению с Mersenne Twister может быть быстрее, я не знаю. Не вызывает сомнений то, что SHR3 имеет худшие случайные свойства, чем Mersenne Twister, для начала он имеет более короткий период 2 ^ 64 вместо МТ 2 ^ 19936-1. Здесь - соответствующая документация Matlab.

Возможно, популярность SHR3 связана с более старыми версиями, где Mersenne Twister не использовался по умолчанию или для совместимости?

1 голос
/ 21 января 2011

-D обычно используется для установки макроса: он должен быть эквивалентен

#define ranSHR3

в любом исходном файле.

...