 #include <cusp/csr_matrix.h>
 #include <cusp/io/matrix_market.h>
 #include <cusp/blas.h>
+#include <cusp/multiply.h>
 
 #include <iostream>
 #include <string>

        std::cout << "\n----------- benchmarking CG -----------\n";
        // compute residual
        cusp::array1d<ValueType, cusp::host_memory> r(A.num_rows,0);
        A.multiply(x,r);
        cusp::blas::axpy(b, r, ValueType(-1.0));

        ValueType residual_norm = cusp::blas::nrm2(r);

    const size_t num_iterations = 500;

    for(size_t i = 0; i < num_iterations; i++)
        cusp::multiply(A, x, y);

    float time = t.seconds_elapsed() / num_iterations;
    float GFLOPs = (time == 0) ? 0 : (2 * A.num_entries / time) / 1e9;
