|
LAMMP 4.2.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下的逆元 | |
| void | lmmp_binvert_unbalanced_1_ (mp_ptr restrict dst, mp_limb_t a, mp_size_t n) |
| void | lmmp_binvert_unbalanced_2_ (mp_ptr restrict dst, mp_srcptr restrict numa, mp_size_t n) |
变量 | |
| static const uchar | binv_tab [128] |
| Copyright (C) 2026 HJimmyK(Jericho Knox) | |
| #define k (k[2]) |
| #define k (k + 2) |
|
inlinestatic |
在文件 binvert_1.c 第 78 行定义.
引用了 _umul64to128_() , 以及 n.
被这些函数引用 lmmp_binvert_3_().
函数调用图:
这是这个函数的调用关系图:计算 [numa,2] 在 B^2 下的逆元
| numa | 待求逆元指针(长度为 2 个limb) |
| dst | 结果指针(长度为 2 个limb) |
在文件 binvert_1.c 第 56 行定义.
引用了 _umul64to128_(), a0, a1, k, lmmp_binvert_ulong_(), lmmp_param_assert, n, t , 以及 xn.
被这些函数引用 lmmp_binvert_3_(), lmmp_binvert_4_(), lmmp_binvert_n_dc_(), lmmp_binvert_unbalanced_2_() , 以及 lmmp_divexact_().
函数调用图:
这是这个函数的调用关系图:在文件 binvert_1.c 第 102 行定义.
引用了 _umul128to192_(), a2, k, lmmp_binvert_2_(), lmmp_debug_assert, n , 以及 xn.
函数调用图:在文件 binvert_1.c 第 127 行定义.
引用了 _u128add, _u128sub, _umul128to128_(), _umul128to256_(), _umul64to128_(), k, lmmp_binvert_2_(), lmmp_debug_assert, n, t , 以及 xn.
函数调用图:计算 a 在2^32下的逆元
| a | 待求逆元 |
在文件 binvert_1.c 第 30 行定义.
引用了 binv_tab, lmmp_param_assert , 以及 n.
计算 a 在2^64下的逆元
| a | 待求逆元 |
在文件 binvert_1.c 第 42 行定义.
引用了 binv_tab, lmmp_param_assert , 以及 n.
被这些函数引用 lmmp_binvert_2_(), lmmp_binvert_n_dc_(), lmmp_binvert_unbalanced_1_(), lmmp_divexact_(), lmmp_is_prime_notrial_() , 以及 lmmp_powmod_ulong_().
这是这个函数的调用关系图:在文件 binvert_1.c 第 170 行定义.
引用了 _umul64to128_(), a_binvert, k, lmmp_binvert_ulong_(), lmmp_param_assert, lo , 以及 n.
函数调用图:在文件 binvert_1.c 第 191 行定义.
引用了 _umul128to128_(), _umul128to256_(), a_binvert, k, lmmp_binvert_2_(), lmmp_debug_assert, lmmp_param_assert, n , 以及 t.
函数调用图:Copyright (C) 2026 HJimmyK(Jericho Knox)
This file is part of LAMMP.
LAMMP is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed WITHOUT ANY WARRANTY.
See https://www.gnu.org/licenses/.
在文件 binvert_1.c 第 22 行定义.
被这些函数引用 lmmp_binvert_uint_() , 以及 lmmp_binvert_ulong_().