拟随机数列
本章描述生成任意维数的拟随机数列的函数。拟随机数列用一组均匀分布的点逐步覆盖d维空间。拟随机数列也被称为低差异数列。拟随机数列生成器使用的接口类似于随机数生成器的接口,不同之处是不需要种子——每个生成器生成单个数列。
本章描述的函数在头文件gsl_qrng.h中声明。
19.1 拟随机数生成器初始化
gsl_qrng
这是为了计算拟随机数列的工作空间。
gsl_qrng * gsl_qrng_alloc(const gsl_qrng_type * T, unsigned int d)
本函数返回一个指针,指向新创建的T类型和维数为d的拟随机数列生成器实例。如果没有足够的内存来创建生成器,那么该函数将返回一个空指针,并使用错误代码GSL_ENOMEM调用错误处理程序。
void gsl_qrng_free(gsl_qrng * q)
本函数释放与生成器q相关的所有内存。
void gsl_qrng_init(gsl_qrng * q)
本函数将生成器q重新初始化到它的起始点。请注意,拟随机数列不使用种子,总是产生同一组值。
19.2 从拟随机数发生器中采样
int gsl_qrng_get(const gsl_qrng * q, double x[])
本函数将数列生成器q中的下一个点存储在数组x中。x的可用空间必须与生成器的维数匹配。对于每个xi, x点都在0 < xi < 1的范围内。定义HAVE_INLINE时使用该函数的内联版本。
19.3 辅助拟随机数产生函数
const char * gsl_qrng_name(const gsl_qrng * q)
本函数返回一个指向生成器名称的指针。
size_t gsl_qrng_size(const gsl_qrng * q)
void * gsl_qrng_state(const gsl_qrng * q)
本函数返回指向生成器r状态及其大小的指针。您可以使用此信息直接访问该状态。例如,下面的代码将把生成器的状态写入流: