<html>#2922: CarpetX does not compile with CUDA 12.9
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Steven R. Brandt</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td>ET_2026_05</td></tr>
<tr><td style='text-align:right'>  Version:</td><td></td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>major</td></tr>
<tr><td style='text-align:right'>Component:</td><td>CarpetX</td></tr>
</table>

<p>Comment (by Steven R. Brandt):</p>
<p>I have already provided the workaround in the hack/vect_any branch, but here it is again:</p>
<div class="codehilite"><pre><span></span><code><span class="gh">diff --git a/Arith/src/vect.hxx b/Arith/src/vect.hxx</span>
<span class="gh">index 302833da..c547bb46 100644</span>
<span class="gd">--- a/Arith/src/vect.hxx</span>
<span class="gi">+++ b/Arith/src/vect.hxx</span>
<span class="gu">@@ -638,6 +638,12 @@ template <typename T, int D> struct vect {</span>
                 zero<T>()(), x);
   }

<span class="gi">+  friend constexpr ARITH_INLINE ARITH_DEVICE ARITH_HOST auto /*bool*/</span>
<span class="gi">+  vect_any(const vect &x) {</span>
<span class="gi">+    return fold([](const T &a, const T &b) ARITH_INLINE { return a || b; },</span>
<span class="gi">+                zero<T>()(), x);</span>
<span class="gi">+  }</span>
<span class="gi">+</span>
   friend constexpr ARITH_INLINE ARITH_DEVICE ARITH_HOST auto /*bool*/
   allisfinite(const vect &x) {
     return all(
<span class="gh">diff --git a/CarpetX/src/io_openpmd.cxx b/CarpetX/src/io_openpmd.cxx</span>
<span class="gh">index 536a0749..a84bcbdb 100644</span>
<span class="gd">--- a/CarpetX/src/io_openpmd.cxx</span>
<span class="gi">+++ b/CarpetX/src/io_openpmd.cxx</span>
<span class="gu">@@ -284,7 +284,7 @@ struct carpetx_openpmd_t {</span>
     constexpr friend bool operator!=(const box_t &x, const box_t &y) {
       return !(x == y);
     }
<span class="gd">-    constexpr bool empty() const { return any(hi < lo); }</span>
<span class="gi">+    constexpr bool empty() const { return vect_any(hi < lo); }</span>
     constexpr Arith::vect<T, D> shape() const {
       Arith::vect<T, D> sh;
       for (std::size_t d = 0; d < D; ++d)
<span class="gu">@@ -1248,7 +1248,7 @@ void carpetx_openpmd_t::InputOpenPMD(const cGH *const cctkGH,</span>
                   for (int j = extbox.lo[1]; j < extbox.hi[1]; ++j) {
                     for (int i = extbox.lo[0]; i < extbox.hi[0]; ++i) {
           
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2922/carpetx-does-not-compile-with-cuda-129'>https://bitbucket.org/einsteintoolkit/tickets/issues/2922/carpetx-does-not-compile-with-cuda-129</a></p>
</html>