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

NAME

6       u32.h - 32-разрядные слова
7
8

SYNOPSIS

10       #include 'bee2/defs.h'
11       #include 'bee2/core/safe.h'
12
13
14   Макросы
15       #define u32RotHi(w,  d)       ((u32)((w) << (d) | (w) >> (32 - (d))))
16           Циклический сдвиг u32-слова на d позиций в сторону старших разрядов
17       #define u32RotLo(w,  d)       ((u32)((w) >> (d) | (w) << (32 - (d))))
18           Циклический сдвиг u32-слова на d позиций в сторону младших разрядов
19
20   Функции
21       u32 u32Rev (register u32 w)
22           Реверс октетов
23       void u32Rev2 (u32 buf[], size_t count)
24           Реверс октетов массива слов
25       size_t u32Weight (register u32 w)
26           Вес
27       bool_t u32Parity (register u32 w)
28           Четность
29       size_t u32CTZ (register u32 w)
30           Число младших нулевых битов
31       size_t u32CLZ (register u32 w)
32           Число старших нулевых битов
33       u32 u32Shuffle (register u32 w)
34           Тасование битов
35       u32 u32Deshuffle (register u32 w)
36           Обратное тасование битов
37       u32 u32NegInv (register u32 w)
38           Аддитивно-мультипликативное обращение
39       void u32From (u32 dest[], const void *src, size_t count)
40           Загрузка из буфера памяти
41       void u32To (void *dest, size_t count, const u32 src[])
42           Выгрузка в буфер памяти
43

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

45       Реализованы операции над 32-разрядными словами и массивами таких слов.
46
47       Предусловие
48           В функции передаются корректные буферы памяти.
49

Макросы

51   #define u32RotHi(w, d)        ((u32)((w) << (d) | (w) >> (32 - (d))))
52       Предусловие
53           0 < d < 32.
54
55   #define u32RotLo(w, d)        ((u32)((w) >> (d) | (w) << (32 - (d))))
56       Предусловие
57           0 < d < 32.
58

Функции

60   size_t u32CLZ (register u32 w)
61       Определяется длина серии из нулевых старших битов машинного слова w.
62
63       Возвращает
64           Длина серии.
65
66       Прим.
67           CLZ == Count of Leading Zeros
68
69       Регулярность
70           Имеется ускоренная нерегулярная редакция.
71
72       Аргументы
73           w слово
74
75   size_t u32CTZ (register u32 w)
76       Определяется длина серии из нулевых младших битов u32-слова w.
77
78       Возвращает
79           Длина серии.
80
81       Прим.
82           CTZ == Count of Trailing Zeros
83
84       Регулярность
85           Имеется ускоренная нерегулярная редакция.
86
87       Аргументы
88           w слово
89
90   u32 u32Deshuffle (register u32 w)
91       Четные биты u32-слова w группируются в его младшей половинке, нечетные
92       -- в старшей.
93
94       Возвращает
95           Слово с группированными битами.
96
97       Аргументы
98           w слово
99
100   void u32From (u32 dest[], const void * src, size_t count)
101       Буфер [count]src преобразуется в массив [(count + 3) / 4]dest u32-слов.
102
103       Аргументы
104           dest приемник
105           src источник
106           count число октетов
107
108   u32 u32NegInv (register u32 w)
109       Выполняется адиттивное и мультипликативное обращение
110       u32-слова-как-числа w по модулю 2^32.
111
112       Предусловие
113           w -- нечетное.
114
115       Возвращает
116           - w^{-1} \mod 2^32.
117
118       Прим.
119           Вычисляемое слово используется в редукции Монтгомери.
120
121       Аргументы
122           w слово
123
124   bool_t u32Parity (register u32 w)
125       Определяется сумма по модулю 2 битов u32-слова w.
126
127       Возвращает
128           Сумма битов.
129
130       Аргументы
131           w слово
132
133   u32 u32Rev (register u32 w)
134       Выполняется реверс октетов u32-слова w.
135
136       Возвращает
137           Слово с переставленными октетами.
138
139       Аргументы
140           w слово
141
142   void u32Rev2 (u32 buf[], size_t count)
143       Выполняется реверс октетов массива [count]buf из u32-слов.
144
145       Аргументы
146           buf массив слов
147           count число элементов
148
149   u32 u32Shuffle (register u32 w)
150       Биты младшей половинки u32-слова w перемещаются в четные позиции, биты
151       старшей половинки -- в нечетные.
152
153       Возвращает
154           Слово с растасованными битами.
155
156       Аргументы
157           w слово
158
159   void u32To (void * dest, size_t count, const u32 src[])
160       Буфер [count]dest формируется по массиву [(count + 3) / 4]src u32-слов.
161
162       Аргументы
163           dest приемник
164           count число октетов
165           src источник
166
167   size_t u32Weight (register u32 w)
168       Определяется число ненулевых битов в u32-слове w.
169
170       Возвращает
171           Число ненулевых битов.
172
173       Аргументы
174           w слово
175

Автор

177       Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.
178
179
180
181Библиотека Bee2                 Пт 23 Июн 2023                        u32.h(3)
Impressum