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

NAME

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

SYNOPSIS

10       #include 'bee2/defs.h'
11       #include 'bee2/core/safe.h'
12
13
14   Макросы
15       #define u16RotHi(w,  d)       ((u16)((w) << (d) | (w) >> (16 - (d))))
16           Циклический сдвиг u16-слова на d позиций в сторону старших разрядов
17       #define u16RotLo(w,  d)       ((u16)((w) >> (d) | (w) << (16 - (d))))
18           Циклический сдвиг u16-слова на d позиций в сторону младших разрядов
19
20   Функции
21       u16 u16Rev (register u16 w)
22           Реверс октетов
23       void u16Rev2 (u16 buf[], size_t count)
24           Реверс октетов массива слов
25       size_t u16Weight (register u16 w)
26           Вес
27       bool_t u16Parity (register u16 w)
28           Четность
29       size_t u16CTZ (register u16 w)
30           Число младших нулевых битов
31       size_t u16CLZ (register u16 w)
32           Число старших нулевых битов
33       u16 u16Shuffle (register u16 w)
34           Тасование битов
35       u16 u16Deshuffle (register u16 w)
36           Обратное тасование битов
37       u16 u16NegInv (register u16 w)
38           Аддитивно-мультипликативное обращение
39       void u16From (u16 dest[], const void *src, size_t count)
40           Загрузка из буфера памяти
41       void u16To (void *dest, size_t count, const u16 src[])
42           Выгрузка в буфер памяти
43

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

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

Макросы

51   #define u16RotHi(w, d)        ((u16)((w) << (d) | (w) >> (16 - (d))))
52       Предусловие
53           0 < d < 16.
54
55   #define u16RotLo(w, d)        ((u16)((w) >> (d) | (w) << (16 - (d))))
56       Предусловие
57           0 < d < 16.
58

Функции

60   size_t u16CLZ (register u16 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 u16CTZ (register u16 w)
76       Определяется длина серии из нулевых младших битов u16-слова w.
77
78       Возвращает
79           Длина серии.
80
81       Прим.
82           CTZ == Count of Trailing Zeros
83
84       Регулярность
85           Имеется ускоренная нерегулярная редакция.
86
87       Аргументы
88           w слово
89
90   u16 u16Deshuffle (register u16 w)
91       Четные биты u16-слова w группируются в его младшей половинке, нечетные
92       -- в старшей.
93
94       Возвращает
95           Слово с группированными битами.
96
97       Аргументы
98           w слово
99
100   void u16From (u16 dest[], const void * src, size_t count)
101       Буфер [count]src преобразуется в массив [(count + 1) / 2]dest слов u16.
102
103       Аргументы
104           dest приемник
105           src источник
106           count число октетов
107
108   u16 u16NegInv (register u16 w)
109       Выполняется адиттивное и мультипликативное обращение
110       u16-слова-как-числа w по модулю 2^16.
111
112       Предусловие
113           w -- нечетное.
114
115       Возвращает
116           - w^{-1} \mod 2^16.
117
118       Прим.
119           Вычисляемое слово используется в редукции Монтгомери.
120
121       Аргументы
122           w слово
123
124   bool_t u16Parity (register u16 w)
125       Определяется сумма по модулю 2 битов u16-слова w.
126
127       Возвращает
128           Сумма битов.
129
130       Аргументы
131           w слово
132
133   u16 u16Rev (register u16 w)
134       Выполняется реверс октетов u16-слова w.
135
136       Возвращает
137           Слово с переставленными октетами.
138
139       Аргументы
140           w слово
141
142   void u16Rev2 (u16 buf[], size_t count)
143       Выполняется реверс октетов массива [count]buf из u16-слов.
144
145       Аргументы
146           buf приемник
147           count число элементов
148
149   u16 u16Shuffle (register u16 w)
150       Биты младшей половинки u16-слова w перемещаются в четные позиции, биты
151       старшей половинки -- в нечетные.
152
153       Возвращает
154           Слово с растасованными битами.
155
156       Аргументы
157           w слово
158
159   void u16To (void * dest, size_t count, const u16 src[])
160       Буфер [count]dest формируется по массиву [(count + 1) / 2]src слов u16.
161
162       Аргументы
163           dest приемник
164           count число октетов
165           src источник
166
167   size_t u16Weight (register u16 w)
168       Определяется число ненулевых битов в u16-слове w.
169
170       Возвращает
171           Число ненулевых битов.
172
173       Аргументы
174           w слово
175

Автор

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