CUSP GMRES ошибка с комплексным номером
Я пытаюсь использовать CUSP для решения сложной матрицы с использованием метода GMRES.
При компиляции я получаю сообщение об ошибке: "не существует подходящей функции преобразования из" cusp:: complex "в" float "существует"
и если я пойду посмотрю, откуда исходит ошибка, я получу gmres.inl, строка 143
resid[0] = s[0];
где остаток и тип s
cusp::array1d<NormType,cusp::host_memory> resid(1);
cusp::array1d<ValueType,cusp::host_memory> s(R+1);
typedef typename LinearOperator::value_type ValueType;
typedef typename LinearOperator::memory_space MemorySpace;
typedef typename norm_type<ValueType>::type NormType;
Почему это говорит мне float, когда тип обоих сложен?
code: `// создаем пустую структуру разреженной матрицы (формат CSR) cusp::csr_matrix,cusp::device_memory>A;
// initialize matrix from file
cusp::io::read_matrix_market_file(A, PATH);
// allocate storage for solution (x) and right hand side (b)
cusp::array1d<complex<float>, cusp::device_memory> x(A.num_rows, 0);
cusp::array1d<complex<float>, cusp::device_memory> b(A.num_rows, 1);
// set stopping criteria:
// iteration_limit = 100
// relative_tolerance = 1e-6
cusp::verbose_monitor<complex<float>> monitor(b,10000, 1e-6);
int restart = 50;
// set preconditioner (identity)
cusp::identity_operator<complex<float>, cusp::device_memory> M(A.num_rows, A.num_rows);
// solve the linear system A x = b
cusp::krylov::gmres(A, x, b, restart, monitor,M);//`