GNU GSL排序两个向量

时间:2014-07-02 15:31:04

标签: c sorting vector gsl

我最近一直在使用GNU GSL进行矢量计算 - 到目前为止,它已经很棒了! 然而,现在,我想对两个向量进行排序(排序一个向量,然后根据前者对另一个向量进行排序)。幸运的是,GNU GSL似乎有一个功能,如引用:

Function: void gsl_sort_vector2 (gsl_vector * v1, gsl_vector * v2) This function sorts the elements of the vector v1 into ascending numerical order, while making the same rearrangement of the vector v2.

..这正是我想要的。但是,当我尝试实现这一点时,我在gsl_sort_vector2上一直收到未定义的错误。因此,我的skeletal代码如下所示:

#include <stdio.h>
#include <math.h>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_sort_vector.h>

< do some vector related stuff here >

/* +++ This works completely fine ++++ */
/* gsl_sort_vector (res); */

/* +++ This gives the undefined error ++++ */
gsl_sort_vector2 (res, id);

其中resid是GSL向量。

编译时,错误只是:

undefined reference to gsl_sort_vector2 collect2: error: ld returned 1 exit status

我想知道我可能做错了什么 - 但到目前为止这一点非常不成功。 如果有人能指出我正确的方向,我真的很感激。

1 个答案:

答案 0 :(得分:1)

GSL trunk page显示gsl_sort_vector2仅在版本1.16(提交4821)中添加。然后,您可能正在使用旧版本的库,因为您声明所有其他向量操作都正常工作(意味着没有链接问题)