|
LAMMP 4.1.0
Lamina High-Precision Arithmetic Library
|
#include "../../include/lammp/impl/mparam.h"#include "../../include/lammp/impl/tmp_alloc.h"#include "../../include/lammp/lmmpn.h"
div_mulinv.c 的引用(Include)关系图:函数 | |
| mp_limb_t | lmmp_div_mulinv_ (mp_ptr dstq, mp_ptr numa, mp_size_t na, mp_srcptr numb, mp_size_t nb, mp_srcptr invappr, mp_size_t ni) |
| 乘法逆元除法 | |
| void | lmmp_inv_prediv_ (mp_ptr dst, mp_srcptr numa, mp_size_t na, mp_size_t ni) |
| 除法前的逆元预计算,[dst,ni] = invappr( (ni+1 MSLs of numa) + 1 ) / B | |
| mp_limb_t lmmp_div_mulinv_ | ( | mp_ptr | dstq, |
| mp_ptr | numa, | ||
| mp_size_t | na, | ||
| mp_srcptr | numb, | ||
| mp_size_t | nb, | ||
| mp_srcptr | invappr, | ||
| mp_size_t | ni | ||
| ) |
乘法逆元除法
| dstq | 输出商的缓冲区,长度至少为na-nb |
| numa | 输入被除数(长度na),运算后存储余数(长度nb) |
| na | 被除数的 limb 长度 |
| numb | 输入除数,长度为nb |
| nb | 除数的 limb 长度 |
| invappr | 预计算的近似逆元,长度为ni |
| ni | 预计算逆元的 limb 长度 |
在文件 div_mulinv.c 第 36 行定义.
引用了 DIV_MULINV_MODM_THRESHOLD, LIMB_B_2, lmmp_add_n_(), lmmp_assert, lmmp_cmp_(), lmmp_fft_next_size_(), lmmp_inc, LMMP_MIN, lmmp_mul_(), lmmp_mul_mersenne_(), lmmp_mul_n_(), lmmp_param_assert, lmmp_sub_1_(), lmmp_sub_n_(), lmmp_sub_nc_(), TALLOC_TYPE, TEMP_DECL, TEMP_FREE , 以及 tp.
被这些函数引用 lmmp_div_(), lmmp_div_s_() , 以及 lmmp_to_str_divide_().
函数调用图:
这是这个函数的调用关系图:除法前的逆元预计算,[dst,ni] = invappr( (ni+1 MSLs of numa) + 1 ) / B
| dst | 输出预计算逆元的缓冲区,长度为ni |
| numa | 输入操作数,长度为na |
| na | 输入操作数的 limb 长度 |
| ni | 预计算逆元的目标尺寸 |
在文件 div_mulinv.c 第 11 行定义.
引用了 LIMB_B_2, lmmp_add_1_(), lmmp_copy, lmmp_invappr_(), lmmp_param_assert, lmmp_zero, TALLOC_TYPE, TEMP_DECL, TEMP_FREE , 以及 tp.
被这些函数引用 lmmp_div_(), lmmp_div_s_() , 以及 lmmp_to_str_().
函数调用图:
这是这个函数的调用关系图: