未找到cusp :: extract_diagonal

时间:2017-03-26 12:14:18

标签: c++ cuda cusp-library

我正在使用CUSP作为GPU加速代码的一部分。我需要从尖点矩阵C中提取对角线。这应该在下面的代码中对角线。

cusp::extract_diagonal(C, diagonal);

然而,在编译时我得到“cusp”没有成员“extract_diagonal”

如果我有:

#include <cusp/format_utils.h>

在示例中,我找不到format_utils.h。如果我插入详细信息以完成标题的路径,如下所示:

#include <cusp/detail/format_utils.h>

编译能够找到format_utils.h,但仍然说没有“extract_diagonal”

我正在看的例子是:

// include cusp array1d header file
#include <cusp/array1d.h>
#include <cusp/coo_matrix.h>
#include <cusp/print.h>
#incldue <cusp/gallery/poisson.h>
#include <cusp/format_utils.h>
int main()
{
// initialize 5x5 poisson matrix
cusp::coo_matrix<int,float,cusp::host_memory> A;
cusp::gallery::poisson5pt(A, 5, 5);
// allocate array to hold diagonal entries
cusp::array1d<float, cusp::host_memory> diagonal(A.num_rows);
// extract diagonal of A
cusp::extract_diagonal(A, diagonal);
// print diagonal entries
cusp::print(diagonal);
}

版本如下:

The following libraries were found:
CUDA   v6.0
Thrust v1.7.1
Cusp   v0.4.0

我错过了一些包含还是其他?作为最后的手段,我在主cusp目录中包含所有标题都无济于事。

任何建议都会很棒。

1 个答案:

答案 0 :(得分:1)

您找不到cusp/format_utils.h,因为它在您使用的CUSP版本中不存在,已接近4年,并且此后代码库已经重构。如果您升级到CUSP 0.5.1(您正在使用的示例已写入),您应该会发现它有效。

或者,如果您将包含更改为cusp/format.h,您可能会发现它也可以正常运行,但我无法保证它并且懒得拉古老版本的CUSP并检查。