GSL中的排列

排列

       本章描述用于创建和操作排列的函数。置换p由0到n-1范围内的n个整数组成的数组表示,其中每个值pi发生一次,且只有一次。将排列p应用于向量v,得到一个新的向量v',其中v'i = vpi。例如,数组(0,1,3,2)表示一个排列,它交换一个四元素向量的最后两个元素。对应的恒等式排列是(0,1,2,3)。

       注意,线性代数例程产生的排列对应于矩阵列的交换,因此在遍历向量的元素时,应该将其视为应用于v' = vP形式的行向量,而不是列向量。

    本章描述的函数定义在头文件gsl_change .h中。

9.1 排列的结构体

gsl_permutation

typedef struct

{

  size_t size;

  size_t * data;

}gsl_permutation;

    排列定义为包含两个组件的结构体,包括排列大小和排列数组指针。排列数组的元素都是size_t类型。gsl_permutation结构是这样的:

9.2 排列的内存分配

gsl_permutation * gsl_permutation_alloc(size_t n)

    本函数为大小为n的新排列分配内存。排列未初始化,且其元素未定义。如果希望创建初始化为标识的排列,请使用函数gsl_permutation_calloc()。如果没有足够的内存来创建排列,则返回空指针。

gsl_permutation * gsl_permutation_calloc(size_t n)

    本函数为大小为n的新排列分配内存,并将其初始化为恒等式。如果没有足够的内存来创建排列,则返回空指针。

void gsl_permutation_init(gsl_permutation * p)

    本函数将排列p初始化为恒等式,即(0,1,2,…,n - 1)。

void gsl_permutation_free(gsl_permutation * p)

    本函数释放排列p使用的所有内存。

int gsl_permutation_memcpy(gsl_permutation * dest, const gsl_permutation * src)

    本函数将排列src的元素复制到置换dest中,两个排列的大小必须相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值