1prng.h(3)                  Library Functions Manual                  prng.h(3)
2
3
4

NAME

6       prng.h - Генераторы псевдослучайных чисел
7
8

SYNOPSIS

10       #include 'bee2/defs.h'
11
12
13   Функции
14       size_t prngCOMBO_keep ()
15           Длина состояния функций COMBO.
16       void prngCOMBOStart (void *state, u32 seed)
17           Инициализация генератора COMBO.
18       void prngCOMBOStepR (void *buf, size_t count, void *state)
19           Генератор COMBO.
20       size_t prngEcho_keep ()
21           Длина состояния эхо-генератора
22       void prngEchoStart (void *state, const void *seed, size_t seed_len)
23           Инициализация эхо-генератора
24       void prngEchoStepR (void *buf, size_t count, void *state)
25           Эхо-генерация
26       size_t prngSTB_keep ()
27           Длина состояния генератора СТБ
28       void prngSTBStart (void *state, const u16 z[31])
29           Инициализация генератора СТБ
30       void prngSTBStepR (void *buf, size_t count, void *state)
31           Использование генератора СТБ
32

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

Генератор COMBO

35       Генератор COMBO разработан Дж. Марсалья (George Marsaglia, см.
36       http://www.stat.fsu.edu/pub/diehard/cdrom/pscript/keynote.ps).
37       Генератор проходит все тесты батареи DIEHARD, период последовательности
38       его состояний имеет порядок 2^60.
39
40       Работа с генератором COMBO состоит в однократном вызове функции
41       prngCOMBOStart() и последующих многократных вызовах prngCOMBOStepR().
42       Состояние автомата состоит из prngCOMBO_keep() октетов и
43       интерпретируется как общий стек указанных функций. Состояние не должно
44       изменяться между обращениями к функциям.
45

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

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

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

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

Функции

57   size_t prngCOMBO_keep ()
58       Возвращается длина состояния функций, реализующих генератор COMBO.
59
60       Возвращает
61           Глубина стека.
62
63   void prngCOMBOStart (void * state, u32 seed)
64       Состояние state генератора COMBO инициализируется на основании числа
65       seed.
66
67       Предусловие
68           По адресу state зарезервировано prngCOMBO_keep() октетов памяти.
69
70       Аргументы
71           state состояние COMBO
72           seed инициализирующее значение
73
74   void prngCOMBOStepR (void * buf, size_t count, void * state)
75       В буфер [count]buf записываются псевдослучайные октеты, построенные с
76       помощью генератора COMBO с состоянием state. Состояние state изменяется
77       при генерации.
78
79       Ожидается
80           prngCOMBOStart() < prngCOMBOStepR()*.
81
82       Прим.
83           Поддержан интерфейс gen_i (defs.h).
84
85       Аргументы
86           buf буфер
87           count размер буфера (в октетах)
88           state состояние COMBO
89
90   size_t prngEcho_keep ()
91       Возвращается длина состояния функций, реализующих эхо-генератор.
92
93       Возвращает
94           Длина состояния.
95
96   void prngEchoStart (void * state, const void * seed, size_t seed_len)
97       Состояние state эхо-генератора инициализируется на основании буфера
98       [seed_len]seed.
99
100       Предусловие
101           По адресу state зарезервировано prngEcho_keep() октетов.
102
103           seed_len > 0.
104
105           Буфер seed корректен.
106
107       Ожидается
108           Буфер seed остается корректным на протяжении всей работы с
109           состоянием state.
110
111       Аргументы
112           state состояние эхо-генератора
113           seed инициализирующий буфер
114           seed_len длина seed в октетах
115
116   void prngEchoStepR (void * buf, size_t count, void * state)
117       В буфер [count]buf записываются октеты, построенные с помощью
118       эхо-генератора с состоянием state. Состояние state изменяется при
119       генерации.
120
121       Ожидается
122           prngEchoStart() < prngEchoStepR()*.
123
124       Прим.
125           Поддержан интерфейс gen_i (defs.h).
126
127       Аргументы
128           buf буфер
129           count размер буфера (в октетах)
130           state состояние
131
132   size_t prngSTB_keep ()
133       Возвращается длина состояния функций, реализующих генератор СТБ.
134
135       Возвращает
136           Длина состояния.
137
138   void prngSTBStart (void * state, const u16 z[31])
139       Состояние state генератора СТБ инициализируется по числам массива
140       [31]z. При нулевом z предполагается, что z[0] = 1, z[1] = 2,..., z[30]
141       = 31.
142
143       Предусловие
144           По адресу state зарезервировано prngSTB_keep() октетов.
145
146           Если z != 0, то буфер z корректен.
147
148           Если z != 0, то z[i] > 0 && z[i] < 65257, i = 0, 1,..., 30.
149
150       Аргументы
151           state состояние генератора
152           z числа z[i]
153
154   void prngSTBStepR (void * buf, size_t count, void * state)
155       В буфер [count]buf записываются октеты, построенные с помощью
156       генератора СТБ с состоянием state. Состояние state изменяется при
157       генерации.
158
159       Ожидается
160           prngSTBStart() < prngSTBStepR()*.
161
162       Прим.
163           Поддержан интерфейс gen_i (defs.h).
164
165       Аргументы
166           buf буфер
167           count размер буфера (в октетах)
168           state состояние
169

Автор

171       Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.
172
173
174
175Библиотека Bee2                 Пт 23 Июн 2023                       prng.h(3)
Impressum