Complex matrix not working for Krylov solver (bicgstab)

39 views
Skip to first unread message

caihon...@gmail.com

unread,
Jul 18, 2016, 4:24:01 AM7/18/16
to cusp-users
Hello Everyone,

I tried to use cusp bicgstab methods to solve an complex system Ax=b. It seems that I get a lot of errors when compiling the code. It works fine for real matrix. The attached is my code and here is the errors. Any one can provide some help for this?

Thanks.

Hongzhu






/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/cuda/detail/multiply/coo_flat_spmv.h(257): error: no operator "=" matches these operands
            operand types are: volatile thrust::complex<float> = thrust::complex<float>
          detected during:
            instantiation of "void cusp::system::cuda::spmv_coo_flat_kernel<IndexType,ValueType,BLOCK_SIZE>(IndexType, IndexType, const IndexType *, const IndexType *, const ValueType *, const ValueType *, ValueType *, IndexType *, ValueType *) [with IndexType=int, ValueType=thrust::complex<float>, BLOCK_SIZE=256U]" 
(409): here
            instantiation of "void cusp::system::cuda::__spmv_coo_flat<InitializeY,DerivedPolicy,MatrixType,VectorType1,VectorType2,UnaryFunction,BinaryFunction1,BinaryFunction2>(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, MatrixType &, VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with InitializeY=false, DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=const cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=const cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
(462): here
            instantiation of "void cusp::system::cuda::multiply(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, const MatrixType &, const VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2, cusp::coo_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(102): here
            instantiation of "thrust::detail::disable_if_convertible<UnaryFunction, cusp::known_format, void>::type cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/detail/generic/multiply.inl(74): here
            instantiation of "void cusp::system::detail::generic::multiply(thrust::execution_policy<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, cusp::known_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(50): here
            instantiation of "void cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(70): here
            instantiation of "void cusp::multiply(const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(88): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &, Preconditioner &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>, Preconditioner=cusp::identity_operator<thrust::complex<float>, cusp::device_memory, int>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(57): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>]" 
ainv_bicgstab_Complex_ReadCoo.cu(58): here

/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/cuda/detail/multiply/coo_flat_spmv.h(274): error: no operator "=" matches these operands
            operand types are: volatile thrust::complex<float> = thrust::complex<float>
          detected during:
            instantiation of "void cusp::system::cuda::spmv_coo_flat_kernel<IndexType,ValueType,BLOCK_SIZE>(IndexType, IndexType, const IndexType *, const IndexType *, const ValueType *, const ValueType *, ValueType *, IndexType *, ValueType *) [with IndexType=int, ValueType=thrust::complex<float>, BLOCK_SIZE=256U]" 
(409): here
            instantiation of "void cusp::system::cuda::__spmv_coo_flat<InitializeY,DerivedPolicy,MatrixType,VectorType1,VectorType2,UnaryFunction,BinaryFunction1,BinaryFunction2>(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, MatrixType &, VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with InitializeY=false, DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=const cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=const cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
(462): here
            instantiation of "void cusp::system::cuda::multiply(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, const MatrixType &, const VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2, cusp::coo_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(102): here
            instantiation of "thrust::detail::disable_if_convertible<UnaryFunction, cusp::known_format, void>::type cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/detail/generic/multiply.inl(74): here
            instantiation of "void cusp::system::detail::generic::multiply(thrust::execution_policy<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, cusp::known_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(50): here
            instantiation of "void cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(70): here
            instantiation of "void cusp::multiply(const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(88): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &, Preconditioner &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>, Preconditioner=cusp::identity_operator<thrust::complex<float>, cusp::device_memory, int>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(57): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>]" 
ainv_bicgstab_Complex_ReadCoo.cu(58): here

/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/cuda/detail/multiply/coo_flat_spmv.h(277): error: no operator "=" matches these operands
            operand types are: volatile thrust::complex<float> = thrust::complex<float>
          detected during:
            instantiation of "void cusp::system::cuda::spmv_coo_flat_kernel<IndexType,ValueType,BLOCK_SIZE>(IndexType, IndexType, const IndexType *, const IndexType *, const ValueType *, const ValueType *, ValueType *, IndexType *, ValueType *) [with IndexType=int, ValueType=thrust::complex<float>, BLOCK_SIZE=256U]" 
(409): here
            instantiation of "void cusp::system::cuda::__spmv_coo_flat<InitializeY,DerivedPolicy,MatrixType,VectorType1,VectorType2,UnaryFunction,BinaryFunction1,BinaryFunction2>(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, MatrixType &, VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with InitializeY=false, DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=const cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=const cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
(462): here
            instantiation of "void cusp::system::cuda::multiply(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, const MatrixType &, const VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2, cusp::coo_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(102): here
            instantiation of "thrust::detail::disable_if_convertible<UnaryFunction, cusp::known_format, void>::type cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/detail/generic/multiply.inl(74): here
            instantiation of "void cusp::system::detail::generic::multiply(thrust::execution_policy<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, cusp::known_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(50): here
            instantiation of "void cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(70): here
            instantiation of "void cusp::multiply(const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(88): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &, Preconditioner &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>, Preconditioner=cusp::identity_operator<thrust::complex<float>, cusp::device_memory, int>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(57): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>]" 
ainv_bicgstab_Complex_ReadCoo.cu(58): here

/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/cuda/detail/multiply/coo_flat_spmv.h(280): error: no operator "=" matches these operands
            operand types are: volatile thrust::complex<float> = thrust::complex<float>
          detected during:
            instantiation of "void cusp::system::cuda::spmv_coo_flat_kernel<IndexType,ValueType,BLOCK_SIZE>(IndexType, IndexType, const IndexType *, const IndexType *, const ValueType *, const ValueType *, ValueType *, IndexType *, ValueType *) [with IndexType=int, ValueType=thrust::complex<float>, BLOCK_SIZE=256U]" 
(409): here
            instantiation of "void cusp::system::cuda::__spmv_coo_flat<InitializeY,DerivedPolicy,MatrixType,VectorType1,VectorType2,UnaryFunction,BinaryFunction1,BinaryFunction2>(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, MatrixType &, VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with InitializeY=false, DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=const cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=const cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
(462): here
            instantiation of "void cusp::system::cuda::multiply(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, const MatrixType &, const VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2, cusp::coo_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(102): here
            instantiation of "thrust::detail::disable_if_convertible<UnaryFunction, cusp::known_format, void>::type cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/detail/generic/multiply.inl(74): here
            instantiation of "void cusp::system::detail::generic::multiply(thrust::execution_policy<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, cusp::known_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(50): here
            instantiation of "void cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(70): here
            instantiation of "void cusp::multiply(const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(88): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &, Preconditioner &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>, Preconditioner=cusp::identity_operator<thrust::complex<float>, cusp::device_memory, int>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(57): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>]" 
ainv_bicgstab_Complex_ReadCoo.cu(58): here

/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/cuda/detail/multiply/coo_flat_spmv.h(283): error: no operator "=" matches these operands
            operand types are: volatile thrust::complex<float> = thrust::complex<float>
          detected during:
            instantiation of "void cusp::system::cuda::spmv_coo_flat_kernel<IndexType,ValueType,BLOCK_SIZE>(IndexType, IndexType, const IndexType *, const IndexType *, const ValueType *, const ValueType *, ValueType *, IndexType *, ValueType *) [with IndexType=int, ValueType=thrust::complex<float>, BLOCK_SIZE=256U]" 
(409): here
            instantiation of "void cusp::system::cuda::__spmv_coo_flat<InitializeY,DerivedPolicy,MatrixType,VectorType1,VectorType2,UnaryFunction,BinaryFunction1,BinaryFunction2>(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, MatrixType &, VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with InitializeY=false, DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=const cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=const cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
(462): here
            instantiation of "void cusp::system::cuda::multiply(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, const MatrixType &, const VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2, cusp::coo_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(102): here
            instantiation of "thrust::detail::disable_if_convertible<UnaryFunction, cusp::known_format, void>::type cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/detail/generic/multiply.inl(74): here
            instantiation of "void cusp::system::detail::generic::multiply(thrust::execution_policy<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, cusp::known_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(50): here
            instantiation of "void cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(70): here
            instantiation of "void cusp::multiply(const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(88): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &, Preconditioner &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>, Preconditioner=cusp::identity_operator<thrust::complex<float>, cusp::device_memory, int>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(57): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>]" 
ainv_bicgstab_Complex_ReadCoo.cu(58): here

/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/cuda/detail/multiply/coo_flat_spmv.h(286): error: no operator "=" matches these operands
            operand types are: volatile thrust::complex<float> = thrust::complex<float>
          detected during:
            instantiation of "void cusp::system::cuda::spmv_coo_flat_kernel<IndexType,ValueType,BLOCK_SIZE>(IndexType, IndexType, const IndexType *, const IndexType *, const ValueType *, const ValueType *, ValueType *, IndexType *, ValueType *) [with IndexType=int, ValueType=thrust::complex<float>, BLOCK_SIZE=256U]" 
(409): here
            instantiation of "void cusp::system::cuda::__spmv_coo_flat<InitializeY,DerivedPolicy,MatrixType,VectorType1,VectorType2,UnaryFunction,BinaryFunction1,BinaryFunction2>(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, MatrixType &, VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with InitializeY=false, DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=const cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=const cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
(462): here
            instantiation of "void cusp::system::cuda::multiply(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, const MatrixType &, const VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2, cusp::coo_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(102): here
            instantiation of "thrust::detail::disable_if_convertible<UnaryFunction, cusp::known_format, void>::type cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/detail/generic/multiply.inl(74): here
            instantiation of "void cusp::system::detail::generic::multiply(thrust::execution_policy<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, cusp::known_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(50): here
            instantiation of "void cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(70): here
            instantiation of "void cusp::multiply(const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(88): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &, Preconditioner &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>, Preconditioner=cusp::identity_operator<thrust::complex<float>, cusp::device_memory, int>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(57): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>]" 
ainv_bicgstab_Complex_ReadCoo.cu(58): here

/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/cuda/detail/multiply/coo_flat_spmv.h(289): error: no operator "=" matches these operands
            operand types are: volatile thrust::complex<float> = thrust::complex<float>
          detected during:
            instantiation of "void cusp::system::cuda::spmv_coo_flat_kernel<IndexType,ValueType,BLOCK_SIZE>(IndexType, IndexType, const IndexType *, const IndexType *, const ValueType *, const ValueType *, ValueType *, IndexType *, ValueType *) [with IndexType=int, ValueType=thrust::complex<float>, BLOCK_SIZE=256U]" 
(409): here
            instantiation of "void cusp::system::cuda::__spmv_coo_flat<InitializeY,DerivedPolicy,MatrixType,VectorType1,VectorType2,UnaryFunction,BinaryFunction1,BinaryFunction2>(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, MatrixType &, VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with InitializeY=false, DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=const cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=const cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
(462): here
            instantiation of "void cusp::system::cuda::multiply(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, const MatrixType &, const VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2, cusp::coo_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(102): here
            instantiation of "thrust::detail::disable_if_convertible<UnaryFunction, cusp::known_format, void>::type cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/detail/generic/multiply.inl(74): here
            instantiation of "void cusp::system::detail::generic::multiply(thrust::execution_policy<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, cusp::known_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(50): here
            instantiation of "void cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(70): here
            instantiation of "void cusp::multiply(const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(88): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &, Preconditioner &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>, Preconditioner=cusp::identity_operator<thrust::complex<float>, cusp::device_memory, int>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(57): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>]" 
ainv_bicgstab_Complex_ReadCoo.cu(58): here

/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/cuda/detail/multiply/coo_flat_spmv.h(300): error: no operator "=" matches these operands
            operand types are: thrust::complex<float> = volatile thrust::complex<float>
          detected during:
            instantiation of "void cusp::system::cuda::spmv_coo_flat_kernel<IndexType,ValueType,BLOCK_SIZE>(IndexType, IndexType, const IndexType *, const IndexType *, const ValueType *, const ValueType *, ValueType *, IndexType *, ValueType *) [with IndexType=int, ValueType=thrust::complex<float>, BLOCK_SIZE=256U]" 
(409): here
            instantiation of "void cusp::system::cuda::__spmv_coo_flat<InitializeY,DerivedPolicy,MatrixType,VectorType1,VectorType2,UnaryFunction,BinaryFunction1,BinaryFunction2>(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, MatrixType &, VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with InitializeY=false, DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=const cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=const cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
(462): here
            instantiation of "void cusp::system::cuda::multiply(thrust::system::cuda::detail::execution_policy<DerivedPolicy> &, const MatrixType &, const VectorType1 &, VectorType2 &, UnaryFunction, BinaryFunction1, BinaryFunction2, cusp::coo_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, MatrixType=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, VectorType1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, VectorType2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(102): here
            instantiation of "thrust::detail::disable_if_convertible<UnaryFunction, cusp::known_format, void>::type cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, UnaryFunction, BinaryFunction1, BinaryFunction2) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>, UnaryFunction=cusp::detail::zero_function<thrust::complex<float>>, BinaryFunction1=thrust::multiplies<thrust::complex<float>>, BinaryFunction2=thrust::plus<thrust::complex<float>>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/system/detail/generic/multiply.inl(74): here
            instantiation of "void cusp::system::detail::generic::multiply(thrust::execution_policy<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &, cusp::known_format, cusp::array1d_format, cusp::array1d_format) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(50): here
            instantiation of "void cusp::multiply(const thrust::detail::execution_policy_base<DerivedPolicy> &, const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with DerivedPolicy=thrust::system::cuda::detail::tag, LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/detail/multiply.inl(70): here
            instantiation of "void cusp::multiply(const LinearOperator &, const MatrixOrVector1 &, MatrixOrVector2 &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, MatrixOrVector1=cusp::array1d<thrust::complex<float>, cusp::device_memory>, MatrixOrVector2=cusp::array1d<thrust::complex<float>, cusp::device_memory>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(88): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &, Preconditioner &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>, Preconditioner=cusp::identity_operator<thrust::complex<float>, cusp::device_memory, int>]" 
/usr/local/cuda/bin/../targets/x86_64-linux/include/cusp/krylov/detail/bicgstab.inl(57): here
            instantiation of "void cusp::krylov::bicgstab(LinearOperator &, Vector &, Vector &, Monitor &) [with LinearOperator=cusp::coo_matrix<int, thrust::complex<float>, cusp::device_memory>, Vector=cusp::array1d<thrust::complex<float>, cusp::device_memory>, Monitor=cusp::monitor<thrust::complex<float>>]" 
ainv_bicgstab_Complex_ReadCoo.cu(58): here

8 errors detected in the compilation of "/tmp/tmpxft_00003a51_00000000-9_ainv_bicgstab_Complex_ReadCoo.cpp1.ii".

ainv_bicgstab_Complex_ReadCoo.cu
A_Matlab.mtx

Steven Dalton

unread,
Jul 18, 2016, 4:31:26 AM7/18/16
to cusp-...@googlegroups.com
Hello Hongzhu,

  Can you try pulling from the develop branch? I think the errors you are experiencing were fixed in the latest version. Can you also send me your system configuration details (CUDA version, OS, CUSP version)? 

Thanks,
  Steve

--
You received this message because you are subscribed to the Google Groups "cusp-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cusp-users+...@googlegroups.com.
To post to this group, send email to cusp-...@googlegroups.com.
Visit this group at https://groups.google.com/group/cusp-users.
For more options, visit https://groups.google.com/d/optout.

caihon...@gmail.com

unread,
Jul 18, 2016, 12:16:55 PM7/18/16
to cusp-users
Hello Steve, 

I actually see some discussing regarding patch the complex.h. I'm wondering which complex.h should I patch. Is that the one under cusp folder? In the CUDA install directory, there is also a complex.h. 

Here is my system details:
CUDA 7.5
Ubuntu 14.04
Cusp v0.5.1
Thanks for your help!

Hongzhu
...

Steven Dalton

unread,
Jul 19, 2016, 9:59:09 AM7/19/16
to cusp-...@googlegroups.com
Hello Hongzhu,

  That post refers to cusp/complex.h which was patched in v0.5.1 and some additional changes were introduced in the develop branch to address issues related to complex solvers. You should be able to compile your code using the latest branch of the code on Github.

Steve

--
Reply all
Reply to author
Forward
0 new messages