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

浏览源代码.

函数

void lmmp_sqr_ (mp_ptr dst, mp_srcptr numa, mp_size_t na)
 大数平方操作 [dst,2*na] = [numa,na]^2
 

函数说明

◆ lmmp_sqr_()

void lmmp_sqr_ ( mp_ptr  dst,
mp_srcptr  numa,
mp_size_t  na 
)

大数平方操作 [dst,2*na] = [numa,na]^2

警告
na>0, sep(dst,numa)
参数
dst平方结果输出指针(需要2*na的limb长度)
numa源操作数指针
nalimb长度

在文件 sqr.c10 行定义.

10 {
11 if (na < MUL_TOOM22_THRESHOLD)
12 lmmp_sqr_basecase_(dst, numa, na);
13 else if (na < MUL_TOOM33_THRESHOLD)
14 lmmp_sqr_toom2_(dst, numa, na);
15 else if (na < MUL_TOOM44_THRESHOLD)
16 lmmp_sqr_toom3_(dst, numa, na);
17 else if (na < MUL_FFT_THRESHOLD)
18 lmmp_sqr_toom4_(dst, numa, na);
19 else
20 lmmp_mul_fft_(dst, numa, na, numa, na);
21}
void lmmp_sqr_basecase_(mp_ptr dst, mp_srcptr numa, mp_size_t na)
基础平方运算 [dst,2*na] = [numa,na]^2
void lmmp_sqr_toom2_(mp_ptr dst, mp_srcptr numa, mp_size_t na)
Toom-2平方运算 [dst,2*na] = [numa,na]^2
void lmmp_sqr_toom3_(mp_ptr dst, mp_srcptr numa, mp_size_t na)
Toom-3平方运算 [dst,2*na] = [numa,na]^2
void lmmp_sqr_toom4_(mp_ptr pp, mp_srcptr ap, mp_size_t an)
Toom-4平方运算 [dst,2*na] = [numa,na]^2
void lmmp_mul_fft_(mp_ptr dst, mp_srcptr numa, mp_size_t na, mp_srcptr numb, mp_size_t nb)
FFT乘法运算 [dst,na+nb] = [numa,na] * [numb,nb]
Definition mul_fft.c:1085
#define MUL_FFT_THRESHOLD
Definition mparam.h:54
#define MUL_TOOM22_THRESHOLD
Definition mparam.h:46
#define MUL_TOOM33_THRESHOLD
Definition mparam.h:50
#define MUL_TOOM44_THRESHOLD
Definition mparam.h:52

引用了 lmmp_mul_fft_(), lmmp_sqr_basecase_(), lmmp_sqr_toom2_(), lmmp_sqr_toom3_(), lmmp_sqr_toom4_(), MUL_FFT_THRESHOLD, MUL_TOOM22_THRESHOLD, MUL_TOOM33_THRESHOLD , 以及 MUL_TOOM44_THRESHOLD.

被这些函数引用 lmmp_3pow_1_(), lmmp_9pow_1_(), lmmp_bninv_appr_newton_(), lmmp_factors_mul_(), lmmp_from_str_(), lmmp_invsqrt_newton_(), lmmp_mul_(), lmmp_mul_fermat_recurse_(), lmmp_pow_(), lmmp_pow_basecase_(), lmmp_pow_win2_(), lmmp_remove_(), lmmp_sqr_signed_(), lmmp_sqr_toom2_(), lmmp_sqr_toom3_(), lmmp_sqr_toom4_(), lmmp_sqrlo_dc_(), lmmp_sqrt_divide_(), lmmp_to_str_(), lmmp_u16_pow_1_(), lmmp_u32_pow_1_(), lmmp_u64_pow_1_() , 以及 lmmp_u8_pow_1_().

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