19#ifndef __LAMMP_ELE_MUL_H__
20#define __LAMMP_ELE_MUL_H__
27#define INLINE_ static inline
60 for (
size_t i = 0; i < capa; ++i) {
61 pq->head[i].num = NULL;
void lmmp_num_heap_push_(num_heap *pq, mp_ptr elem, mp_size_t n)
入队
mp_size_t lmmp_elem_mul_ulong_(mp_ptr dst, const ulongp limbs, mp_size_t n, mp_ptr tp)
计算limbs数组的累乘积
static void lmmp_num_heap_init_(num_heap *restrict pq, size_t capa)
初始化优先队列
bool lmmp_num_heap_pop_(num_heap *pq, num_node_ptr elem)
出队
static void lmmp_num_heap_free_(num_heap *restrict pq)
释放优先队列
num_node_ptr restrict head
mp_ptr lmmp_num_heap_mul_(num_heap *pq, mp_size_t *rn)
将队列中所有元素相乘
mp_size_t lmmp_factors_mul_(mp_ptr dst, mp_size_t rn, fac_ptr fac, uint nfactors)
计算因子的累乘,并将结果放入dst中
#define lmmp_debug_assert(x)
void lmmp_free(void *ptr)
内存释放函数(调用lmmp_heap_free_fn)
#define ALLOC_TYPE(n, type)