From 7c9a6d354ededdf29b40a2aea3a802b999801111 Mon Sep 17 00:00:00 2001 From: Peter Boyle Date: Fri, 14 Aug 2026 18:21:45 -0400 Subject: [PATCH] Updates for thrust --- Grid/algorithms/multigrid/DenseCoarseMatrix.h | 2 +- Grid/algorithms/multigrid/RecursiveSchurInverse.h | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) 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