LAMMP 4.1.0
Lamina High-Precision Arithmetic Library
载入中...
搜索中...
未找到
not.c 文件参考
+ not.c 的引用(Include)关系图:

浏览源代码.

函数

void lmmp_not_ (mp_ptr restrict dst, mp_srcptr restrict numa, mp_size_t na)
 
mp_limb_t lmmp_shlnot_ (mp_ptr restrict dst, mp_srcptr restrict numa, mp_size_t na, mp_size_t shl)
 

函数说明

◆ lmmp_not_()

void lmmp_not_ ( mp_ptr restrict  dst,
mp_srcptr restrict  numa,
mp_size_t  na 
)

在文件 not.c9 行定义.

9 {
10 if (dst == numa) {
11 for (mp_size_t i = 0; i < na; i++) {
12 dst[i] = ~dst[i];
13 }
14 } else {
15 for (mp_size_t i = 0; i < na; i++) {
16 dst[i] = ~numa[i];
17 }
18 }
19}
uint64_t mp_size_t
Definition lmmp.h:212

被这些函数引用 lmmp_shlnot_().

+ 这是这个函数的调用关系图:

◆ lmmp_shlnot_()

mp_limb_t lmmp_shlnot_ ( mp_ptr restrict  dst,
mp_srcptr restrict  numa,
mp_size_t  na,
mp_size_t  shl 
)

在文件 not.c21 行定义.

21 {
22 if (shl == 0) {
23 lmmp_not_(dst, numa, na);
24 return 0;
25 } else if (dst == numa) {
26 mp_limb_t t, m, n;
27 t = dst[0] << shl;
28 m = dst[0] >> (LIMB_BITS - shl);
29 dst[0] = ~t;
30 for (mp_size_t i = 1; i < na; i++) {
31 t = dst[i] << shl;
32 n = dst[i] >> (LIMB_BITS - shl);
33 dst[i] = ~(t | m);
34 m = n;
35 }
36 return m;
37 } else {
38 /* seq(dst,numa) */
39 mp_limb_t t, m, n;
40 t = numa[0] << shl;
41 m = numa[0] >> (LIMB_BITS - shl);
42 dst[0] = ~t;
43 for (mp_size_t i = 1; i < na; i++) {
44 t = numa[i] << shl;
45 n = numa[i] >> (LIMB_BITS - shl);
46 dst[i] = ~(t | m);
47 m = n;
48 }
49 return m;
50 }
51}
uint64_t mp_limb_t
Definition lmmp.h:211
#define LIMB_BITS
Definition lmmp.h:221
void lmmp_not_(mp_ptr restrict dst, mp_srcptr restrict numa, mp_size_t na)
Definition not.c:9

引用了 LIMB_BITS , 以及 lmmp_not_().

+ 函数调用图: