|
LAMMP 4.1.0
Lamina High-Precision Arithmetic Library
|
#include "../../../include/lammp/impl/is_prime_table.h"#include "../../../include/lammp/impl/prime_table.h"#include "../../../include/lammp/impl/longlong.h"#include "../../../include/lammp/impl/mparam.h"#include "../../../include/lammp/lmmpn.h"#include "../../../include/lammp/numth.h"
is_prime_ulong.c 的引用(Include)关系图:宏定义 | |
| #define | MONT63_MAX ((ulong)(0x7fffffffffffffff)) |
| #define | ULONG_PRIME_MAX 0xFFFFFFFFFFFFFFC5ull |
| #define | ULONG_PRIME_MIN 2 |
| #define MONT63_MAX ((ulong)(0x7fffffffffffffff)) |
在文件 is_prime_ulong.c 第 18 行定义.
| #define ULONG_PRIME_MAX 0xFFFFFFFFFFFFFFC5ull |
在文件 is_prime_ulong.c 第 432 行定义.
| #define ULONG_PRIME_MIN 2 |
在文件 is_prime_ulong.c 第 433 行定义.
在文件 is_prime_ulong.c 第 87 行定义.
引用了 mont63_reduce().
被这些函数引用 lmmp_powmod_ulong_().
函数调用图:
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 53 行定义.
引用了 mont64_reduce().
被这些函数引用 lmmp_powmod_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
static |
在文件 is_prime_ulong.c 第 278 行定义.
引用了 dj_base49, dj_base64, lmmp_binvert_ulong_(), miller_rabin_63(), miller_rabin_64(), MONT63_MAX, mont63_R2(), mont64_R2(), to_mont63() , 以及 to_mont64().
被这些函数引用 lmmp_is_prime_ulong_(), lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图:| bool lmmp_is_prime_uint_ | ( | uint | n | ) |
from http://probableprime.org/download/example-primality.c Deterministic Miller-Rabin tests for 64-bit.
判断素数
Hashed 2-bases for n < 684630005672341 (slightly more than 2^49) Hashed 3-bases for n < 2^64
Based on Steve Worley's 2^32 example: http://www.mersenneforum.org/showthread.php?t=12209 With a 3-base encoding idea from Bradley Berg.
Copyright 2014, Dana Jacobsen dana@.nosp@m.acm..nosp@m.org
在文件 is_prime_ulong.c 第 249 行定义.
引用了 _udiv64_gen(), dj_base49, lmmp_is_prime_table_(), miller_rabin_32(), PRIME_SHORT_TABLE_N , 以及 trial_div35711().
函数调用图:| bool lmmp_is_prime_ulong_ | ( | ulong | n | ) |
判断素数
| n | 待判断的数 |
在文件 is_prime_ulong.c 第 365 行定义.
引用了 lmmp_is_prime_notrial_(), lmmp_is_prime_table_(), PRIME_SHORT_TABLE_N , 以及 trial_div35711().
函数调用图:大于n的下一个素数
| n | 起始点(不含) |
在文件 is_prime_ulong.c 第 435 行定义.
引用了 lmmp_is_prime_notrial_(), lmmp_prime_cnt16_(), MP_ULONG_MAX, prime_short_table, PRIME_SHORT_TABLE_SIZE, trial_div13(), trial_div17(), trial_div19(), trial_div23(), trial_div29(), trial_div31(), trial_div35711(), trial_div37(), trial_div41() , 以及 ULONG_PRIME_MAX.
函数调用图:计算 base^exp 对 mod 取模
| base | 底数 |
| exp | 指数 |
| mod | 模数 |
在文件 is_prime_ulong.c 第 98 行定义.
引用了 _udiv64_gen(), _udiv64by64_q_preinv() , 以及 lmmp_param_assert.
被这些函数引用 lmmp_powmod_ulong_().
函数调用图:
这是这个函数的调用关系图:计算 base^exp 对 mod 取模
| base | 底数 |
| exp | 指数 |
| mod | 模数 |
在文件 is_prime_ulong.c 第 121 行定义.
引用了 from_mont63(), from_mont64(), lmmp_binvert_ulong_(), lmmp_powmod_uint_(), MONT63_MAX, mont63_mul(), mont63_R2(), mont64_mul(), mont64_R2(), MP_UINT_MAX, to_mont63() , 以及 to_mont64().
函数调用图:小于等于n的上一个素数
| n | 起始点(含) |
在文件 is_prime_ulong.c 第 465 行定义.
引用了 lmmp_is_prime_notrial_(), lmmp_prime_cnt16_(), prime_short_table, PRIME_SHORT_TABLE_N, trial_div13(), trial_div17(), trial_div19(), trial_div23(), trial_div29(), trial_div31(), trial_div35711(), trial_div37(), trial_div41() , 以及 ULONG_PRIME_MIN.
函数调用图:在文件 is_prime_ulong.c 第 157 行定义.
被这些函数引用 lmmp_is_prime_uint_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 189 行定义.
引用了 mont63_mul().
被这些函数引用 lmmp_is_prime_notrial_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 213 行定义.
引用了 mont64_mul().
被这些函数引用 lmmp_is_prime_notrial_().
函数调用图:
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 92 行定义.
引用了 _u128mul , 以及 mont63_reduce().
被这些函数引用 lmmp_powmod_ulong_() , 以及 miller_rabin_63().
函数调用图:
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 73 行定义.
引用了 lmmp_div_1_s_() , 以及 lmmp_leading_zeros_().
被这些函数引用 lmmp_is_prime_notrial_() , 以及 lmmp_powmod_ulong_().
函数调用图:
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 64 行定义.
引用了 _u128add, _u128mul , 以及 k.
被这些函数引用 from_mont63(), mont63_mul() , 以及 to_mont63().
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 58 行定义.
引用了 _u128mul , 以及 mont64_reduce().
被这些函数引用 lmmp_powmod_ulong_() , 以及 miller_rabin_64().
函数调用图:
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 40 行定义.
引用了 lmmp_div_1_s_().
被这些函数引用 lmmp_is_prime_notrial_() , 以及 lmmp_powmod_ulong_().
函数调用图:
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 20 行定义.
引用了 _u128mul, _u128sub64 , 以及 k.
被这些函数引用 from_mont64(), mont64_mul() , 以及 to_mont64().
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 81 行定义.
引用了 _u128mul , 以及 mont63_reduce().
被这些函数引用 lmmp_is_prime_notrial_() , 以及 lmmp_powmod_ulong_().
函数调用图:
这是这个函数的调用关系图:在文件 is_prime_ulong.c 第 47 行定义.
引用了 _u128mul , 以及 mont64_reduce().
被这些函数引用 lmmp_is_prime_notrial_() , 以及 lmmp_powmod_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 376 行定义.
引用了 _udiv64by64_q_preinv() , 以及 _udiv64_t::magic.
被这些函数引用 lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 383 行定义.
引用了 _udiv64by64_q_preinv() , 以及 _udiv64_t::magic.
被这些函数引用 lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 390 行定义.
引用了 _udiv64by64_q_preinv() , 以及 _udiv64_t::magic.
被这些函数引用 lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 397 行定义.
引用了 _udiv64by64_q_preinv() , 以及 _udiv64_t::magic.
被这些函数引用 lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 404 行定义.
引用了 _udiv64by64_q_preinv() , 以及 _udiv64_t::magic.
被这些函数引用 lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 411 行定义.
引用了 _udiv64by64_q_preinv() , 以及 _udiv64_t::magic.
被这些函数引用 lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 417 行定义.
引用了 _udiv64by64_q_preinv() , 以及 _udiv64_t::magic.
被这些函数引用 lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图:
|
inlinestatic |
在文件 is_prime_ulong.c 第 424 行定义.
引用了 _udiv64by64_q_preinv() , 以及 _udiv64_t::magic.
被这些函数引用 lmmp_next_prime_ulong_() , 以及 lmmp_prev_prime_ulong_().
函数调用图:
这是这个函数的调用关系图: