|
LAMMP 4.2.0
Lamina High-Precision Arithmetic Library
|
#include "../../../include/lammp/impl/ele_mul.h"#include "../../../include/lammp/impl/inlines.h"#include "../../../include/lammp/impl/lglg.h"#include "../../../include/lammp/impl/mparam.h"#include "../../../include/lammp/impl/prime_table.h"#include "../../../include/lammp/impl/tmp_alloc.h"#include "../../../include/lammp/lmmpn.h"#include "../../../include/lammp/numth.h"
factorial_extra.c 的引用(Include)关系图:宏定义 | |
| #define | MAX_T 0xfffffffffffff |
| #define | MAX_T 0xffffffffffff |
| #define | MAX_T 0xffffffffffff |
| #define | MUL(dst, ap, an, bp, bn) |
| Copyright (C) 2026 HJimmyK(Jericho Knox) | |
| #define | mul_1(dst, rn, v) |
| #define MAX_T 0xfffffffffffff |
| #define MAX_T 0xffffffffffff |
| #define MAX_T 0xffffffffffff |
Copyright (C) 2026 HJimmyK(Jericho Knox)
This file is part of LAMMP.
LAMMP is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed WITHOUT ANY WARRANTY.
See https://www.gnu.org/licenses/.
在文件 factorial_extra.c 第 26 行定义.
在文件 factorial_extra.c 第 33 行定义.
|
inlinestatic |
在文件 factorial_extra.c 第 174 行定义.
引用了 _udiv32by32_q_preinv, k, MP_ULONG_MAX , 以及 n.
被这些函数引用 lmmp_odd_2factorial_uint_() , 以及 lmmp_odd_2factorial_ushort_().
这是这个函数的调用关系图:在文件 factorial_extra.c 第 303 行定义.
引用了 n.
被这些函数引用 lmmp_superfac_() , 以及 lmmp_superfac_size_().
这是这个函数的调用关系图:在文件 factorial_extra.c 第 251 行定义.
引用了 k, LIMB_BITS, lmmp_odd_2factorial_uint_(), lmmp_odd_2factorial_ushort_(), lmmp_odd_factorial_uint_(), lmmp_odd_nPr_ushort_(), lmmp_param_assert, lmmp_shl_(), lmmp_zero, MP_USHORT_MAX , 以及 n.
函数调用图:| mp_size_t lmmp_2factorial_size_ | ( | uint | n, |
| mp_bitcnt_t *restrict | bits | ||
| ) |
在文件 factorial_extra.c 第 40 行定义.
引用了 k, LIMB_BITS, lmmp_limb_popcnt_, log2_fac_ceil(), log2_fac_floor() , 以及 n.
函数调用图:| mp_size_t lmmp_factors_mul_ushort_ | ( | mp_ptr restrict | dst, |
| mp_size_t | rn, | ||
| fac_ptr restrict | fac, | ||
| ushort | nfactors | ||
| ) |
在文件 factorial_extra.c 第 78 行定义.
引用了 BALLOC_TYPE, FACTORS_MUL_N_THRESHOLD, lmmp_copy, lmmp_debug_assert, lmmp_elem_mul_ulong_(), lmmp_factors_mul_ushort_(), lmmp_param_assert, lmmp_sqr_, MAX_T, MUL, mul_1, n, t, TALLOC_TYPE, TEMP_DECL, TEMP_FREE , 以及 tp.
被这些函数引用 lmmp_factors_mul_ushort_(), lmmp_hyperfac_(), lmmp_odd_2factorial_ushort_() , 以及 lmmp_superfac_().
函数调用图:
这是这个函数的调用关系图:在文件 factorial_extra.c 第 353 行定义.
引用了 count_hyperfac_factors(), LIMB_BITS, lmmp_debug_assert, lmmp_factors_mul_ushort_(), lmmp_param_assert, lmmp_prime_cnt16_(), lmmp_shl_(), lmmp_zero, n, prime_short_table, TALLOC_TYPE, TEMP_DECL , 以及 TEMP_FREE.
函数调用图:| mp_size_t lmmp_hyperfac_size_ | ( | ushort | n, |
| mp_bitcnt_t *restrict | bits | ||
| ) |
|
static |
计算奇数双阶乘(n!!)
| dst | 输出数组 |
| rn | 输出数组的长度 |
| n | 奇数,等于2k+1 |
| k | 双阶乘的参数 |
在文件 factorial_extra.c 第 227 行定义.
引用了 BALLOC_TYPE, count_2facodd_factors(), k, lmmp_factors_mul_(), lmmp_prime_cache_free_(), lmmp_prime_cache_init_(), lmmp_prime_cache_next_(), lmmp_prime_int_table_init_(), lmmp_prime_size_(), n, TEMP_B_DECL , 以及 TEMP_B_FREE.
被这些函数引用 lmmp_2factorial_().
函数调用图:
这是这个函数的调用关系图:
|
static |
计算奇数双阶乘(n!!)
| dst | 输出数组 |
| rn | 输出数组的长度 |
| n | 奇数,等于2k+1 |
| k | 双阶乘的参数 |
在文件 factorial_extra.c 第 202 行定义.
引用了 count_2facodd_factors(), k, lmmp_factors_mul_ushort_(), lmmp_prime_cnt16_(), n, prime_short_table, TALLOC_TYPE, TEMP_DECL , 以及 TEMP_FREE.
被这些函数引用 lmmp_2factorial_().
函数调用图:
这是这个函数的调用关系图:在文件 factorial_extra.c 第 446 行定义.
引用了 BALLOC_TYPE, lmmp_copy, lmmp_debug_assert, lmmp_elem_mul_ulong_(), lmmp_prime_cache_free_(), lmmp_prime_cache_init_(), lmmp_prime_cache_next_(), lmmp_prime_cnt16_(), lmmp_prime_int_table_init_(), lmmp_prime_size_(), MAX_T, MP_UINT_MAX, MP_USHORT_MAX, n, prime_short_table, SALLOC_TYPE, t, TEMP_B_DECL, TEMP_B_FREE, TEMP_S_DECL, TEMP_S_FREE , 以及 tp.
函数调用图:计算质数阶乘的 limb 缓冲区长度
| n | 质数阶乘的阶数 |
在文件 factorial_extra.c 第 435 行定义.
在文件 factorial_extra.c 第 394 行定义.
引用了 count_superfac_factors(), LIMB_BITS, lmmp_debug_assert, lmmp_factors_mul_ushort_(), lmmp_param_assert, lmmp_prime_cnt16_(), lmmp_shl_(), lmmp_zero, n, prime_short_table, TALLOC_TYPE, TEMP_DECL , 以及 TEMP_FREE.
函数调用图:| mp_size_t lmmp_superfac_size_ | ( | ushort | n, |
| mp_bitcnt_t *restrict | bits | ||
| ) |
在文件 factorial_extra.c 第 333 行定义.
引用了 count_superfac_factors(), LIMB_BITS , 以及 n.
函数调用图: