19#ifndef __LAMMP_PRIME_TABLE_H__
20#define __LAMMP_PRIME_TABLE_H__
26#define LMMP_BITSET_BITS (64)
27#define LMMP_BITSET_MASK (0xffffffffffffffffull)
28#define LMMP_BITSET_BYTES (8)
30#define PRIME_SHORT_TABLE_SIZE 6542
32#define PRIME_SHORT_TABLE_N 0x10000
static int trial_div35711(ulong n)
校验是否能被3,5,7,11整除,能够整除则返回1,否则返回0
void lmmp_prime_cache_free_(prime_cache_t *cache)
释放素数表缓存
#define PRIME_SHORT_TABLE_SIZE
ulong lmmp_prime_size_(ulong n)
估计 n 范围内的素数数量
const lmmp_bitset_t r35711_mask_map[19]
bool lmmp_is_prime_table_(uint p)
根据全局素数表判断一个数是否为素数
void lmmp_prime_cache_next_(prime_cache_t *cache)
素数表缓存更新(从小到大遍历全局质数表)
void lmmp_prime_int_table_free_(void)
释放全局素数表
const ushort prime_short_table[6542]
void lmmp_prime_int_table_init_(uint n)
初始化全局素数表
ushort lmmp_prime_cnt16_(ushort n)
计算小于等于 n 的素数数量
void lmmp_prime_cache_init_(prime_cache_t *cache, uint n)
初始化素数表缓存