cusp :: extract_diagonal не найден

Я использую 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 безрезультатно.

Любые предложения будут великолепны.

0

Решение

Ты не можешь найти cusp/format_utils.h потому что он не существует в используемой версии CUSP, которой уже почти 4 года, и с тех пор кодовая база была реорганизована. Если вы обновитесь до CUSP 0.5.1 (для которого был написан пример, который вы используете), вы должны найти, что он работает.

В качестве альтернативы, если вы измените включение на cusp/format.h, вы можете найти, что это работает также, хотя я не могу гарантировать это и слишком ленив, чтобы вытащить древнюю версию CUSP и проверить.

1

Другие решения

Других решений пока нет …