 #include "ghost/types.h"
 #include "ghost/densemat.h"
 #include "ghost/sparsemat.h"
+#include "ghost/cu_complex.h"
 
 #include "ghost/tsmtspmtsm_var2_cuda.h"
 

        sum = accu(sum, blockResults[i * N * M + n * M + m]);
    }

    result[n * ldc + m] = accu(scale(result[n * ldc + m], beta), scale2(sum, alpha));
}




namespace {


template<typename oT>
__global__ void deviceReduce(oT *blockResults, oT *result, oT alpha, oT beta, int blockCount,
    ghost_lidx M, ghost_lidx N, ghost_lidx ldx)
