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

NAME

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

SYNOPSIS

10       #include 'bee2/defs.h'
11       #include 'bee2/core/safe.h'
12
13
14   Макросы
15       #define u64RotHi(w,  d)       ((u64)((w) << (d) | (w) >> (64 - (d))))
16           Циклический сдвиг слова u64 на d позиций в сторону старших разрядов
17       #define u64RotLo(w,  d)       ((u64)((w) >> (d) | (w) << (64 - (d))))
18           Циклический сдвиг слова u64 на d позиций в сторону младших разрядов
19
20   Функции
21       u64 u64Rev (register u64 w)
22           Реверс октетов слова
23       void u64Rev2 (u64 buf[], size_t count)
24           Реверс октетов массива слов
25       size_t u64Weight (register u64 w)
26           Вес
27       bool_t u64Parity (register u64 w)
28           Четность
29       size_t u64CTZ (register u64 w)
30           Число младших нулевых битов
31       size_t u64CLZ (register u64 w)
32           Число старших нулевых битов
33       u64 u64Shuffle (register u64 w)
34           Тасование битов
35       u64 u64Deshuffle (register u64 w)
36           Обратное тасование битов
37       u64 u64NegInv (register u64 w)
38           Аддитивно-мультипликативное обращение
39       void u64From (u64 dest[], const void *src, size_t count)
40           Загрузка из буфера памяти
41       void u64To (void *dest, size_t count, const u64 src[])
42           Выгрузка в буфер памяти
43

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

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

Макросы

51   #define u64RotHi(w, d)        ((u64)((w) << (d) | (w) >> (64 - (d))))
52       Предусловие
53           0 < d < 64.
54
55   #define u64RotLo(w, d)        ((u64)((w) >> (d) | (w) << (64 - (d))))
56       Предусловие
57           0 < d < 64.
58

Функции

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

Автор

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