prng.h - Man Page

Генераторы псевдослучайных чисел

Synopsis

#include 'bee2/defs.h'

Функции

size_t prngCOMBO_keep ()
Длина состояния функций COMBO.
void prngCOMBOStart (void *state, u32 seed)
Инициализация генератора COMBO.
void prngCOMBOStepR (void *buf, size_t count, void *state)
Генератор COMBO.
size_t prngEcho_keep ()
Длина состояния эхо-генератора
void prngEchoStart (void *state, const void *seed, size_t seed_len)
Инициализация эхо-генератора
void prngEchoStepR (void *buf, size_t count, void *state)
Эхо-генерация
size_t prngSTB_keep ()
Длина состояния генератора СТБ
void prngSTBStart (void *state, const u16 z[31])
Инициализация генератора СТБ
void prngSTBStepR (void *buf, size_t count, void *state)
Использование генератора СТБ

Подробное описание

Генератор COMBO

Генератор COMBO разработан Дж. Марсалья (George Marsaglia, см. http://www.stat.fsu.edu/pub/diehard/cdrom/pscript/keynote.ps). Генератор проходит все тесты батареи DIEHARD, период последовательности его состояний имеет порядок 2^60.

Работа с генератором COMBO состоит в однократном вызове функции prngCOMBOStart() и последующих многократных вызовах prngCOMBOStepR(). Состояние автомата состоит из prngCOMBO_keep() октетов и интерпретируется как общий стек указанных функций. Состояние не должно изменяться между обращениями к функциям.

Эхо-генератор

Эхо-генератор повторяет буфер данных, переданный при инициализации. Эхо-генератор удобно использовать при тестировании для передачи фиксированных данных через интерфейс prng_i.

Генератор СТБ

Генератор определен в СТБ 1176.2-99 (п. 7.2.2). Выходные последовательности генератора используются при построении простых чисел.

Функции

size_t prngCOMBO_keep ()

Возвращается длина состояния функций, реализующих генератор COMBO.

Возвращает

Глубина стека.

void prngCOMBOStart (void * state, u32 seed)

Состояние state генератора COMBO инициализируется на основании числа seed.

Предусловие

По адресу state зарезервировано prngCOMBO_keep() октетов памяти.

Аргументы

state состояние COMBO  
seed инициализирующее значение

void prngCOMBOStepR (void * buf, size_t count, void * state)

В буфер [count]buf записываются псевдослучайные октеты, построенные с помощью генератора COMBO с состоянием state. Состояние state изменяется при генерации.

Ожидается

prngCOMBOStart() < prngCOMBOStepR()*.

Прим.

Поддержан интерфейс gen_i (defs.h).

Аргументы

buf буфер  
count размер буфера (в октетах)  
state состояние COMBO

size_t prngEcho_keep ()

Возвращается длина состояния функций, реализующих эхо-генератор.

Возвращает

Длина состояния.

void prngEchoStart (void * state, const void * seed, size_t seed_len)

Состояние state эхо-генератора инициализируется на основании буфера [seed_len]seed.

Предусловие

По адресу state зарезервировано prngEcho_keep() октетов.

seed_len > 0.

Буфер seed корректен.

Ожидается

Буфер seed остается корректным на протяжении всей работы с состоянием state.

Аргументы

state состояние эхо-генератора  
seed инициализирующий буфер  
seed_len длина seed в октетах

void prngEchoStepR (void * buf, size_t count, void * state)

В буфер [count]buf записываются октеты, построенные с помощью эхо-генератора с состоянием state. Состояние state изменяется при генерации.

Ожидается

prngEchoStart() < prngEchoStepR()*.

Прим.

Поддержан интерфейс gen_i (defs.h).

Аргументы

buf буфер  
count размер буфера (в октетах)  
state состояние

size_t prngSTB_keep ()

Возвращается длина состояния функций, реализующих генератор СТБ.

Возвращает

Длина состояния.

void prngSTBStart (void * state, const u16 z[31])

Состояние state генератора СТБ инициализируется по числам массива [31]z. При нулевом z предполагается, что z[0] = 1, z[1] = 2,..., z[30] = 31.

Предусловие

По адресу state зарезервировано prngSTB_keep() октетов.

Если z != 0, то буфер z корректен.

Если z != 0, то z[i] > 0 && z[i] < 65257, i = 0, 1,..., 30.

Аргументы

state состояние генератора  
z числа z[i]

void prngSTBStepR (void * buf, size_t count, void * state)

В буфер [count]buf записываются октеты, построенные с помощью генератора СТБ с состоянием state. Состояние state изменяется при генерации.

Ожидается

prngSTBStart() < prngSTBStepR()*.

Прим.

Поддержан интерфейс gen_i (defs.h).

Аргументы

buf буфер  
count размер буфера (в октетах)  
state состояние

Автор

Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.

Info

Вт 23 Янв 2024 00:00:00 Библиотека Bee2