 #include <complex>
 #include <cuda_runtime.h>
 #include <cusparse_v2.h>
+#include <vector>
+
+using namespace std;
 
 typedef cusparseStatus_t (*cusparse_sell1_spmv_kernel_t) (cusparseHandle_t handle, cusparseOperation_t transA, 
         int m, int n, int nnz, const void           *alpha, 


    if (traits.flags & (GHOST_SPMV_SHIFT|GHOST_SPMV_VSHIFT)) {
        GHOST_PERFWARNING_LOG("Shift will not be applied on-the-fly!");
        dt minusshift[rhs->traits.ncols];
        ghost_lidx col;
        if (traits.flags & GHOST_SPMV_SHIFT) {
            for (col=0; col<rhs->traits.ncols; col++) {

                minusshift[col] = (dt)-1.*(*(dt *)&scale)*(((dt *)shift)[col]);
            }
        }
        ghost_vaxpy(lhs,rhs,minusshift.data());
    }
    
    if (traits.flags & GHOST_SPMV_DOT) {
