尖峰::extract_diagonal未找到

cusp::extract_diagonal not found

本文关键字:extract 尖峰 diagonal      更新时间:2023-10-16

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

cusp::extract_diagonal(C, diagonal);

但是在编译时,我得到"尖峰"没有成员"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 目录中,但无济于事。

任何建议都会很棒。

你找不到cusp/format_utils.h,因为它在你使用的CUSP版本中不存在,这个版本已经接近4年了,从那时起代码库已经被重构了。如果您升级到 CUSP 0.5.1(您正在使用的示例就是为此编写的(,您应该会发现它可以工作。

或者,如果您将包含更改为 cusp/format.h ,您可能会发现它也可以工作,尽管我不能保证,也懒得拉出古代版本的 CUSP 并进行检查。