|
LAMMP 4.2.0
Lamina High-Precision Arithmetic Library
|
#include "../../../include/lammp/impl/inlines.h"#include "../../../include/lammp/impl/mparam.h"#include "../../../include/lammp/impl/tmp_alloc.h"#include "../../../include/lammp/lmmpn.h"#include "../../../include/lammp/numth.h"#include "../../../include/lammp/impl/longlong.h"
divexact.c 的引用(Include)关系图:宏定义 | |
| #define | c (tp) |
| #define | l (tp + dn) |
| #define | scratch (tp + 2 * dn) |
在文件 divexact.c 第 273 行定义.
引用了 DIVEXACT_BASECASE_THRESHOLD, DIVEXACT_NN_THRESHOLD, lmmp_binvert_2_(), lmmp_binvert_ulong_(), lmmp_copy, lmmp_divexact_1_(), lmmp_divexact_2_(), lmmp_divexact_basecase_(), lmmp_divexact_divide_(), lmmp_divexact_unbalanced_(), lmmp_param_assert, n, TALLOC_TYPE, TEMP_DECL, TEMP_FREE , 以及 tp.
函数调用图:Copyright (C) 2026 HJimmyK(Jericho Knox)
精确除法([dst,nn]=[np,nn]/d,且余数必须为0)
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/.
在文件 divexact.c 第 24 行定义.
引用了 _umul64to128_(), c, l, lmmp_debug_assert, lmmp_param_assert, lo, n , 以及 s.
被这些函数引用 lmmp_divexact_().
函数调用图:
这是这个函数的调用关系图:| void lmmp_divexact_2_ | ( | mp_ptr | dst, |
| mp_srcptr | np, | ||
| mp_size_t | nn, | ||
| mp_srcptr restrict | dp, | ||
| mp_srcptr restrict | dinv | ||
| ) |
在文件 divexact.c 第 49 行定义.
引用了 _u128add, _u128cmp, _u128sub, _umul128to128_(), _umul128to256_(), c, l, lmmp_debug_assert, lmmp_param_assert, n, s , 以及 t.
被这些函数引用 lmmp_divexact_().
函数调用图:
这是这个函数的调用关系图:| void lmmp_divexact_basecase_ | ( | mp_ptr | dst, |
| mp_ptr | np, | ||
| mp_size_t | nn, | ||
| mp_srcptr restrict | dp, | ||
| mp_size_t | dn, | ||
| mp_limb_t | dinv | ||
| ) |
在文件 divexact.c 第 214 行定义.
引用了 lmmp_debug_assert, lmmp_dec_1, lmmp_param_assert, lmmp_submul_1_() , 以及 n.
被这些函数引用 lmmp_divexact_().
函数调用图:
这是这个函数的调用关系图:| void lmmp_divexact_divide_ | ( | mp_ptr restrict | dst, |
| mp_srcptr restrict | np, | ||
| mp_size_t | nn, | ||
| mp_srcptr restrict | dp, | ||
| mp_size_t | dn | ||
| ) |
在文件 divexact.c 第 243 行定义.
引用了 lmmp_binvert_n_dc_(), lmmp_debug_assert, lmmp_mul_(), lmmp_mullo_n_(), lmmp_param_assert, lmmp_sub_n_(), n, TALLOC_TYPE, TEMP_DECL, TEMP_FREE , 以及 tp.
被这些函数引用 lmmp_divexact_().
函数调用图:
这是这个函数的调用关系图:| void lmmp_divexact_unbalanced_ | ( | mp_ptr | dst, |
| mp_srcptr | np, | ||
| mp_size_t | nn, | ||
| mp_srcptr restrict | dp, | ||
| mp_size_t | dn, | ||
| mp_ptr restrict | dinv | ||
| ) |
在文件 divexact.c 第 160 行定义.
引用了 c, l, lmmp_add_1_(), lmmp_binvert_n_dc_(), lmmp_cmp_(), lmmp_copy, lmmp_mulhi_n_(), lmmp_mullo_n_(), lmmp_param_assert, lmmp_sub_n_(), lmmp_zero, n, scratch, TALLOC_TYPE, TEMP_DECL, TEMP_FREE , 以及 tp.
被这些函数引用 lmmp_divexact_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
已知乘积的低位,计算乘积的高位
| dst | 乘积的高位,长度为 n |
| lop | 乘积的低位,长度为 n |
| numa | 乘数a |
| numb | 乘数b |
| n | 乘数a和乘数b的 limb 长度 |
| tp | 临时空间(应需要2*n个limb) |
在文件 divexact.c 第 130 行定义.
引用了 c, lmmp_copy, lmmp_debug_assert, lmmp_dec, lmmp_fft_next_size_(), lmmp_mul_mersenne_(), lmmp_mul_n_, lmmp_sub_(), MULHI_MERSENNE_THRESHOLD, n, numb , 以及 tp.
被这些函数引用 lmmp_divexact_unbalanced_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 divexact.c 第 106 行定义.
引用了 lmmp_mullo_dc_(), lmmp_mullo_fft_(), MULLO_DC_THRESHOLD, n, numb , 以及 tp.
被这些函数引用 lmmp_divexact_divide_() , 以及 lmmp_divexact_unbalanced_().
函数调用图:
这是这个函数的调用关系图: