|
LAMMP 4.1.0
Lamina High-Precision Arithmetic Library
|
#include "../../../include/lammp/numth.h"#include "../../../include/lammp/lmmpn.h"#include "../../../include/lammp/impl/longlong.h"
binvert_1.c 的引用(Include)关系图:宏定义 | |
| #define | k (k[2]) |
| #define | k (k + 2) |
| #define | xn (dst[0]) |
| #define | xn (dst) |
函数 | |
| static void | _umul128to192_ (uint64_t a_high, uint64_t a_low, uint64_t b_high, uint64_t b_low, uint64_t rr[3]) |
| void | lmmp_binvert_2_ (mp_ptr dst, mp_srcptr numa) |
| 计算 [numa,2] 在B^2下的逆元 | |
| void | lmmp_binvert_3_ (mp_ptr restrict dst, mp_srcptr restrict numa) |
| void | lmmp_binvert_4_ (mp_ptr restrict dst, mp_srcptr restrict numa) |
| uint | lmmp_binvert_uint_ (uint a) |
| 计算 a 在2^32下的逆元 | |
| ulong | lmmp_binvert_ulong_ (ulong a) |
| 计算 a 在2^64下的逆元 | |
变量 | |
| static const unsigned char | binv_tab [128] |
| #define k (k[2]) |
| #define k (k + 2) |
| #define xn (dst[0]) |
| #define xn (dst) |
|
inlinestatic |
在文件 binvert_1.c 第 69 行定义.
引用了 _umulx64to128_().
被这些函数引用 lmmp_binvert_3_().
函数调用图:
这是这个函数的调用关系图:计算 [numa,2] 在B^2下的逆元
| numa | 待求逆元指针(长度为 2 个limb) |
| dst | 结果指针(长度为 2 个limb) |
在文件 binvert_1.c 第 47 行定义.
引用了 _umul64to128_(), a0, a1, k, lmmp_binvert_ulong_(), lmmp_param_assert , 以及 xn.
被这些函数引用 lmmp_binvert_3_(), lmmp_binvert_4_() , 以及 lmmp_binvert_n_dc_().
函数调用图:
这是这个函数的调用关系图:在文件 binvert_1.c 第 93 行定义.
引用了 _umul128to192_(), a2, k, lmmp_binvert_2_(), lmmp_debug_assert , 以及 xn.
函数调用图:在文件 binvert_1.c 第 118 行定义.
引用了 _u128add, _u128sub, _umul128to128_(), _umul128to256_(), _umul64to128_(), k, lmmp_binvert_2_(), lmmp_debug_assert , 以及 xn.
函数调用图:计算 a 在2^32下的逆元
| a | 待求逆元 |
在文件 binvert_1.c 第 21 行定义.
引用了 binv_tab , 以及 lmmp_param_assert.
计算 a 在2^64下的逆元
| a | 待求逆元 |
在文件 binvert_1.c 第 33 行定义.
引用了 binv_tab , 以及 lmmp_param_assert.
被这些函数引用 lmmp_binvert_2_(), lmmp_binvert_n_dc_(), lmmp_is_prime_notrial_() , 以及 lmmp_powmod_ulong_().
这是这个函数的调用关系图:
|
static |
在文件 binvert_1.c 第 13 行定义.
被这些函数引用 lmmp_binvert_uint_() , 以及 lmmp_binvert_ulong_().