diff --git a/Grid/algorithms/multigrid/DenseCoarseMatrix.h b/Grid/algorithms/multigrid/DenseCoarseMatrix.h index c5bc703a6..174a270e8 100644 --- a/Grid/algorithms/multigrid/DenseCoarseMatrix.h +++ b/Grid/algorithms/multigrid/DenseCoarseMatrix.h @@ -290,7 +290,7 @@ public: Msobj m; peekLocalSite(m, Adbg, myLcoor[ss]); ComplexD *md = (ComplexD *)&m; - for(int i=0; iGlobalSumVector(&gpk, 1); diff --git a/Grid/algorithms/multigrid/RecursiveSchurInverse.h b/Grid/algorithms/multigrid/RecursiveSchurInverse.h index c682c5a2f..598183f89 100644 --- a/Grid/algorithms/multigrid/RecursiveSchurInverse.h +++ b/Grid/algorithms/multigrid/RecursiveSchurInverse.h @@ -313,10 +313,14 @@ public: uint64_t len = (uint64_t)X.rows*w; std::vector h(len); acceleratorCopyFromDevice(X.ColumnWindow(col0), &h[0], len*sizeof(ComplexD)); + // Member real()/imag(): portable across std::complex (CPU) and + // thrust::complex (HIP), where std::norm does not resolve. double s = 0.0; for(uint64_t i=0; i