|
LAMMP 4.1.0
Lamina High-Precision Arithmetic Library
|
#include "lmmp.h"
mprand.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:类型定义 | |
| typedef struct lmmp_strong_rng_t | lmmp_strong_rng_t |
| 强随机数生成器结构体 | |
函数 | |
| void | lmmp_global_rng_init_ (int seed, int seed_type) |
| 初始化全局随机数生成器 | |
| mp_size_t | lmmp_random_ (mp_ptr dst, mp_size_t n) |
| 生成随机大整数(0 - B^n-1 均匀分布) | |
| mp_size_t | lmmp_seed_random_ (mp_ptr dst, mp_size_t n, mp_limb_t seed, int seed_type) |
| 生成随机大整数(0 - B^n-1 均匀分布) | |
| mp_size_t | lmmp_strong_random_ (mp_ptr dst, mp_size_t n, lmmp_strong_rng_t *rng) |
| 生成n维度强随机数(0 - B^n-1 均匀分布) | |
| void | lmmp_strong_rng_extern_ (lmmp_strong_rng_t *rng, mp_size_t k) |
| 将rng内部状态拓展至k维度 | |
| void | lmmp_strong_rng_free_ (lmmp_strong_rng_t *rng) |
| 销毁强随机数生成器 | |
| lmmp_strong_rng_t * | lmmp_strong_rng_init_ (mp_size_t k, int seed) |
| 创建k维度强随机数生成器 | |
| typedef struct lmmp_strong_rng_t lmmp_strong_rng_t |
| void lmmp_global_rng_init_ | ( | int | seed, |
| int | seed_type | ||
| ) |
初始化全局随机数生成器
| seed | 种子 |
| seed_type | 随机数发生器类型(0:pcg64_128,1:xoshiro256++) |
引用了 lmmp_global_rng, lmmp_seed_generator(), lmmp_global_rng_t::seed_type , 以及 lmmp_global_rng_t::state.
函数调用图:生成随机大整数(0 - B^n-1 均匀分布)
| dst | 随机数存储位置 |
| n | dst的 limb 长度 |
生成随机大整数(0 - B^n-1 均匀分布)
| dst | 随机数存储位置 |
| n | dst的 limb 长度 |
| seed | 种子(建议使用有效位数较多的随机数,以保证随机数质量) |
| seed_type | 随机数发生器类型(0:pcg64_128,1:xoshiro256++) |
| mp_size_t lmmp_strong_random_ | ( | mp_ptr | dst, |
| mp_size_t | n, | ||
| lmmp_strong_rng_t * | rng | ||
| ) |
生成n维度强随机数(0 - B^n-1 均匀分布)
| dst | 随机数存储位置(长度为k个limb) |
| n | dst的 limb 长度(n<=k) |
| rng | 强随机数生成器指针,每生成一次,内部状态将会更新 |
| void lmmp_strong_rng_extern_ | ( | lmmp_strong_rng_t * | rng, |
| mp_size_t | k | ||
| ) |
将rng内部状态拓展至k维度
| rng | 强随机数生成器指针 |
| k | 随机数长度(单位:limb) |
引用了 pcg64_le_seq_t::k, k, lmmp_param_assert, lmmp_realloc(), lmmp_seed_generator(), pcg64_le_seq_init(), rotl(), pcg64_le_seq_t::state , 以及 lmmp_strong_rng_t::stream.
函数调用图:| void lmmp_strong_rng_free_ | ( | lmmp_strong_rng_t * | rng | ) |
销毁强随机数生成器
| rng | 强随机数生成器指针 |
引用了 lmmp_free(), pcg64_le_seq_t::state , 以及 lmmp_strong_rng_t::stream.
函数调用图:| lmmp_strong_rng_t * lmmp_strong_rng_init_ | ( | mp_size_t | k, |
| int | seed | ||
| ) |
创建k维度强随机数生成器
| k | 随机数长度(单位:limb) |
| seed | 种子 |
引用了 ALLOC_TYPE, pcg64_le_seq_t::k, k, lmmp_alloc(), lmmp_param_assert, lmmp_seed_generator(), pcg64_le_seq_init(), rotl(), pcg64_le_seq_t::state , 以及 lmmp_strong_rng_t::stream.
函数调用图: