HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Program Files/R/R-4.4.0/library/Matrix/scripts/wall.patch
diff -ruN src/SuiteSparse/CCOLAMD/Source/ccolamd.c src/SuiteSparse-patched/CCOLAMD/Source/ccolamd.c
--- src/SuiteSparse/CCOLAMD/Source/ccolamd.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CCOLAMD/Source/ccolamd.c	2024-03-16 01:25:07
@@ -1545,7 +1545,9 @@
     Int *dead_cols ;
     Int set1 ;
     Int set2 ;
+#ifndef NDEBUG
     Int cs ;
+#endif
 
     int ok ;
 
@@ -1894,7 +1896,9 @@
             p [k] = col ;
             ASSERT (A [col] == EMPTY) ;
 
+#ifndef NDEBUG
 	    cs = CMEMBER (col) ;
+#endif
             ASSERT (k >= cset_start [cs] && k < cset_start [cs+1]) ;
 
             A [col] = k ;
@@ -1911,8 +1915,8 @@
             if (A [col] == EMPTY)
             {
                 k = Col [col].shared2.order ;
-		cs = CMEMBER (col) ;
 #ifndef NDEBUG
+		cs = CMEMBER (col) ;
                 dead_cols [cs]-- ;
 #endif
                 ASSERT (k >= cset_start [cs] && k < cset_start [cs+1]) ;
diff -ruN src/SuiteSparse/CHOLMOD/Check/cholmod_check.c src/SuiteSparse-patched/CHOLMOD/Check/cholmod_check.c
--- src/SuiteSparse/CHOLMOD/Check/cholmod_check.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Check/cholmod_check.c	2024-03-16 01:25:07
@@ -216,7 +216,6 @@
     //--------------------------------------------------------------------------
 
     RETURN_IF_NULL_COMMON (FALSE) ;
-    int init_print = print ;
 
     P2 ("%s", "\n") ;
 
@@ -965,7 +964,7 @@
 )
 {
     void *Xx, *Xz ;
-    Int i, j, d, nrow, ncol, nzmax, nz, init_print, count ;
+    Int i, j, d, nrow, ncol, nzmax, init_print, count ;
     const char *type = "dense" ;
 
     //--------------------------------------------------------------------------
@@ -1034,7 +1033,6 @@
     {
         init_print = print ;
         ETC_START (count, 9) ;
-        nz = nrow * ncol ;
         for (j = 0 ; j < ncol ; j++)
         {
             ETC (j == ncol-1, count, 5) ;
@@ -1487,10 +1485,10 @@
     void *Lx, *Lz ;
     Int *Lp, *Li, *Lnz, *Lnext, *Lprev, *Perm, *ColCount, *Lpi, *Lpx, *Super,
         *Ls ;
-    Int n, nzmax, j, p, pend, i, nz, ordering, space, is_monotonic, minor,
-        count, precise, init_print, ilast, lnz, head, tail, jprev, plast,
-        jnext, examine_super, nsuper, s, k1, k2, psi, psend, psx, nsrow, nscol,
-        ps2, psxend, ssize, xsize, maxcsize, maxesize, nsrow2, jj, ii ;
+    Int n, nzmax, j, p, pend, i, nz, space, is_monotonic, minor,
+        count, init_print, ilast, lnz, head, tail, jprev, plast,
+        jnext, examine_super, nsuper, s, k1, k2, psi, psend, psx = 0, nsrow, nscol,
+        psxend, ssize, xsize, maxcsize, maxesize, nsrow2, jj, ii ;
     Int check_Lpx ;
     const char *type = "factor" ;
 
@@ -1512,7 +1510,6 @@
 
     n = L->n ;
     minor = L->minor ;
-    ordering = L->ordering ;
     int xtype = L->xtype ;
     int dtype = L->dtype ;
 
@@ -1520,8 +1517,6 @@
     ColCount = L->ColCount ;
     lnz = 0 ;
 
-    precise = Common->precise ;
-
     P3 (" "ID"", n) ;
     P3 ("-by-"ID"", n) ;
 
@@ -1896,7 +1891,6 @@
                 nsrow = psend - psi ;
                 nscol = k2 - k1 ;
                 nsrow2 = nsrow - nscol ;
-                ps2 = psi + nscol ;
 
                 if (check_Lpx)
                 {
diff -ruN src/SuiteSparse/CHOLMOD/Check/cholmod_write.c src/SuiteSparse-patched/CHOLMOD/Check/cholmod_write.c
--- src/SuiteSparse/CHOLMOD/Check/cholmod_write.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Check/cholmod_write.c	2024-03-16 01:25:07
@@ -354,7 +354,7 @@
     double x = 0, z = 0 ;
     void *Ax, *Az ;
     Int *Ap, *Ai, *Anz, *Zp, *Zi, *Znz ;
-    Int nrow, ncol, is_complex, symmetry, i, j, q, iz, p, nz, is_binary, stype,
+    Int nrow, ncol, is_complex, i, j, q, iz, p, nz, is_binary, stype,
         is_integer, asym, is_sym, apacked, zpacked, pend, qend, zsym ;
     int ok, xtype, dtype ;
 
@@ -527,7 +527,6 @@
             // A is rectangular or unsymmetric
             ok = ok && (fprintf (f, " general\n") > 0) ;
             is_sym = FALSE ;
-            symmetry = CHOLMOD_MM_UNSYMMETRIC ;
             break ;
 
         case CHOLMOD_MM_SYMMETRIC:
@@ -535,7 +534,6 @@
             // A is symmetric
             ok = ok && (fprintf (f, " symmetric\n") > 0) ;
             is_sym = TRUE ;
-            symmetry = CHOLMOD_MM_SYMMETRIC ;
             break ;
 
         case CHOLMOD_MM_HERMITIAN:
@@ -543,14 +541,12 @@
             // A is Hermitian
             ok = ok && (fprintf (f, " Hermitian\n") > 0) ;
             is_sym = TRUE ;
-            symmetry = CHOLMOD_MM_HERMITIAN ;
             break ;
 
         case CHOLMOD_MM_SKEW_SYMMETRIC:
             // A is skew symmetric
             ok = ok && (fprintf (f, " skew-symmetric\n") > 0) ;
             is_sym = TRUE ;
-            symmetry = CHOLMOD_MM_SKEW_SYMMETRIC ;
             break ;
     }
 
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/cholmod_analyze.c src/SuiteSparse-patched/CHOLMOD/Cholesky/cholmod_analyze.c
--- src/SuiteSparse/CHOLMOD/Cholesky/cholmod_analyze.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/cholmod_analyze.c	2024-03-16 01:25:07
@@ -399,7 +399,7 @@
     Int *First, *Level, *Work4n, *Cmember, *CParent, *ColCount, *Lperm, *Parent,
         *Post, *Perm, *Lparent, *Lcolcount ;
     cholmod_factor *L ;
-    Int k, n, method, nmethods, status, default_strategy, ncol,
+    Int k, n, method, nmethods, status, default_strategy,
         skip_analysis, skip_best ;
     Int amd_backup ;
     int ok = TRUE ;
@@ -421,7 +421,6 @@
     //--------------------------------------------------------------------------
 
     n = A->nrow ;
-    ncol = A->ncol ;
 
     //--------------------------------------------------------------------------
     // set the default strategy
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/cholmod_factorize.c src/SuiteSparse-patched/CHOLMOD/Cholesky/cholmod_factorize.c
--- src/SuiteSparse/CHOLMOD/Cholesky/cholmod_factorize.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/cholmod_factorize.c	2024-03-16 01:25:07
@@ -104,7 +104,7 @@
 {
 
     cholmod_sparse *S, *F, *A1, *A2 ;
-    Int nrow, ncol, stype, convert, n, grow2, status ;
+    Int nrow, ncol, stype, convert, grow2, status ;
     int ok = TRUE ;
 
     //--------------------------------------------------------------------------
@@ -118,7 +118,6 @@
     RETURN_IF_XTYPE_INVALID (L, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, FALSE) ;
     nrow = A->nrow ;
     ncol = A->ncol ;
-    n = L->n ;
     stype = A->stype ;
     if (L->n != A->nrow)
     {
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/cholmod_resymbol.c src/SuiteSparse-patched/CHOLMOD/Cholesky/cholmod_resymbol.c
--- src/SuiteSparse/CHOLMOD/Cholesky/cholmod_resymbol.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/cholmod_resymbol.c	2024-03-16 01:25:07
@@ -102,8 +102,6 @@
     //--------------------------------------------------------------------------
 
     Int stype = A->stype ;
-    Int nrow = A->nrow ;
-    Int ncol = A->ncol ;
 
     // s = 2*nrow + (stype ? 0 : ncol)
     int ok = TRUE ;
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/cholmod_solve.c src/SuiteSparse-patched/CHOLMOD/Cholesky/cholmod_solve.c
--- src/SuiteSparse/CHOLMOD/Cholesky/cholmod_solve.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/cholmod_solve.c	2024-03-16 01:25:07
@@ -203,8 +203,8 @@
     cholmod_dense *Y = NULL, *X = NULL ;
     cholmod_sparse *C, *Yset, C_header, Yset_header, *Xset ;
     Int *Perm = NULL, *IPerm = NULL ;
-    Int n, nrhs, ncols, k1, nr, ytype, k, blen, p, i, d, nrow ;
-    Int Cp [2], Ysetp [2], *Ci, *Yseti, ysetlen ;
+    Int n, nrhs, ncols, k1, nr, ytype, k, blen, p, d, nrow ;
+    Int Cp [2], Ysetp [2], *Ci, *Yseti ;
 
     RETURN_IF_NULL_COMMON (FALSE) ;
     RETURN_IF_NULL (L, FALSE) ;
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_psolve_worker.c src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_psolve_worker.c
--- src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_psolve_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_psolve_worker.c	2024-03-16 01:25:07
@@ -265,12 +265,17 @@
     //--------------------------------------------------------------------------
 
     Real *Yx, *Yz, *Xx, *Xz ;
-    Int k2, nk, p, k, j, nrow, ncol, d, dj, j2 ;
+    Int k2, p, k, j, nrow, ncol, d, dj, j2 ;
+#ifndef NDEBUG
+    Int nk ;
+#endif
 
     ncol = X->ncol ;
     nrow = X->nrow ;
     k2 = MIN (k1+ncols, ncol) ;
+#ifndef NDEBUG
     nk = MAX (k2 - k1, 0) ;
+#endif
     d = X->d ;
     Xx = X->x ;
     Xz = X->z ;
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_resymbol_worker.c src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_resymbol_worker.c
--- src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_resymbol_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_resymbol_worker.c	2024-03-16 01:25:07
@@ -29,12 +29,13 @@
     Int *Ap = A->p ;
     Int *Anz = A->nz ;
     bool apacked = A->packed ;
-    bool sorted = A->sorted ;
     int stype = A->stype ;
 
     Int  *Li = L->i ;
     Real *Lx = L->x ;
+#ifdef ZOMPLEX
     Real *Lz = L->z ;
+#endif
     Int  *Lp = L->p ;
     Int  *Lnz = L->nz ;
 
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_rowfac_worker.c src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_rowfac_worker.c
--- src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_rowfac_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_rowfac_worker.c	2024-03-16 01:25:07
@@ -49,11 +49,14 @@
     #ifdef ZOMPLEX
     Real yz [1], lz [1], fz [1] ;
     #endif
-    Real *Ax, *Az, *Lx, *Lz, *Wx, *Wz, *Fx, *Fz ;
+    Real *Ax, *Lx, *Wx, *Fx ;
+#ifdef ZOMPLEX
+    Real *Az, *Lz, *Wz, *Fz ;
+#endif
     Int *Ap, *Anz, *Ai, *Lp, *Lnz, *Li, *Lnext, *Flag, *Stack, *Fp, *Fi, *Fnz,
         *Iwork ;
     Int i, p, k, t, pf, pfend, top, s, mark, pend, n, lnz, is_ll, multadds,
-        use_bound, packed, stype, Fpacked, sorted, nzmax, len, parent ;
+        use_bound, packed, stype, Fpacked, sorted, len, parent ;
     #ifndef REAL
     Int dk_imaginary ;
     #endif
@@ -71,7 +74,9 @@
         Fp = NULL ;
         Fi = NULL ;
         Fx = NULL ;
+#ifdef ZOMPLEX
         Fz = NULL ;
+#endif
         Fnz = NULL ;
         Fpacked = TRUE ;
     }
@@ -81,7 +86,9 @@
         Fp = F->p ;
         Fi = F->i ;
         Fx = F->x ;
+#ifdef ZOMPLEX
         Fz = F->z ;
+#endif
         Fnz = F->nz ;
         Fpacked = F->packed ;
     }
@@ -89,7 +96,9 @@
     Ap = A->p ;         // size A->ncol+1, column pointers of A
     Ai = A->i ;         // size nz = Ap [A->ncol], row indices of A
     Ax = A->x ;         // size nz, numeric values of A
+#ifdef ZOMPLEX
     Az = A->z ;
+#endif
     Anz = A->nz ;
     packed = A->packed ;
     sorted = A->sorted ;
@@ -153,8 +162,9 @@
     Lnext = L->next ;   // size n+2
     Li = L->i ;         // size L->nzmax, can change in size
     Lx = L->x ;         // size L->nzmax or 2*L->nzmax, can change in size
+#ifdef ZOMPLEX
     Lz = L->z ;         // size L->nzmax for zomplex case, can change in size
-    nzmax = L->nzmax ;
+#endif
     ASSERT (Lnz != NULL && Li != NULL && Lx != NULL) ;
 
     //--------------------------------------------------------------------------
@@ -166,9 +176,13 @@
     Flag = Common->Flag ;       // size n, Flag [i] < mark must hold
     Wx = Common->Xwork ;        // size n if real, 2*n if complex or
                                 // zomplex.  Xwork [i] == 0 must hold.
+#ifdef ZOMPLEX
     Wz = Wx + n ;               // size n for zomplex case only
+#endif
     mark = Common->mark ;
+#ifndef NDEBUG
     size_t wsize = (L->xtype == CHOLMOD_REAL ? 1:2) * ((size_t) n) ;
+#endif
     ASSERT (Common->xworkbytes >= wsize * sizeof (Real)) ;
 
     //--------------------------------------------------------------------------
@@ -388,7 +402,9 @@
                 }
                 Li = L->i ;             // L->i, L->x, L->z may have moved
                 Lx = L->x ;
+#ifdef ZOMPLEX
                 Lz = L->z ;
+#endif
                 p = Lp [i] + lnz ;      // contents of L->p changed
                 ASSERT (p < Lp [Lnext [i]]) ;
             }
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_solve_worker.c src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_solve_worker.c
--- src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_solve_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_solve_worker.c	2024-03-16 01:25:07
@@ -70,7 +70,9 @@
     Int *Lp = L->p ;
     Real *Lx = L->x ;
     Real *Yx = Y->x ;
+#ifdef ZOMPLEX
     Real *Yz = Y->z ;
+#endif
 
     if (Yset)
     {
@@ -209,7 +211,9 @@
     //--------------------------------------------------------------------------
 
     Real *Yx = Y->x ;
+#ifdef ZOMPLEX
     Real *Yz = Y->z ;
+#endif
     Int *Ysetp = Yset->p ;
     Int *Yseti = Yset->i ;
     Int ysetlen = Ysetp [1] ;
@@ -227,7 +231,9 @@
 
     // Y (C) = B (Bset)
     Real *Bx = B->x ;
+#ifdef ZOMPLEX
     Real *Bz = B->z ;
+#endif
     Int *Bsetp = Bset->p ;
     Int *Bseti = Bset->i ;
     Int *Bsetnz = Bset->nz ;
@@ -262,12 +268,16 @@
 {
 
     Real *Xx = X->x ;
+#ifdef ZOMPLEX
     Real *Xz = X->z ;
+#endif
     Int *Xseti = Xset->i ;
     Int *Xsetp = Xset->p ;
 
     Real *Yx = Y->x ;
+#ifdef ZOMPLEX
     Real *Yz = Y->z ;
+#endif
 
     Int *Ysetp = Yset->p ;
     Int *Yseti = Yset->i ;
diff -ruN src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_spsolve_worker.c src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_spsolve_worker.c
--- src/SuiteSparse/CHOLMOD/Cholesky/t_cholmod_spsolve_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Cholesky/t_cholmod_spsolve_worker.c	2024-03-16 01:25:07
@@ -30,12 +30,16 @@
     Int *Bp = B->p ;
     Int *Bi = B->i ;
     Real *Bx = B->x ;
+#ifdef ZOMPLEX
     Real *Bz = B->z ;
+#endif
     Int *Bnz = B->nz ;
     bool packed = B->packed ;
 
     Real *B4x = B4->x ;
+#ifdef ZOMPLEX
     Real *B4z = B4->z ;
+#endif
 
     Int n = B4->nrow ;
 
@@ -78,13 +82,17 @@
     Int *Xp = X->p ;
     Int *Xi = X->i ;
     Real *Xx = X->x ;
+#ifdef ZOMPLEX
     Real *Xz = X->z ;
+#endif
     size_t px = (*xnz) ;
 
     size_t nzmax = X->nzmax ;
 
     Real *X4x = X4->x ;
+#ifdef ZOMPLEX
     Real *X4z = X4->z ;
+#endif
     Int n = X4->nrow ;
 
     //--------------------------------------------------------------------------
@@ -139,7 +147,9 @@
                         }
                         Xi = X->i ;
                         Xx = X->x ;
+#ifdef ZOMPLEX
                         Xz = X->z ;
+#endif
                     }
                     Xi [px] = i ;
                     ASSIGN (Xx, Xz, px, X4x, X4z, p) ;
@@ -180,7 +190,9 @@
     bool packed = B->packed ;
 
     Real *B4x = B4->x ;
+#ifdef ZOMPLEX
     Real *B4z = B4->z ;
+#endif
 
     Int n = B4->nrow ;
 
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/cholmod_ssmult.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/cholmod_ssmult.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/cholmod_ssmult.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/cholmod_ssmult.c	2024-03-16 01:25:07
@@ -84,7 +84,7 @@
     // check inputs
     //--------------------------------------------------------------------------
 
-    cholmod_sparse *C = NULL, *A2 = NULL, *B2 = NULL, *C2 = NULL ;
+    cholmod_sparse *C = NULL, *A2 = NULL, *B2 = NULL ;
 
     RETURN_IF_NULL_COMMON (NULL) ;
     RETURN_IF_NULL (A, NULL) ;
@@ -196,7 +196,6 @@
     Int ncol = B->ncol ;
 
     // get workspace
-    void *W = Common->Xwork ;   // size nrow, unused if values is false
     Int *Flag = Common->Flag ;  // size nrow, Flag [0..nrow-1] < mark on input
 
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_drop_worker.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_drop_worker.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_drop_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_drop_worker.c	2024-03-16 01:25:07
@@ -59,7 +59,9 @@
     Int *Ap = A->p ;
     Int *Ai = A->i ;
     Real *Ax = A->x ;
+#ifdef ZOMPLEX
     Real *Az = A->z ;
+#endif
     Int *Anz = A->nz ;
     bool packed = A->packed ;
     Int ncol = A->ncol ;
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_horzcat_worker.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_horzcat_worker.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_horzcat_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_horzcat_worker.c	2024-03-16 01:25:07
@@ -25,23 +25,35 @@
     Int *Ap  = A->p ;
     Int *Anz = A->nz ;
     Int *Ai  = A->i ;
+#ifndef PATTERN
     Real *Ax  = A->x ;
+#ifdef ZOMPLEX
     Real *Az  = A->z ;
+#endif
+#endif
     bool apacked = A->packed ;
     Int ancol = A->ncol ;
 
     Int *Bp  = B->p ;
     Int *Bnz = B->nz ;
     Int *Bi  = B->i ;
+#ifndef PATTERN
     Real *Bx  = B->x ;
+#ifdef ZOMPLEX
     Real *Bz  = B->z ;
+#endif
+#endif
     bool bpacked = B->packed ;
     Int bncol = B->ncol ;
 
     Int *Cp = C->p ;
     Int *Ci = C->i ;
+#ifndef PATTERN
     Real *Cx = C->x ;
+#ifdef ZOMPLEX
     Real *Cz = C->z ;
+#endif
+#endif
     Int ncol = C->ncol ;
 
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_norm_worker.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_norm_worker.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_norm_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_norm_worker.c	2024-03-16 01:25:07
@@ -36,7 +36,9 @@
     Int nrow = X->nrow ;
     Int d = X->d ;
     Real *Xx = X->x ;
+#ifdef ZOMPLEX
     Real *Xz = X->z ;
+#endif
 
     double xnorm = 0 ;
 
@@ -158,8 +160,12 @@
     Int *Ap = A->p ;
     Int *Ai = A->i ;
     Int *Anz = A->nz ;
+#ifndef PATTERN
     Real *Ax = A->x ;
+#ifdef ZOMPLEX
     Real *Az = A->z ;
+#endif
+#endif
     Int ncol = A->ncol ;
     Int nrow = A->nrow ;
     bool packed = A->packed ;
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_scale_worker.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_scale_worker.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_scale_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_scale_worker.c	2024-03-16 01:25:07
@@ -28,12 +28,16 @@
     Int  *Anz = A->nz ;
     Int  *Ai  = A->i ;
     Real *Ax  = A->x ;
+#ifdef ZOMPLEX
     Real *Az  = A->z ;
+#endif
     bool packed = A->packed ;
     Int ncol = A->ncol ;
 
     Real *Sx = S->x ;
+#ifdef ZOMPLEX
     Real *Sz = S->z ;
+#endif
 
     //--------------------------------------------------------------------------
     // scale the matrix
@@ -55,7 +59,9 @@
                 Int i = Ai [p] ;
                 // t = S (i) * A (i,j)
                 Real tx [2] ;
+#ifdef ZOMPLEX
                 Real tz [1] ;
+#endif
                 MULT (tx, tz, 0, Sx, Sz, i, Ax, Az, p) ;
                 // A (i,j) = t
                 ASSIGN (Ax, Az, p, tx, tz, 0) ;
@@ -74,7 +80,9 @@
         {
             // s = S (j)
             Real sx [2] ;
+#ifdef ZOMPLEX
             Real sz [1] ;
+#endif
             ASSIGN (sx, sz, 0, Sx, Sz, j) ;
 
             Int p = Ap [j] ;
@@ -83,7 +91,9 @@
             {
                 // t = A (i,j) * s
                 Real tx [2] ;
+#ifdef ZOMPLEX
                 Real tz [1] ;
+#endif
                 MULT (tx, tz, 0, Ax, Az, p, sx, sz, 0) ;
                 // A (i,j) = t
                 ASSIGN (Ax, Az, p, tx, tz, 0) ;
@@ -102,7 +112,9 @@
         {
             // s = S (j)
             Real sx [2] ;
+#ifdef ZOMPLEX
             Real sz [1] ;
+#endif
             ASSIGN (sx, sz, 0, Sx, Sz, j) ;
 
             Int p = Ap [j] ;
@@ -112,7 +124,9 @@
                 Int i = Ai [p] ;
                 // t = A (i,j) * S (i)
                 Real tx [2] ;
+#ifdef ZOMPLEX
                 Real tz [1] ;
+#endif
                 MULT (tx, tz, 0, Ax, Az, p, Sx, Sz, i) ;
                 // A (i,j) = s * t
                 MULT (Ax, Az, p, sx, sz, 0, tx, tz, 0) ;
@@ -129,7 +143,9 @@
 
         // s = S (0)
         Real sx [2] ;
+#ifdef ZOMPLEX
         Real sz [1] ;
+#endif
         ASSIGN (sx, sz, 0, Sx, Sz, 0) ;
 
         for (Int j = 0 ; j < ncol ; j++)
@@ -140,7 +156,9 @@
             {
                 // t = s * A (i,j)
                 Real tx [2] ;
+#ifdef ZOMPLEX
                 Real tz [1] ;
+#endif
                 MULT (tx, tz, 0, sx, sz, 0, Ax, Az, p) ;
                 // A (i,j) = t
                 ASSIGN (Ax, Az, p, tx, tz, 0) ;
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_sdmult_worker.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_sdmult_worker.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_sdmult_worker.c	2024-03-16 01:30:04
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_sdmult_worker.c	2024-03-16 01:25:07
@@ -55,28 +55,37 @@
     #endif
 
     size_t ny = transpose ? A->ncol : A->nrow ;        // required length of Y
+#ifdef ZOMPLEX
     size_t nx = transpose ? A->nrow : A->ncol ;        // required length of X
+#endif
 
-    Int nrow = A->nrow ;
     Int ncol = A->ncol ;
 
     Int *Ap  = A->p ;
     Int *Anz = A->nz ;
     Int *Ai  = A->i ;
     Real *Ax = A->x ;
+#ifdef ZOMPLEX
     Real *Az = A->z ;
+#endif
     bool packed = A->packed ;
 
     Real *Xx = X->x ;
+#ifdef ZOMPLEX
     Real *Xz = X->z ;
+#endif
     Real *Yx = Y->x ;
+#ifdef ZOMPLEX
     Real *Yz = Y->z ;
+#endif
 
     Int kcol = X->ncol ;
     size_t dy = Y->d ;
     size_t dx = X->d ;
     Real *w = W ;
+#ifdef ZOMPLEX
     Real *Wz = (W) ? W + 4*nx : W ;
+#endif
 
     //--------------------------------------------------------------------------
     // Y = beta * Y
@@ -120,7 +129,9 @@
     //--------------------------------------------------------------------------
 
     Yx = Y->x ;
+#ifdef ZOMPLEX
     Yz = Y->z ;
+#endif
     Int k = 0 ;
 
     if (A->stype == 0)
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_ssmult_worker.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_ssmult_worker.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_ssmult_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_ssmult_worker.c	2024-03-16 01:25:07
@@ -23,35 +23,51 @@
     // get inputs
     //--------------------------------------------------------------------------
 
-    Real *W = Common->Xwork ;
-
     Int *Ap  = A->p ;
     Int *Anz = A->nz ;
     Int *Ai  = A->i ;
+#ifndef PATTERN
     Real *Ax  = A->x ;
+#ifdef ZOMPLEX
     Real *Az  = A->z ;
+#endif
+#endif
     bool apacked = A->packed ;
 
     Int *Bp  = B->p ;
     Int *Bnz = B->nz ;
     Int *Bi  = B->i ;
+#ifndef PATTERN
     Real *Bx  = B->x ;
+#ifdef ZOMPLEX
     Real *Bz  = B->z ;
+#endif
+#endif
     bool bpacked = B->packed ;
 
     // get the size of C
+#ifdef ZOMPLEX
     Int nrow = A->nrow ;
+#endif
     Int ncol = B->ncol ;
 
     // get workspace
+#ifndef PATTERN
     Real *Wx = Common->Xwork ;  // size nrow, unused if C is pattern
+#ifdef ZOMPLEX
     Real *Wz = Wx + nrow ;      // only used for the zomplex case
+#endif
+#endif
     Int *Flag = Common->Flag ;  // size nrow, Flag [0..nrow-1] < mark on input
 
     Int *Cp = C->p ;
     Int *Ci = C->i ;
+#ifndef PATTERN
     Real *Cx = C->x ;
+#ifdef ZOMPLEX
     Real *Cz = C->z ;
+#endif
+#endif
 
     //--------------------------------------------------------------------------
     // C = A*B
@@ -77,8 +93,12 @@
             Int k = Bi [pb] ;
 
             // b = Bx [pb] ;
+#ifndef PATTERN
             Real bx [2] ;
+#ifdef ZOMPLEX
             Real bz [1] ;
+#endif
+#endif
             ASSIGN (bx, bz, 0, Bx, Bz, pb) ;
 
             // add the nonzero pattern of A(:,k) to the pattern of C(:,j)
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_submatrix_worker.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_submatrix_worker.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_submatrix_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_submatrix_worker.c	2024-03-16 01:25:07
@@ -29,14 +29,22 @@
     Int *Ap = A->p ;
     Int *Ai = A->i ;
     Int *Anz = A->nz ;
+#ifndef PATTERN
     Real *Ax = A->x ;
+#ifdef ZOMPLEX
     Real *Az = A->z ;
+#endif
+#endif
     bool packed = A->packed ;
 
     Int *Cp = C->p ;
     Int *Ci = C->i ;
+#ifndef PATTERN
     Real *Cx = C->x ;
+#ifdef ZOMPLEX
     Real *Cz = C->z ;
+#endif
+#endif
     Int cncol = C->ncol ;
 
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_vertcat_worker.c src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_vertcat_worker.c
--- src/SuiteSparse/CHOLMOD/MatrixOps/t_cholmod_vertcat_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/MatrixOps/t_cholmod_vertcat_worker.c	2024-03-16 01:25:07
@@ -25,22 +25,34 @@
     Int *Ap  = A->p ;
     Int *Anz = A->nz ;
     Int *Ai  = A->i ;
+#ifndef PATTERN
     Real *Ax  = A->x ;
+#ifdef ZOMPLEX
     Real *Az  = A->z ;
+#endif
+#endif
     bool apacked = A->packed ;
     Int anrow = A->nrow ;
 
     Int *Bp  = B->p ;
     Int *Bnz = B->nz ;
     Int *Bi  = B->i ;
+#ifndef PATTERN
     Real *Bx  = B->x ;
+#ifdef ZOMPLEX
     Real *Bz  = B->z ;
+#endif
+#endif
     bool bpacked = B->packed ;
 
     Int *Cp = C->p ;
     Int *Ci = C->i ;
+#ifndef PATTERN
     Real *Cx = C->x ;
+#ifdef ZOMPLEX
     Real *Cz = C->z ;
+#endif
+#endif
     Int ncol = C->ncol ;
 
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/Modify/cholmod_rowadd.c src/SuiteSparse-patched/CHOLMOD/Modify/cholmod_rowadd.c
--- src/SuiteSparse/CHOLMOD/Modify/cholmod_rowadd.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Modify/cholmod_rowadd.c	2024-03-16 01:25:07
@@ -136,7 +136,6 @@
     RETURN_IF_NULL (R, FALSE) ;
     RETURN_IF_XTYPE_INVALID (L, CHOLMOD_PATTERN, CHOLMOD_REAL, FALSE) ;
     RETURN_IF_XTYPE_INVALID (R, CHOLMOD_REAL, CHOLMOD_REAL, FALSE) ;
-    Int n = L->n ;
     Int k = kadd ;
     if (kadd >= L->n || k < 0)
     {
diff -ruN src/SuiteSparse/CHOLMOD/Modify/cholmod_rowdel.c src/SuiteSparse-patched/CHOLMOD/Modify/cholmod_rowdel.c
--- src/SuiteSparse/CHOLMOD/Modify/cholmod_rowdel.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Modify/cholmod_rowdel.c	2024-03-16 01:25:07
@@ -122,7 +122,6 @@
     RETURN_IF_NULL_COMMON (FALSE) ;
     RETURN_IF_NULL (L, FALSE) ;
     RETURN_IF_XTYPE_INVALID (L, CHOLMOD_PATTERN, CHOLMOD_REAL, FALSE) ;
-    Int n = L->n ;
     Int k = kdel ;
     if (kdel >= L->n || k < 0)
     {
diff -ruN src/SuiteSparse/CHOLMOD/Modify/t_cholmod_updown_worker.c src/SuiteSparse-patched/CHOLMOD/Modify/t_cholmod_updown_worker.c
--- src/SuiteSparse/CHOLMOD/Modify/t_cholmod_updown_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Modify/t_cholmod_updown_worker.c	2024-03-16 01:25:07
@@ -148,7 +148,9 @@
     double fl = 0 ;
     bool use_colmark = (colmark != NULL) ;
 
+#ifndef NDEBUG
     Int *ps1 = NULL ;
+#endif
     Int *ps2 = NULL ;
 
     //--------------------------------------------------------------------------
@@ -699,7 +701,9 @@
 
             if (nsets > 0)
             {
+#ifndef NDEBUG
                 ps1 = Set_ps1 [0] ;
+#endif
                 ps2 = Set_ps2 [0] ;
             }
 
diff -ruN src/SuiteSparse/CHOLMOD/Partition/cholmod_metis.c src/SuiteSparse-patched/CHOLMOD/Partition/cholmod_metis.c
--- src/SuiteSparse/CHOLMOD/Partition/cholmod_metis.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Partition/cholmod_metis.c	2024-03-16 01:25:07
@@ -578,7 +578,7 @@
     idx_t *Mp, *Mi, *Mperm, *Miperm ;
     cholmod_sparse *B ;
     Int i, j, n, nz, p, identity ;
-    idx_t nn, zero = 0 ;
+    idx_t nn ;
 
     RETURN_IF_NULL_COMMON (FALSE) ;
     RETURN_IF_NULL (A, FALSE) ;
diff -ruN src/SuiteSparse/CHOLMOD/Partition/cholmod_nesdis.c src/SuiteSparse-patched/CHOLMOD/Partition/cholmod_nesdis.c
--- src/SuiteSparse/CHOLMOD/Partition/cholmod_nesdis.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Partition/cholmod_nesdis.c	2024-03-16 01:25:07
@@ -681,8 +681,11 @@
 )
 {
 
-    Int n, mark, cj, j, sj, sn, p, i, snode, pstart, pdest, pend, nd_components,
+    Int mark, cj, j, sj, sn, p, i, snode, pstart, pdest, pend, nd_components,
         part, first, save_mark ;
+#ifndef NDEBUG
+    Int n ;
+#endif
     Int *Bp, *Bi, *Flag ;
 
     //--------------------------------------------------------------------------
@@ -702,7 +705,9 @@
 
     Bp = B->p ;
     Bi = B->i ;
+#ifndef NDEBUG
     n = B->nrow ;
+#endif
     ASSERT (cnode >= EMPTY && cnode < n) ;
     ASSERT (IMPLIES (cnode >= 0, Flag [cnode] < EMPTY)) ;
 
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/GKlib/gk_mkpqueue.h src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/GKlib/gk_mkpqueue.h
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/GKlib/gk_mkpqueue.h	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/GKlib/gk_mkpqueue.h	2024-03-16 01:25:07
@@ -11,6 +11,38 @@
 #ifndef _GK_MKPQUEUE_H
 #define _GK_MKPQUEUE_H
 
+#ifndef NDEBUG
+#define DO_CHECKHEAP\
+do {\
+  gk_idx_t i, j;\
+  size_t nnodes;\
+  gk_idx_t *locator;\
+  KVT *heap;\
+\
+  heap = queue->heap;\
+  locator = queue->locator;\
+  nnodes  = queue->nnodes;\
+\
+  if (nnodes == 0)\
+    return 1;\
+\
+  ASSERT(locator[heap[0].val] == 0);\
+  for (i=1; i<nnodes; i++) {\
+    ASSERT(locator[heap[i].val] == i);\
+    ASSERT(!KEY_LT(heap[i].key, heap[(i-1)/2].key));\
+  }\
+  for (i=1; i<nnodes; i++)\
+    ASSERT(!KEY_LT(heap[i].key, heap[0].key));\
+\
+  for (j=i=0; i<queue->maxnodes; i++) {\
+    if (locator[i] != -1)\
+      j++;\
+  }\
+  ASSERTP(j == nnodes, ("%jd %jd\n", (intmax_t)j, (intmax_t)nnodes));\
+} while (0)
+#else
+#define DO_CHECKHEAP
+#endif
 
 #define GK_MKPQUEUE(FPRFX, PQT, KVT, KT, VT, KVMALLOC, KMAX, KEY_LT)\
 /*************************************************************************/\
@@ -380,32 +412,7 @@
 /**************************************************************************/\
 int FPRFX ## CheckHeap(PQT *queue)\
 {\
-  gk_idx_t i, j;\
-  size_t nnodes;\
-  gk_idx_t *locator;\
-  KVT *heap;\
-\
-  heap    = queue->heap;\
-  locator = queue->locator;\
-  nnodes  = queue->nnodes;\
-\
-  if (nnodes == 0)\
-    return 1;\
-\
-  ASSERT(locator[heap[0].val] == 0);\
-  for (i=1; i<nnodes; i++) {\
-    ASSERT(locator[heap[i].val] == i);\
-    ASSERT(!KEY_LT(heap[i].key, heap[(i-1)/2].key));\
-  }\
-  for (i=1; i<nnodes; i++)\
-    ASSERT(!KEY_LT(heap[i].key, heap[0].key));\
-\
-  for (j=i=0; i<queue->maxnodes; i++) {\
-    if (locator[i] != -1)\
-      j++;\
-  }\
-  ASSERTP(j == nnodes, ("%jd %jd\n", (intmax_t)j, (intmax_t)nnodes));\
-\
+  DO_CHECKHEAP;\
   return 1;\
 }\
 
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/GKlib/mcore.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/GKlib/mcore.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/GKlib/mcore.c	2024-03-16 01:30:04
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/GKlib/mcore.c	2024-03-16 01:28:20
@@ -71,6 +71,7 @@
   if (mcore == NULL)
     return;
 
+#ifndef NDEBUG
   if (showstats)
     printf("\n gk_mcore statistics\n" 
            "           coresize: %12zu         nmops: %12zu  cmop: %6zu\n"
@@ -89,6 +90,7 @@
            " cur_callocs: %6zu  cur_hallocs: %6zu cmop: %6zu\n",
            mcore->cur_callocs,  mcore->cur_hallocs, mcore->cmop);
   }
+#endif
 
   gk_free((void **)&mcore->core, &mcore->mops, &mcore, LTERM);
 
@@ -107,6 +109,7 @@
   if (mcore == NULL)
     return;
 
+#ifndef NDEBUG
   if (showstats)
     printf("\n gk_mcore statistics\n" 
            "         nmops: %12zu  cmop: %6zu\n"
@@ -125,6 +128,7 @@
            " cur_hallocs: %6zu cmop: %6zu\n",
            mcore->cur_hallocs, mcore->cmop);
   }
+#endif
 
   free(mcore->mops);
   free(mcore);
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/GKlib/memory.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/GKlib/memory.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/GKlib/memory.c	2024-03-16 01:30:04
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/GKlib/memory.c	2024-03-16 01:28:20
@@ -152,8 +152,10 @@
   ptr = (void *)malloc(nbytes);
 
   if (ptr == NULL) {
+#ifndef NDEBUG
     fprintf(stderr, "   Current memory used:  %10zu bytes\n", gk_GetCurMemoryUsed());
     fprintf(stderr, "   Maximum memory used:  %10zu bytes\n", gk_GetMaxMemoryUsed());
+#endif
     gk_errexit(SIGMEM, "***Memory allocation failed for %s. Requested size: %zu bytes", 
         msg, nbytes);
     return NULL;
@@ -187,8 +189,10 @@
   ptr = (void *)realloc(oldptr, nbytes);
 
   if (ptr == NULL) {
+#ifndef NDEBUG
     fprintf(stderr, "   Maximum memory used: %10zu bytes\n", gk_GetMaxMemoryUsed());
     fprintf(stderr, "   Current memory used: %10zu bytes\n", gk_GetCurMemoryUsed());
+#endif
     gk_errexit(SIGMEM, "***Memory realloc failed for %s. " "Requested size: %zu bytes", 
         msg, nbytes);
     return NULL;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/balance.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/balance.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/balance.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/balance.c	2024-03-16 01:25:07
@@ -40,7 +40,7 @@
 **************************************************************************/
 void Bnd2WayBalance(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts)
 {
-  idx_t i, ii, j, k, kwgt, nvtxs, nbnd, nswaps, from, to, pass, me, tmp;
+  idx_t i, ii, j, k, kwgt, nvtxs, nbnd, nswaps, from, to, tmp;
   idx_t *xadj, *vwgt, *adjncy, *adjwgt, *where, *id, *ed, *bndptr, *bndind, *pwgts;
   idx_t *moved, *perm;
   rpq_t *queue;
@@ -168,7 +168,7 @@
 **************************************************************************/
 void General2WayBalance(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts)
 {
-  idx_t i, ii, j, k, kwgt, nvtxs, nbnd, nswaps, from, to, pass, me, tmp;
+  idx_t i, ii, j, k, kwgt, nvtxs, nbnd, nswaps, from, to, tmp;
   idx_t *xadj, *vwgt, *adjncy, *adjwgt, *where, *id, *ed, *bndptr, *bndind, *pwgts;
   idx_t *moved, *perm;
   rpq_t *queue;
@@ -280,8 +280,8 @@
 **************************************************************************/
 void McGeneral2WayBalance(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts)
 {
-  idx_t i, ii, j, k, l, kwgt, nvtxs, ncon, nbnd, nswaps, from, to, pass, 
-        me, limit, tmp, cnum;
+  idx_t i, ii, j, k, l, kwgt, nvtxs, ncon, nbnd, nswaps, from, to, 
+        limit, tmp, cnum;
   idx_t *xadj, *adjncy, *vwgt, *adjwgt, *where, *pwgts, *id, *ed, *bndptr, *bndind;
   idx_t *moved, *swaps, *perm, *qnum, *qsizes;
   idx_t higain, mincut, newcut, mincutorder;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/coarsen.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/coarsen.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/coarsen.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/coarsen.c	2024-03-16 01:25:07
@@ -21,7 +21,7 @@
 /*************************************************************************/
 graph_t *CoarsenGraph(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, eqewgts, level=0;
+  idx_t i, eqewgts;
 
   IFSET(ctrl->dbglvl, METIS_DBG_TIME, gk_startcputimer(ctrl->CoarsenTmr));
 
@@ -62,7 +62,6 @@
 
     graph = graph->coarser;
     eqewgts = 0;
-    level++;
 
     ASSERT(CheckGraph(graph, 0, 1));
 
@@ -148,8 +147,8 @@
 /**************************************************************************/
 idx_t Match_RM(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, pi, ii, j, jj, jjinc, k, nvtxs, ncon, cnvtxs, maxidx, last_unmatched;
-  idx_t *xadj, *vwgt, *adjncy, *adjwgt, *maxvwgt;
+  idx_t i, pi, j, k, nvtxs, ncon, cnvtxs, maxidx, last_unmatched;
+  idx_t *xadj, *vwgt, *adjncy, *maxvwgt;
   idx_t *match, *cmap, *perm;
   size_t nunmatched=0;
 
@@ -162,7 +161,6 @@
   xadj   = graph->xadj;
   vwgt   = graph->vwgt;
   adjncy = graph->adjncy;
-  adjwgt = graph->adjwgt;
   cmap   = graph->cmap;
 
   maxvwgt  = ctrl->maxvwgt;
@@ -275,7 +273,7 @@
 /**************************************************************************/
 idx_t Match_SHEM(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, pi, ii, j, jj, jjinc, k, nvtxs, ncon, cnvtxs, maxidx, maxwgt, 
+  idx_t i, pi, j, k, nvtxs, ncon, cnvtxs, maxidx, maxwgt, 
         last_unmatched, avgdegree;
   idx_t *xadj, *vwgt, *adjncy, *adjwgt, *maxvwgt;
   idx_t *match, *cmap, *degrees, *perm, *tperm;
@@ -437,7 +435,7 @@
 idx_t Match_2HopAny(ctrl_t *ctrl, graph_t *graph, idx_t *perm, idx_t *match, 
           idx_t cnvtxs, size_t *r_nunmatched, size_t maxdegree)
 {
-  idx_t i, pi, ii, j, jj, k, nvtxs;
+  idx_t i, pi, j, jj, nvtxs;
   idx_t *xadj, *adjncy, *colptr, *rowind;
   idx_t *cmap;
   size_t nunmatched;
@@ -516,7 +514,7 @@
 idx_t Match_2HopAll(ctrl_t *ctrl, graph_t *graph, idx_t *perm, idx_t *match, 
           idx_t cnvtxs, size_t *r_nunmatched, size_t maxdegree)
 {
-  idx_t i, pi, pk, ii, j, jj, k, nvtxs, mask, idegree;
+  idx_t i, pi, pk, j, jj, k, nvtxs, mask, idegree;
   idx_t *xadj, *adjncy;
   idx_t *cmap, *mark;
   ikv_t *keys;
@@ -621,7 +619,7 @@
 void CreateCoarseGraph(ctrl_t *ctrl, graph_t *graph, idx_t cnvtxs, 
          idx_t *match)
 {
-  idx_t j, jj, k, kk, l, m, istart, iend, nvtxs, nedges, ncon, cnedges, 
+  idx_t j, jj, k, kk, m, istart, iend, nvtxs, nedges, ncon, cnedges, 
         v, u, mask, dovsize;
   idx_t *xadj, *vwgt, *vsize, *adjncy, *adjwgt;
   idx_t *cmap, *htable;
@@ -932,7 +930,7 @@
 void CreateCoarseGraphPerm(ctrl_t *ctrl, graph_t *graph, idx_t cnvtxs, 
          idx_t *match, idx_t *perm)
 {
-  idx_t i, j, jj, k, kk, l, m, istart, iend, nvtxs, nedges, ncon, cnedges, 
+  idx_t i, j, jj, k, kk, m, istart, iend, nvtxs, nedges, ncon, cnedges, 
         v, u, mask, dovsize;
   idx_t *xadj, *vwgt, *vsize, *adjncy, *adjwgt;
   idx_t *cmap, *htable;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/compress.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/compress.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/compress.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/compress.c	2024-03-16 01:25:07
@@ -151,7 +151,7 @@
              idx_t *vwgt, idx_t *iperm, real_t factor)
 {
   idx_t i, j, k, l, nlarge, pnvtxs, pnedges;
-  idx_t *pxadj, *padjncy, *padjwgt, *pvwgt;
+  idx_t *pxadj, *padjncy, *pvwgt;
   idx_t *perm;
   graph_t *graph=NULL;
 
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/contig.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/contig.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/contig.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/contig.c	2024-03-16 01:25:07
@@ -32,7 +32,7 @@
 idx_t FindPartitionInducedComponents(graph_t *graph, idx_t *where, 
           idx_t *cptr, idx_t *cind)
 {
-  idx_t i, ii, j, jj, k, me=0, nvtxs, first, last, nleft, ncmps;
+  idx_t i, j, k, me=0, nvtxs, first, last, nleft, ncmps;
   idx_t *xadj, *adjncy;
   idx_t *touched, *perm, *todo;
   idx_t mustfree_ccsr=0, mustfree_where=0;
@@ -267,7 +267,7 @@
 idx_t FindSepInducedComponents(ctrl_t *ctrl, graph_t *graph, idx_t *cptr, 
           idx_t *cind)
 {
-  idx_t i, j, k, nvtxs, first, last, nleft, ncmps, wgt;
+  idx_t i, j, k, nvtxs, first, last, nleft, ncmps;
   idx_t *xadj, *adjncy, *where, *touched, *queue;
 
   nvtxs  = graph->nvtxs;
@@ -335,14 +335,13 @@
 /*************************************************************************/
 void EliminateComponents(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, ii, j, jj, k, me, nparts, nvtxs, ncon, ncmps, other, 
+  idx_t i, ii, j, jj, me, nparts, nvtxs, ncon, ncmps,
         ncand, target;
   idx_t *xadj, *adjncy, *vwgt, *adjwgt, *where, *pwgts;
   idx_t *cptr, *cind, *cpvec, *pcptr, *pcind, *cwhere;
   idx_t cid, bestcid, *cwgt, *bestcwgt;
   idx_t ntodo, oldntodo, *todo;
   rkv_t *cand;
-  real_t *tpwgts;
   idx_t *vmarker=NULL, *pmarker=NULL, *modind=NULL;  /* volume specific work arrays */
 
   WCOREPUSH;
@@ -358,7 +357,6 @@
   pwgts = graph->pwgts;
 
   nparts = ctrl->nparts;
-  tpwgts = ctrl->tpwgts;
 
   cptr = iwspacemalloc(ctrl, nvtxs+1);
   cind = iwspacemalloc(ctrl, nvtxs);
@@ -531,12 +529,11 @@
 void MoveGroupContigForCut(ctrl_t *ctrl, graph_t *graph, idx_t to, idx_t gid, 
          idx_t *ptr, idx_t *ind)
 {
-  idx_t i, ii, iii, j, jj, k, l, nvtxs, nbnd, from, me;
+  idx_t i, ii, iii, j, k, nbnd, from, me;
   idx_t *xadj, *adjncy, *adjwgt, *where, *bndptr, *bndind;
   ckrinfo_t *myrinfo;
   cnbr_t *mynbrs;
 
-  nvtxs  = graph->nvtxs;
   xadj   = graph->xadj;
   adjncy = graph->adjncy;
   adjwgt = graph->adjwgt;
@@ -602,12 +599,11 @@
          idx_t *ptr, idx_t *ind, idx_t *vmarker, idx_t *pmarker, 
          idx_t *modind)
 {
-  idx_t i, ii, iii, j, jj, k, l, nvtxs, from, me, other, xgain;
+  idx_t i, ii, iii, j, k, l, from, other, xgain;
   idx_t *xadj, *vsize, *adjncy, *where;
   vkrinfo_t *myrinfo, *orinfo;
   vnbr_t *mynbrs, *onbrs;
 
-  nvtxs  = graph->nvtxs;
   xadj   = graph->xadj;
   vsize  = graph->vsize;
   adjncy = graph->adjncy;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/debug.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/debug.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/debug.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/debug.c	2024-03-16 01:28:20
@@ -47,7 +47,7 @@
 /*************************************************************************/
 idx_t ComputeVolume(graph_t *graph, idx_t *where)
 {
-  idx_t i, j, k, me, nvtxs, nparts, totalv;
+  idx_t i, j, k, nvtxs, nparts, totalv;
   idx_t *xadj, *adjncy, *vsize, *marker;
 
 
@@ -106,7 +106,9 @@
 
   maxcut = cuts[iargmax(nparts, cuts)];
 
+#ifndef NDEBUG
   printf("%zu => %"PRIDX"\n", iargmax(nparts, cuts), maxcut);
+#endif
 
   gk_free((void **)&cuts, LTERM);
 
@@ -120,6 +122,7 @@
 /*************************************************************************/
 idx_t CheckBnd(graph_t *graph) 
 {
+#ifndef NDEBUG
   idx_t i, j, nvtxs, nbnd;
   idx_t *xadj, *adjncy, *where, *bndptr, *bndind;
 
@@ -145,6 +148,7 @@
   }
 
   ASSERTP(nbnd == graph->nbnd, ("%"PRIDX" %"PRIDX"\n", nbnd, graph->nbnd));
+#endif
 
   return 1;
 }
@@ -157,6 +161,7 @@
 /*************************************************************************/
 idx_t CheckBnd2(graph_t *graph) 
 {
+#ifndef NDEBUG
   idx_t i, j, nvtxs, nbnd, id, ed;
   idx_t *xadj, *adjncy, *where, *bndptr, *bndind;
 
@@ -183,6 +188,7 @@
   }
 
   ASSERTP(nbnd == graph->nbnd, ("%"PRIDX" %"PRIDX"\n", nbnd, graph->nbnd));
+#endif
 
   return 1;
 }
@@ -194,6 +200,7 @@
 /*************************************************************************/
 idx_t CheckNodeBnd(graph_t *graph, idx_t onbnd) 
 {
+#ifndef NDEBUG
   idx_t i, j, nvtxs, nbnd;
   idx_t *xadj, *adjncy, *where, *bndptr, *bndind;
 
@@ -219,6 +226,7 @@
       ASSERTP(bndptr[i] != -1, ("%"PRIDX" %"PRIDX"\n", i, bndptr[i]));
     }
   }
+#endif
 
   return 1;
 }
@@ -231,6 +239,7 @@
 /*************************************************************************/
 idx_t CheckRInfo(ctrl_t *ctrl, ckrinfo_t *rinfo)
 {
+#ifndef NDEBUG
   idx_t i, j;
   cnbr_t *nbrs;
 
@@ -242,6 +251,7 @@
           ("%"PRIDX" %"PRIDX" %"PRIDX" %"PRIDX"\n", 
            i, j, nbrs[i].pid, nbrs[j].pid));
   }
+#endif
 
   return 1;
 }
@@ -254,15 +264,14 @@
 /*************************************************************************/
 idx_t CheckNodePartitionParams(graph_t *graph)
 {
-  idx_t i, j, k, l, nvtxs, me, other;
-  idx_t *xadj, *adjncy, *adjwgt, *vwgt, *where;
+  idx_t i, j, nvtxs, me, other;
+  idx_t *xadj, *adjncy, *vwgt, *where;
   idx_t edegrees[2], pwgts[3];
 
   nvtxs  = graph->nvtxs;
   xadj   = graph->xadj;
   vwgt   = graph->vwgt;
   adjncy = graph->adjncy;
-  adjwgt = graph->adjwgt;
   where  = graph->where;
 
   /*------------------------------------------------------------
@@ -308,6 +317,7 @@
 /*************************************************************************/
 idx_t IsSeparable(graph_t *graph)
 {
+#ifndef NDEBUG
   idx_t i, j, nvtxs, other;
   idx_t *xadj, *adjncy, *where;
 
@@ -327,6 +337,7 @@
            xadj[adjncy[j]+1]-xadj[adjncy[j]]));
     }
   }
+#endif
 
   return 1;
 }
@@ -338,8 +349,8 @@
 /*************************************************************************/
 void CheckKWayVolPartitionParams(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, ii, j, k, kk, l, nvtxs, nbnd, mincut, minvol, me, other, pid;
-  idx_t *xadj, *vsize, *adjncy, *pwgts, *where, *bndind, *bndptr;
+  idx_t i, ii, j, k, kk, nvtxs, me, other, pid;
+  idx_t *xadj, *vsize, *adjncy, *where;
   vkrinfo_t *rinfo, *myrinfo, *orinfo, tmprinfo;
   vnbr_t *mynbrs, *onbrs, *tmpnbrs;
 
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/fm.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/fm.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/fm.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/fm.c	2024-03-16 01:25:07
@@ -28,7 +28,7 @@
 /*************************************************************************/
 void FM_2WayCutRefine(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts, idx_t niter)
 {
-  idx_t i, ii, j, k, kwgt, nvtxs, nbnd, nswaps, from, to, pass, me, limit, tmp;
+  idx_t i, ii, j, k, kwgt, nvtxs, nbnd, nswaps, from, to, pass, limit, tmp;
   idx_t *xadj, *vwgt, *adjncy, *adjwgt, *where, *id, *ed, *bndptr, *bndind, *pwgts;
   idx_t *moved, *swaps, *perm;
   rpq_t *queues[2];
@@ -207,7 +207,7 @@
 void FM_Mc2WayCutRefine(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts, idx_t niter)
 {
   idx_t i, ii, j, k, l, kwgt, nvtxs, ncon, nbnd, nswaps, from, to, pass, 
-        me, limit, tmp, cnum;
+        limit, tmp, cnum;
   idx_t *xadj, *adjncy, *vwgt, *adjwgt, *pwgts, *where, *id, *ed, 
         *bndptr, *bndind;
   idx_t *moved, *swaps, *perm, *qnum;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/graph.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/graph.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/graph.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/graph.c	2024-03-16 01:25:07
@@ -17,8 +17,7 @@
 graph_t *SetupGraph(ctrl_t *ctrl, idx_t nvtxs, idx_t ncon, idx_t *xadj, 
              idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt) 
 {
-  idx_t i, j, k, sum;
-  real_t *nvwgt;
+  idx_t i, j;
   graph_t *graph;
 
   /* allocate the graph and fill in the fields */
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/initpart.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/initpart.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/initpart.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/initpart.c	2024-03-16 01:25:07
@@ -114,18 +114,15 @@
 void RandomBisection(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts, 
          idx_t niparts)
 {
-  idx_t i, ii, j, k, nvtxs, pwgts[2], zeromaxpwgt, from, me, 
-        bestcut=0, icut, mincut, inbfs;
-  idx_t *xadj, *vwgt, *adjncy, *adjwgt, *where;
+  idx_t i, ii, nvtxs, pwgts[2], zeromaxpwgt,
+        bestcut=0, inbfs;
+  idx_t *vwgt, *where;
   idx_t *perm, *bestwhere;
 
   WCOREPUSH;
 
   nvtxs  = graph->nvtxs;
-  xadj   = graph->xadj;
   vwgt   = graph->vwgt;
-  adjncy = graph->adjncy;
-  adjwgt = graph->adjwgt;
 
   Allocate2WayPartitionMemory(ctrl, graph);
   where = graph->where;
@@ -191,9 +188,9 @@
 {
   idx_t i, j, k, nvtxs, drain, nleft, first, last, 
         pwgts[2], oneminpwgt, onemaxpwgt, 
-        from, me, bestcut=0, icut, mincut, inbfs;
-  idx_t *xadj, *vwgt, *adjncy, *adjwgt, *where;
-  idx_t *queue, *touched, *gain, *bestwhere;
+        bestcut=0, inbfs;
+  idx_t *xadj, *vwgt, *adjncy, *where;
+  idx_t *queue, *touched, *bestwhere;
 
   WCOREPUSH;
 
@@ -201,7 +198,6 @@
   xadj   = graph->xadj;
   vwgt   = graph->vwgt;
   adjncy = graph->adjncy;
-  adjwgt = graph->adjwgt;
 
   Allocate2WayPartitionMemory(ctrl, graph);
   where = graph->where;
@@ -325,7 +321,7 @@
 void McRandomBisection(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts, 
          idx_t niparts)
 {
-  idx_t i, ii, j, k, nvtxs, ncon, from, bestcut=0, mincut, inbfs, qnum;
+  idx_t i, ii, nvtxs, ncon, bestcut=0, inbfs, qnum;
   idx_t *bestwhere, *where, *perm, *counts;
   idx_t *vwgt;
 
@@ -385,7 +381,7 @@
 void McGrowBisection(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts, 
          idx_t niparts)
 {
-  idx_t i, j, k, nvtxs, ncon, from, bestcut=0, mincut, inbfs;
+  idx_t nvtxs, bestcut=0, inbfs;
   idx_t *bestwhere, *where;
 
   WCOREPUSH;
@@ -434,9 +430,9 @@
          idx_t niparts)
 {
   idx_t i, j, k, nvtxs, drain, nleft, first, last, pwgts[2], oneminpwgt, 
-        onemaxpwgt, from, me, bestcut=0, icut, mincut, inbfs;
-  idx_t *xadj, *vwgt, *adjncy, *adjwgt, *where, *bndind;
-  idx_t *queue, *touched, *gain, *bestwhere;
+        onemaxpwgt, bestcut=0, inbfs;
+  idx_t *xadj, *vwgt, *adjncy, *where, *bndind;
+  idx_t *queue, *touched, *bestwhere;
 
   WCOREPUSH;
 
@@ -444,7 +440,6 @@
   xadj   = graph->xadj;
   vwgt   = graph->vwgt;
   adjncy = graph->adjncy;
-  adjwgt = graph->adjwgt;
 
   bestwhere = iwspacemalloc(ctrl, nvtxs);
   queue     = iwspacemalloc(ctrl, nvtxs);
@@ -570,7 +565,7 @@
 void GrowBisectionNode2(ctrl_t *ctrl, graph_t *graph, real_t *ntpwgts, 
          idx_t niparts)
 {
-  idx_t i, j, k, nvtxs, bestcut=0, mincut, inbfs;
+  idx_t i, j, nvtxs, bestcut=0, inbfs;
   idx_t *xadj, *where, *bndind, *bestwhere;
 
   WCOREPUSH;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/kmetis.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/kmetis.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/kmetis.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/kmetis.c	2024-03-16 01:25:07
@@ -102,10 +102,9 @@
 /*************************************************************************/
 idx_t MlevelKWayPartitioning(ctrl_t *ctrl, graph_t *graph, idx_t *part)
 {
-  idx_t i, j, objval=0, curobj=0, bestobj=0;
+  idx_t i, objval=0, curobj=0, bestobj=0;
   real_t curbal=0.0, bestbal=0.0;
   graph_t *cgraph;
-  int status;
 
 
   for (i=0; i<ctrl->ncuts; i++) {
@@ -171,7 +170,10 @@
 /*************************************************************************/
 void InitKWayPartitioning(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, ntrials, options[METIS_NOPTIONS], curobj=0, bestobj=0;
+  idx_t i, options[METIS_NOPTIONS], curobj=0;
+#ifdef XXX
+  idx_t ntrials, bestobj=0;
+#endif
   idx_t *bestwhere=NULL;
   real_t *ubvec=NULL;
   int status;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/kwayfm.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/kwayfm.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/kwayfm.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/kwayfm.c	2024-03-16 01:25:07
@@ -61,12 +61,12 @@
          real_t ffactor, idx_t omode)
 {
   /* Common variables to all types of kway-refinement/balancing routines */
-  idx_t i, ii, iii, j, k, l, pass, nvtxs, nparts, gain; 
+  idx_t i, ii, iii, j, k, pass, nvtxs, nparts, gain; 
   idx_t from, me, to, oldcut, vwgt;
   idx_t *xadj, *adjncy, *adjwgt;
   idx_t *where, *pwgts, *perm, *bndptr, *bndind, *minwgt, *maxwgt, *itpwgts;
   idx_t nmoved, nupd, *vstatus, *updptr, *updind;
-  idx_t maxndoms, *safetos=NULL, *nads=NULL, *doms=NULL, **adids=NULL, **adwgts=NULL;
+  idx_t maxndoms, *safetos=NULL, *nads=NULL, *doms=NULL, **adids=NULL;
   idx_t *bfslvl=NULL, *bfsind=NULL, *bfsmrk=NULL;
   idx_t bndtype = (omode == OMODE_REFINE ? BNDTYPE_REFINE : BNDTYPE_BALANCE);
 
@@ -118,7 +118,6 @@
 
     nads    = ctrl->nads;
     adids   = ctrl->adids;
-    adwgts  = ctrl->adwgts;
     doms    = iset(nparts, 0, ctrl->pvec1);
   }
 
@@ -371,12 +370,12 @@
          real_t ffactor, idx_t omode)
 {
   /* Common variables to all types of kway-refinement/balancing routines */
-  idx_t i, ii, iii, j, k, l, pass, nvtxs, nparts, gain; 
+  idx_t i, ii, iii, j, k, pass, nvtxs, nparts, gain; 
   idx_t from, me, to, oldcut, vwgt;
   idx_t *xadj, *adjncy;
-  idx_t *where, *pwgts, *perm, *bndptr, *bndind, *minwgt, *maxwgt, *itpwgts;
+  idx_t *where, *pwgts, *perm, *bndind, *minwgt, *maxwgt, *itpwgts;
   idx_t nmoved, nupd, *vstatus, *updptr, *updind;
-  idx_t maxndoms, *safetos=NULL, *nads=NULL, *doms=NULL, **adids=NULL, **adwgts=NULL;
+  idx_t maxndoms, *safetos=NULL, *nads=NULL, *doms=NULL, **adids=NULL;
   idx_t *bfslvl=NULL, *bfsind=NULL, *bfsmrk=NULL;
   idx_t bndtype = (omode == OMODE_REFINE ? BNDTYPE_REFINE : BNDTYPE_BALANCE);
 
@@ -393,7 +392,6 @@
   nvtxs  = graph->nvtxs;
   xadj   = graph->xadj;
   adjncy = graph->adjncy;
-  bndptr = graph->bndptr;
   bndind = graph->bndind;
   where  = graph->where;
   pwgts  = graph->pwgts;
@@ -425,7 +423,6 @@
 
     nads    = ctrl->nads;
     adids   = ctrl->adids;
-    adwgts  = ctrl->adwgts;
     doms    = iset(nparts, 0, ctrl->pvec1);
   }
 
@@ -685,12 +682,12 @@
          real_t ffactor, idx_t omode)
 {
   /* Common variables to all types of kway-refinement/balancing routines */
-  idx_t i, ii, iii, j, k, l, pass, nvtxs, ncon, nparts, gain; 
+  idx_t i, ii, iii, j, k, pass, nvtxs, ncon, nparts, gain; 
   idx_t from, me, to, cto, oldcut;
   idx_t *xadj, *vwgt, *adjncy, *adjwgt;
   idx_t *where, *pwgts, *perm, *bndptr, *bndind, *minwgt, *maxwgt;
   idx_t nmoved, nupd, *vstatus, *updptr, *updind;
-  idx_t maxndoms, *safetos=NULL, *nads=NULL, *doms=NULL, **adids=NULL, **adwgts=NULL;
+  idx_t maxndoms, *safetos=NULL, *nads=NULL, *doms=NULL, **adids=NULL;
   idx_t *bfslvl=NULL, *bfsind=NULL, *bfsmrk=NULL;
   idx_t bndtype = (omode == OMODE_REFINE ? BNDTYPE_REFINE : BNDTYPE_BALANCE);
   real_t *ubfactors, *pijbm;
@@ -765,7 +762,6 @@
 
     nads    = ctrl->nads;
     adids   = ctrl->adids;
-    adwgts  = ctrl->adwgts;
     doms    = iset(nparts, 0, ctrl->pvec1);
   }
 
@@ -1027,12 +1023,12 @@
          real_t ffactor, idx_t omode)
 {
   /* Common variables to all types of kway-refinement/balancing routines */
-  idx_t i, ii, iii, j, k, l, pass, nvtxs, ncon, nparts, gain; 
+  idx_t i, ii, iii, j, k, pass, nvtxs, ncon, nparts, gain; 
   idx_t from, me, to, cto, oldcut;
   idx_t *xadj, *vwgt, *adjncy;
-  idx_t *where, *pwgts, *perm, *bndptr, *bndind, *minwgt, *maxwgt;
+  idx_t *where, *pwgts, *perm, *bndind, *minwgt, *maxwgt;
   idx_t nmoved, nupd, *vstatus, *updptr, *updind;
-  idx_t maxndoms, *safetos=NULL, *nads=NULL, *doms=NULL, **adids=NULL, **adwgts=NULL;
+  idx_t maxndoms, *safetos=NULL, *nads=NULL, *doms=NULL, **adids=NULL;
   idx_t *bfslvl=NULL, *bfsind=NULL, *bfsmrk=NULL;
   idx_t bndtype = (omode == OMODE_REFINE ? BNDTYPE_REFINE : BNDTYPE_BALANCE);
   real_t *ubfactors, *pijbm;
@@ -1053,7 +1049,6 @@
   xadj   = graph->xadj;
   vwgt   = graph->vwgt;
   adjncy = graph->adjncy;
-  bndptr = graph->bndptr;
   bndind = graph->bndind;
   where  = graph->where;
   pwgts  = graph->pwgts;
@@ -1104,7 +1099,6 @@
 
     nads    = ctrl->nads;
     adids   = ctrl->adids;
-    adwgts  = ctrl->adwgts;
     doms    = iset(nparts, 0, ctrl->pvec1);
   }
 
@@ -1462,7 +1456,7 @@
          idx_t *updind, idx_t bndtype, idx_t *vmarker, idx_t *pmarker, 
          idx_t *modind)
 {
-  idx_t i, ii, iii, j, jj, k, kk, l, u, nmod, other, me, myidx; 
+  idx_t i, ii, iii, j, jj, k, kk, u, nmod, other, me, myidx; 
   idx_t *xadj, *vsize, *adjncy, *where;
   vkrinfo_t *myrinfo, *orinfo;
   vnbr_t *mynbrs, *onbrs;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/kwayrefine.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/kwayrefine.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/kwayrefine.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/kwayrefine.c	2024-03-16 01:25:07
@@ -148,7 +148,7 @@
 /**************************************************************************/
 void ComputeKWayPartitionParams(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, j, k, l, nvtxs, ncon, nparts, nbnd, mincut, me, other;
+  idx_t i, j, k, nvtxs, ncon, nparts, nbnd, mincut, me, other;
   idx_t *xadj, *vwgt, *adjncy, *adjwgt, *pwgts, *where, *bndind, *bndptr;
 
   nparts = ctrl->nparts;
@@ -561,8 +561,8 @@
 /*************************************************************************/
 void ComputeKWayVolGains(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, ii, j, k, l, nvtxs, nparts, me, other, pid; 
-  idx_t *xadj, *vsize, *adjncy, *adjwgt, *where, 
+  idx_t i, ii, j, k, nvtxs, nparts, me, other;
+  idx_t *xadj, *vsize, *adjncy, *where, 
         *bndind, *bndptr, *ophtable;
   vkrinfo_t *myrinfo, *orinfo;
   vnbr_t *mynbrs, *onbrs;
@@ -575,7 +575,6 @@
   xadj   = graph->xadj;
   vsize  = graph->vsize;
   adjncy = graph->adjncy;
-  adjwgt = graph->adjwgt;
 
   where  = graph->where;
   bndind = graph->bndind;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/minconn.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/minconn.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/minconn.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/minconn.c	2024-03-16 01:28:20
@@ -18,16 +18,13 @@
 void ComputeSubDomainGraph(ctrl_t *ctrl, graph_t *graph)
 {
   idx_t i, ii, j, pid, other, nparts, nvtxs, nnbrs;
-  idx_t *xadj, *adjncy, *adjwgt, *where;
+  idx_t *where;
   idx_t *pptr, *pind;
   idx_t nads=0, *vadids, *vadwgts;
 
   WCOREPUSH;
 
   nvtxs  = graph->nvtxs;
-  xadj   = graph->xadj;
-  adjncy = graph->adjncy;
-  adjwgt = graph->adjwgt;
   where  = graph->where;
 
   nparts = ctrl->nparts; 
@@ -264,10 +261,12 @@
     avg   = total/nparts;
     max   = nads[iargmax(nparts, nads)];
 
+#ifndef NDEBUG
     IFSET(ctrl->dbglvl, METIS_DBG_CONNINFO, 
           printf("Adjacent Subdomain Stats: Total: %3"PRIDX", "
                  "Max: %3"PRIDX"[%zu], Avg: %3"PRIDX"\n", 
                  total, max, iargmax(nparts, nads), avg)); 
+#endif
 
     if (max < badfactor*avg)
       break;
@@ -477,12 +476,11 @@
 void MoveGroupMinConnForCut(ctrl_t *ctrl, graph_t *graph, idx_t to, idx_t nind, 
          idx_t *ind)
 {
-  idx_t i, ii, j, jj, k, l, nvtxs, nbnd, from, me;
+  idx_t i, ii, j, k, nbnd, from, me;
   idx_t *xadj, *adjncy, *adjwgt, *where, *bndptr, *bndind;
   ckrinfo_t *myrinfo;
   cnbr_t *mynbrs;
 
-  nvtxs  = graph->nvtxs;
   xadj   = graph->xadj;
   adjncy = graph->adjncy;
   adjwgt = graph->adjwgt;
@@ -561,12 +559,11 @@
 void MoveGroupMinConnForVol(ctrl_t *ctrl, graph_t *graph, idx_t to, idx_t nind, 
          idx_t *ind, idx_t *vmarker, idx_t *pmarker, idx_t *modind)
 {
-  idx_t i, ii, j, jj, k, l, nvtxs, from, me, other, xgain, ewgt;
+  idx_t i, ii, j, k, l, from, me, other, xgain, ewgt;
   idx_t *xadj, *vsize, *adjncy, *where;
   vkrinfo_t *myrinfo, *orinfo;
   vnbr_t *mynbrs, *onbrs;
 
-  nvtxs  = graph->nvtxs;
   xadj   = graph->xadj;
   vsize  = graph->vsize;
   adjncy = graph->adjncy;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/ometis.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/ometis.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/ometis.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/ometis.c	2024-03-16 01:25:07
@@ -48,7 +48,6 @@
   graph_t *graph=NULL;
   ctrl_t *ctrl;
   idx_t *cptr, *cind, *piperm;
-  int numflag = 0;
 
   /* set up malloc cleaning code and signal catchers */
   if (!gk_malloc_init()) 
@@ -183,12 +182,10 @@
 void MlevelNestedDissection(ctrl_t *ctrl, graph_t *graph, idx_t *order, 
          idx_t lastvtx)
 {
-  idx_t i, j, nvtxs, nbnd;
+  idx_t i, nbnd;
   idx_t *label, *bndind;
   graph_t *lgraph, *rgraph;
 
-  nvtxs = graph->nvtxs;
-
   MlevelNodeBisectionMultiple(ctrl, graph);
 
   IFSET(ctrl->dbglvl, METIS_DBG_SEPINFO, 
@@ -236,7 +233,7 @@
 void MlevelNestedDissectionCC(ctrl_t *ctrl, graph_t *graph, idx_t *order, 
          idx_t lastvtx)
 {
-  idx_t i, j, nvtxs, nbnd, ncmps, rnvtxs, snvtxs;
+  idx_t i, nvtxs, nbnd, ncmps, rnvtxs, snvtxs;
   idx_t *label, *bndind;
   idx_t *cptr, *cind;
   graph_t **sgraphs;
@@ -423,7 +420,7 @@
          graph_t **r_rgraph)
 {
   idx_t i, ii, j, k, l, istart, iend, mypart, nvtxs, snvtxs[3], snedges[3];
-  idx_t *xadj, *vwgt, *adjncy, *adjwgt, *label, *where, *bndptr, *bndind;
+  idx_t *xadj, *vwgt, *adjncy, *label, *where, *bndptr, *bndind;
   idx_t *sxadj[2], *svwgt[2], *sadjncy[2], *sadjwgt[2], *slabel[2];
   idx_t *rename;
   idx_t *auxadjncy;
@@ -437,7 +434,6 @@
   xadj    = graph->xadj;
   vwgt    = graph->vwgt;
   adjncy  = graph->adjncy;
-  adjwgt  = graph->adjwgt;
   label   = graph->label;
   where   = graph->where;
   bndptr  = graph->bndptr;
@@ -552,8 +548,8 @@
 graph_t **SplitGraphOrderCC(ctrl_t *ctrl, graph_t *graph, idx_t ncmps, 
               idx_t *cptr, idx_t *cind)
 {
-  idx_t i, ii, iii, j, k, l, istart, iend, mypart, nvtxs, snvtxs, snedges;
-  idx_t *xadj, *vwgt, *adjncy, *adjwgt, *label, *where, *bndptr, *bndind;
+  idx_t i, ii, iii, j, k, l, istart, iend, nvtxs, snvtxs, snedges;
+  idx_t *xadj, *vwgt, *adjncy, *label, *where, *bndptr, *bndind;
   idx_t *sxadj, *svwgt, *sadjncy, *sadjwgt, *slabel;
   idx_t *rename;
   idx_t *auxadjncy;
@@ -567,7 +563,6 @@
   xadj    = graph->xadj;
   vwgt    = graph->vwgt;
   adjncy  = graph->adjncy;
-  adjwgt  = graph->adjwgt;
   label   = graph->label;
   where   = graph->where;
   bndptr  = graph->bndptr;
@@ -654,7 +649,7 @@
 /*************************************************************************/
 void MMDOrder(ctrl_t *ctrl, graph_t *graph, idx_t *order, idx_t lastvtx)
 {
-  idx_t i, j, k, nvtxs, nofsub, firstvtx;
+  idx_t i, k, nvtxs, nofsub, firstvtx;
   idx_t *xadj, *adjncy, *label;
   idx_t *perm, *iperm, *head, *qsize, *list, *marker;
 
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/parmetis.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/parmetis.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/parmetis.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/parmetis.c	2024-03-16 01:25:07
@@ -105,7 +105,7 @@
 void MlevelNestedDissectionP(ctrl_t *ctrl, graph_t *graph, idx_t *order, 
          idx_t lastvtx, idx_t npes, idx_t cpos, idx_t *sizes)
 {
-  idx_t i, j, nvtxs, nbnd;
+  idx_t i, nvtxs, nbnd;
   idx_t *label, *bndind;
   graph_t *lgraph, *rgraph;
 
@@ -161,7 +161,6 @@
 int METIS_ComputeVertexSeparator(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, 
            idx_t *vwgt, idx_t *options, idx_t *r_sepsize, idx_t *part) 
 {
-  idx_t i, j;
   graph_t *graph;
   ctrl_t *ctrl;
 
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/pmetis.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/pmetis.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/pmetis.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/pmetis.c	2024-03-16 01:25:07
@@ -157,7 +157,7 @@
 idx_t MlevelRecursiveBisection(ctrl_t *ctrl, graph_t *graph, idx_t nparts, 
           idx_t *part, real_t *tpwgts, idx_t fpart)
 {
-  idx_t i, j, nvtxs, ncon, objval;
+  idx_t i, nvtxs, ncon, objval;
   idx_t *label, *where;
   graph_t *lgraph, *rgraph;
   real_t wsum, *tpwgts2;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/separator.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/separator.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/separator.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/separator.c	2024-03-16 01:25:07
@@ -20,7 +20,7 @@
 **************************************************************************/
 void ConstructSeparator(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, j, k, nvtxs, nbnd;
+  idx_t i, j, nvtxs, nbnd;
   idx_t *xadj, *where, *bndind;
 
   WCOREPUSH;
@@ -70,7 +70,10 @@
 {
   idx_t i, ii, j, jj, k, l, nvtxs, nbnd, bnvtxs[3], bnedges[2], csize;
   idx_t *xadj, *adjncy, *bxadj, *badjncy;
-  idx_t *where, *bndind, *bndptr, *vmap, *ivmap, *cover;
+  idx_t *where, *bndind, *vmap, *ivmap, *cover;
+#ifndef NDEBUG
+  idx_t *bndptr;
+#endif
 
   WCOREPUSH;
 
@@ -80,7 +83,9 @@
 
   nbnd   = graph->nbnd;
   bndind = graph->bndind;
+#ifndef NDEBUG
   bndptr = graph->bndptr;
+#endif
   where  = graph->where;
 
   vmap  = iwspacemalloc(ctrl, nvtxs);
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/sfm.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/sfm.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/sfm.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/sfm.c	2024-03-16 01:25:07
@@ -476,7 +476,7 @@
 void FM_2WayNodeBalance(ctrl_t *ctrl, graph_t *graph)
 {
   idx_t i, ii, j, k, jj, kk, nvtxs, nbnd, nswaps, gain;
-  idx_t badmaxpwgt, higain, oldgain, pass, to, other;
+  idx_t badmaxpwgt, higain, oldgain, to, other;
   idx_t *xadj, *vwgt, *adjncy, *where, *pwgts, *edegrees, *bndind, *bndptr;
   idx_t *perm, *moved;
   rpq_t *queue; 
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/srefine.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/srefine.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/srefine.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/srefine.c	2024-03-16 01:25:07
@@ -136,7 +136,7 @@
 /*************************************************************************/
 void Project2WayNodePartition(ctrl_t *ctrl, graph_t *graph)
 {
-  idx_t i, j, nvtxs;
+  idx_t i, nvtxs;
   idx_t *cmap, *where, *cwhere;
   graph_t *cgraph;
 
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/stat.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/stat.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/stat.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/stat.c	2024-03-16 01:25:07
@@ -20,8 +20,8 @@
 **************************************************************************/
 void ComputePartitionInfoBipartite(graph_t *graph, idx_t nparts, idx_t *where)
 {
-  idx_t i, j, k, nvtxs, ncon, mustfree=0;
-  idx_t *xadj, *adjncy, *vwgt, *vsize, *adjwgt, *kpwgts, *tmpptr;
+  idx_t i, j, nvtxs, ncon, mustfree=0;
+  idx_t *xadj, *adjncy, *vwgt, *vsize, *adjwgt, *kpwgts;
   idx_t *padjncy, *padjwgt, *padjcut;
 
   nvtxs = graph->nvtxs;
@@ -126,7 +126,6 @@
 {
   idx_t i, j, nvtxs, ncon;
   idx_t *kpwgts, *vwgt;
-  real_t balance;
 
   nvtxs = graph->nvtxs;
   ncon = graph->ncon;
diff -ruN src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/wspace.c src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/wspace.c
--- src/SuiteSparse/CHOLMOD/SuiteSparse_metis/libmetis/wspace.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/SuiteSparse_metis/libmetis/wspace.c	2024-03-16 01:28:20
@@ -81,12 +81,14 @@
 {
   gk_mcoreDestroy(&ctrl->mcore, ctrl->dbglvl&METIS_DBG_INFO);
 
+#ifndef NDEBUG
   IFSET(ctrl->dbglvl, METIS_DBG_INFO,
       printf(" nbrpool statistics\n" 
              "        nbrpoolsize: %12zu   nbrpoolcpos: %12zu\n"
              "    nbrpoolreallocs: %12zu\n\n",
              ctrl->nbrpoolsize,  ctrl->nbrpoolcpos, 
              ctrl->nbrpoolreallocs));
+#endif
 
   gk_free((void **)&ctrl->cnbrpool, &ctrl->vnbrpool, LTERM);
   ctrl->nbrpoolsize = 0;
diff -ruN src/SuiteSparse/CHOLMOD/Supernodal/cholmod_super_numeric.c src/SuiteSparse-patched/CHOLMOD/Supernodal/cholmod_super_numeric.c
--- src/SuiteSparse/CHOLMOD/Supernodal/cholmod_super_numeric.c	2024-03-16 01:30:04
+++ src/SuiteSparse-patched/CHOLMOD/Supernodal/cholmod_super_numeric.c	2024-03-16 01:25:07
@@ -281,10 +281,6 @@
     // supernodal numerical factorization, using template routine
     //--------------------------------------------------------------------------
 
-    float s_beta [2] ;
-    s_beta [0] = (float) beta [0] ;
-    s_beta [1] = (float) beta [1] ;
-
     switch ((A->xtype + A->dtype) % 8)
     {
         case CHOLMOD_REAL    + CHOLMOD_SINGLE:
diff -ruN src/SuiteSparse/CHOLMOD/Supernodal/cholmod_super_symbolic.c src/SuiteSparse-patched/CHOLMOD/Supernodal/cholmod_super_symbolic.c
--- src/SuiteSparse/CHOLMOD/Supernodal/cholmod_super_symbolic.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Supernodal/cholmod_super_symbolic.c	2024-03-16 01:25:07
@@ -173,11 +173,13 @@
         csize, maxcsize, ss, nscol0, nscol1, ns, nfsuper, newzeros, totzeros,
         merge, snext, esize, maxesize, nrelax0, nrelax1, nrelax2, Asorted ;
     int find_xsize ;
+#if (defined(CHOLMOD_HAS_CUDA) && defined(CHOLMOD_INT64))
     const char* env_use_gpu;
     const char* env_max_bytes;
     size_t max_bytes;
     const char* env_max_fraction;
     double max_fraction ;
+#endif
 
     RETURN_IF_NULL_COMMON (FALSE) ;
     RETURN_IF_NULL (A, FALSE) ;
@@ -243,10 +245,11 @@
         // real/complex/zomples only), and only when the GPU is requested and
         // available.
 
+        #ifdef CHOLMOD_INT64
+
         max_bytes = 0;
         max_fraction = 0;
 
-        #ifdef CHOLMOD_INT64
         if ( Common->useGPU == EMPTY )
         {
             // useGPU not explicitly requested by the user, but not explicitly
@@ -552,9 +555,6 @@
                 double xns = (double) ns ;
                 double xtotsize  = (xns * (xns+1) / 2) + xns * (lnz1 - nscol1) ;
                 double z = xtotzeros / xtotsize ;
-
-                Int totsize ;
-                totsize  = (ns * (ns+1) / 2) + ns * (Snz [s+1] - nscol1) ;
 
                 PRINT2 (("oldzeros "ID" newzeros "ID" xtotsize %g z %g\n",
                             Zeros [s+1], newzeros, xtotsize, z)) ;
diff -ruN src/SuiteSparse/CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c src/SuiteSparse-patched/CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c
--- src/SuiteSparse/CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c	2024-03-16 01:25:07
@@ -152,15 +152,21 @@
     #ifdef BLAS_TIMER
     double tstart, blas_time ;
     #endif
-    Real *Lx, *Ax, *Fx, *Az, *Fz, *C ;
+    Real *Lx, *Ax, *Fx, *C ;
+#ifdef ZOMPLEX
+    Real *Az, *Fz ;
+#endif
     Int *Super, *Head, *Ls, *Lpi, *Lpx, *Map, *SuperMap, *RelativeMap, *Next,
-        *Lpos, *Fp, *Fi, *Fnz, *Ap, *Ai, *Anz, *Iwork, *Next_save, *Lpos_save,
-        *Previous;
+        *Lpos, *Fp, *Fi, *Fnz, *Ap, *Ai, *Anz, *Iwork, *Next_save, *Lpos_save;
     Int nsuper, n, s, k1, k2, nscol, psi, psx, psend, nsrow,
-        pj, d, kd1, kd2, info, ndcol, ndrow, pdi, pdx, pdend, pdi1, pdi2,
+        d, kd1, kd2, info, ndcol, ndrow, pdi, pdx, pdend, pdi2,
         ndrow1, ndrow2, dancestor, sparent, dnext, nsrow2, ndrow3,
         stype, Apacked, Fpacked, repeat_supernode, nscol2, ss,
-        tail, nscol_new = 0;
+        nscol_new = 0;
+#if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE))
+    Int *Previous ;
+    Int tail ;
+#endif
     info = 0 ;
 
     ASSERT (L->dtype == A->dtype) ;
@@ -215,7 +221,9 @@
     Lpos        = Iwork + 2*((size_t) n) + nsuper ;         // size nsuper
     Next_save   = Iwork + 2*((size_t) n) + 2*((size_t) nsuper) ;// size nsuper
     Lpos_save   = Iwork + 2*((size_t) n) + 3*((size_t) nsuper) ;// size nsuper
+#if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE))
     Previous    = Iwork + 2*((size_t) n) + 4*((size_t) nsuper) ;// size nsuper
+#endif
 
     Map  = Common->Flag ;   // size n, use Flag as workspace for Map array
     Head = Common->Head ;   // size n+1, only Head [0..nsuper-1] used
@@ -273,7 +281,9 @@
         Fp = NULL ;
         Fi = NULL ;
         Fx = NULL ;
+#ifdef ZOMPLEX
         Fz = NULL ;
+#endif
         Fnz = NULL ;
         Fpacked = TRUE ;
     }
@@ -284,7 +294,9 @@
         Fp = F->p ;
         Fi = F->i ;
         Fx = F->x ;
+#ifdef ZOMPLEX
         Fz = F->z ;
+#endif
         Fnz = F->nz ;
         Fpacked = F->packed ;
     }
@@ -292,7 +304,9 @@
     Ap = A->p ;
     Ai = A->i ;
     Ax = A->x ;
+#ifdef ZOMPLEX
     Az = A->z ;
+#endif
     Anz = A->nz ;
     Apacked = A->packed ;
 
@@ -303,8 +317,10 @@
     #endif
 
     Int ii ;
+#ifdef _OPENMP
     #pragma omp parallel for num_threads(nthreads) \
         if ( n > 128 ) schedule (static)
+#endif
     for (ii = 0 ; ii < n ; ii++)
     {
         Map [ii] = EMPTY ;
@@ -370,8 +386,10 @@
             #endif
 
             Int p ;
+#ifdef _OPENMP
             #pragma omp parallel for num_threads(nthreads)   \
                 schedule (static) if ( pend - psx > 1024 )
+#endif
             for (p = psx ; p < pend ; p++)
             {
                 L_CLEAR (Lx,p) ;
@@ -390,8 +408,10 @@
         #endif
 
         Int k ;
+#ifdef _OPENMP
         #pragma omp parallel for num_threads(nthreads)  \
             if ( nsrow > 128 )
+#endif
         for (k = 0 ; k < nsrow ; k++)
         {
             PRINT1 (("  "ID" map "ID"\n", Ls [psi+k], k)) ;
@@ -416,8 +436,6 @@
         // copy matrix into supernode s (lower triangular part only)
         //----------------------------------------------------------------------
 
-        Int pk = psx ;
-
         #ifdef _OPENMP
         double work ;
         if (stype != 0)
@@ -435,8 +453,10 @@
         nthreads = cholmod_nthreads (work, Common) ;
         #endif
 
+#ifdef _OPENMP
         #pragma omp parallel for num_threads(nthreads) \
             if ( k2-k1 > 64 )
+#endif
         for (k = k1 ; k < k2 ; k++)
         {
             if (stype != 0)
@@ -894,8 +914,10 @@
                 #endif
 
                 Int i ;
+#ifdef _OPENMP
                 #pragma omp parallel for num_threads(nthreads)   \
                     if ( ndrow2 > 64 )
+#endif
                 for (i = 0 ; i < ndrow2 ; i++)
                 {
                     RelativeMap [i] = Map [Ls [pdi1 + i]] ;
@@ -912,8 +934,10 @@
                 #endif
 
                 Int j ;
+#ifdef _OPENMP
                 #pragma omp parallel for num_threads(nthreads) \
                     if (ndrow1 > 64 )
+#endif
                 for (j = 0 ; j < ndrow1 ; j++)              // cols k1:k2-1
                 {
                     ASSERT (RelativeMap [j] == Map [Ls [pdi1 + j]]) ;
diff -ruN src/SuiteSparse/CHOLMOD/Supernodal/t_cholmod_super_solve_worker.c src/SuiteSparse-patched/CHOLMOD/Supernodal/t_cholmod_super_solve_worker.c
--- src/SuiteSparse/CHOLMOD/Supernodal/t_cholmod_super_solve_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Supernodal/t_cholmod_super_solve_worker.c	2024-03-16 01:25:07
@@ -37,12 +37,11 @@
     Real minus_one [2], one [2] ;
     Int *Lpi, *Lpx, *Ls, *Super ;
     Int nsuper, k1, k2, psi, psend, psx, nsrow, nscol, ii, s,
-        nsrow2, n, ps2, j, i, d, nrhs ;
+        nsrow2, ps2, j, i, d, nrhs ;
 
     nrhs = X->ncol ;
     Ex = E->x ;
     Xx = X->x ;
-    n = L->n ;
     d = X->d ;
 
     nsuper = L->nsuper ;
@@ -326,12 +325,11 @@
     Real minus_one [2], one [2] ;
     Int *Lpi, *Lpx, *Ls, *Super ;
     Int nsuper, k1, k2, psi, psend, psx, nsrow, nscol, ii, s,
-        nsrow2, n, ps2, j, i, d, nrhs ;
+        nsrow2, ps2, j, i, d, nrhs ;
 
     nrhs = X->ncol ;
     Ex = E->x ;
     Xx = X->x ;
-    n = L->n ;
     d = X->d ;
 
     nsuper = L->nsuper ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_aat.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_aat.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_aat.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_aat.c	2024-03-16 01:25:07
@@ -106,7 +106,6 @@
     bool ignore_diag = (mode < 0) ;
     bool values = (mode > 0) && (A->xtype != CHOLMOD_PATTERN) ;
     int axtype = (values) ? A->xtype : CHOLMOD_PATTERN ;
-    bool conj = (mode >= 2) ;
 
     Int nrow = A->nrow ;
     Int ncol = A->ncol ;
@@ -121,12 +120,8 @@
     // get the sizes of the entries of C and A
     //--------------------------------------------------------------------------
 
-    size_t ei = sizeof (Int) ;
-    size_t e = (A->dtype == CHOLMOD_SINGLE) ? sizeof (float) : sizeof (double) ;
     size_t ew =  ((axtype == CHOLMOD_PATTERN) ? 0 :
                  ((axtype == CHOLMOD_COMPLEX) ? 2 : 1)) ;
-    size_t ex = e * ew ;
-    size_t ez = e * ((axtype == CHOLMOD_ZOMPLEX) ? 1 : 0) ;
 
     //--------------------------------------------------------------------------
     // allocate workspace
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_aat_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_aat_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_aat_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_aat_worker.c	2024-03-16 01:25:07
@@ -35,20 +35,32 @@
     Int  *Ap  = (Int  *) A->p ;
     Int  *Anz = (Int  *) A->nz ;
     Int  *Ai  = (Int  *) A->i ;
+#ifndef PATTERN
     Real *Ax  = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az  = (Real *) A->z ;
+#endif
+#endif
     bool packed = A->packed ;
 
     Int  *Fp  = (Int  *) F->p ;
     Int  *Fi  = (Int  *) F->i ;
+#ifndef PATTERN
     Real *Fx  = (Real *) F->x ;
+#ifdef ZOMPLEX
     Real *Fz  = (Real *) F->z ;
+#endif
+#endif
     ASSERT (F->packed) ;
 
     Int  *Cp = (Int  *) C->p ;
     Int  *Ci = (Int  *) C->i ;
+#ifndef PATTERN
     Real *Cx = (Real *) C->x ;
+#ifdef ZOMPLEX
     Real *Cz = (Real *) C->z ;
+#endif
+#endif
     ASSERT (C->packed) ;
 
     //--------------------------------------------------------------------------
@@ -93,8 +105,12 @@
             //------------------------------------------------------------------
 
             Int t = Fi [pf] ;
+#ifndef PATTERN
             Real fx [2] = {0,0} ;
+#ifdef ZOMPLEX
             Real fz [1] = {0} ;
+#endif
+#endif
             ASSIGN (fx, fz, 0, Fx, Fz, pf) ;
 
             //------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_add.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_add.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_add.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_add.c	2024-03-16 01:25:07
@@ -118,12 +118,6 @@
     // get the sizes of the entries of C, A, and B
     //--------------------------------------------------------------------------
 
-    size_t ei = sizeof (Int) ;
-    size_t e = (dtype == CHOLMOD_SINGLE) ? sizeof (float) : sizeof (double) ;
-    size_t ex = e * ((xtype == CHOLMOD_PATTERN) ? 0 :
-                    ((xtype == CHOLMOD_COMPLEX) ? 2 : 1)) ;
-    size_t ez = e * ((xtype == CHOLMOD_ZOMPLEX) ? 1 : 0) ;
-
     //--------------------------------------------------------------------------
     // convert/sort A and/or B, if needed
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_band_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_band_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_band_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_band_worker.c	2024-03-16 01:25:07
@@ -30,14 +30,22 @@
     Int  *Ap  = (Int  *) A->p ;
     Int  *Anz = (Int  *) A->nz ;
     Int  *Ai  = (Int  *) A->i ;
+#ifndef PATTERN
     Real *Ax  = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az  = (Real *) A->z ;
+#endif
+#endif
     bool packed = A->packed ;
 
     Int  *Cp = (Int  *) C->p ;
     Int  *Ci = (Int  *) C->i ;
+#ifndef PATTERN
     Real *Cx = (Real *) C->x ;
+#ifdef ZOMPLEX
     Real *Cz = (Real *) C->z ;
+#endif
+#endif
 
     // columns outside of j1:j2 have no entries in diagonals k1:k2
     Int j1 = MAX (k1, 0) ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor.c	2024-03-16 01:25:07
@@ -698,8 +698,6 @@
     bool make_ldl = (!to_ll && L->is_ll) ;
 
     Int n = L->n ;
-    Int *Lp  = (Int *) L->p ;
-    Int *Li  = (Int *) L->i ;
     Int *Lnz = (Int *) L->nz ;
 
     bool grow = false ;
@@ -900,11 +898,8 @@
     // get inputs
     //--------------------------------------------------------------------------
 
-    Int n = L->n ;
     Int nsuper = L->nsuper ;
     Int *Lpi   = (Int *) L->pi ;
-    Int *Lpx   = (Int *) L->px ;
-    Int *Ls    = (Int *) L->s ;
     Int *Super = (Int *) L->super ;
 
     size_t ei = sizeof (Int) ;
@@ -1088,7 +1083,6 @@
     // get the sizes of the entries
     //--------------------------------------------------------------------------
 
-    size_t ei = sizeof (Int) ;
     size_t e = (L->dtype == CHOLMOD_SINGLE) ? sizeof (float) : sizeof (double) ;
     size_t ex = e * ((to_xtype == CHOLMOD_COMPLEX) ? 2 : 1) ;
     size_t xs = L->xsize ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor_1_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor_1_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor_1_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor_1_worker.c	2024-03-16 01:25:07
@@ -36,7 +36,9 @@
     Int  *Lp = (Int  *) L->p ;
     Int  *Li = (Int  *) L->i ;
     Real *Lx = (Real *) L->x ;
+#ifdef ZOMPLEX
     Real *Lz = (Real *) L->z ;
+#endif
     Int n = L->n ;
 
     //--------------------------------------------------------------------------
@@ -44,7 +46,9 @@
     //--------------------------------------------------------------------------
 
     Real onex [2] = {1,0} ;
+#ifdef ZOMPLEX
     Real onez [1] = {0} ;
+#endif
 
     for (Int j = 0 ; j < n ; j++)
     {
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor_2_template.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor_2_template.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor_2_template.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor_2_template.c	2024-03-16 01:25:07
@@ -34,7 +34,9 @@
 //------------------------------------------------------------------------------
 
 {
+#ifndef IN_PLACE
     Int pnew = 0 ;
+#endif
 
     if (make_ll)
     {
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor_2_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor_2_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor_2_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor_2_worker.c	2024-03-16 01:25:07
@@ -50,7 +50,9 @@
     Int  *Lp  = (Int  *) L->p ;
     Int  *Li  = (Int  *) L->i ;
     Real *Lx  = (Real *) L->x ;
+#ifdef ZOMPLEX
     Real *Lz  = (Real *) L->z ;
+#endif
     Int  *Lnz = (Int  *) L->nz ;
 
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor_3_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor_3_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_factor_3_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_factor_3_worker.c	2024-03-16 01:25:07
@@ -100,7 +100,6 @@
     Int  *Lp  = (Int  *) L->p ;     // simplicial col pointers
     Int  *Li  = (Int  *) L->i ;     // simplicial row indices
     Int  *Lnz = (Int  *) L->nz ;    // simplicial column counts
-    Int lnz = L->nzmax ;            // size of Li, Lp, and Lx
 
     //----------------------------------------------------------------------
     // convert supernodal LL' to simplicial LL' or LDL' (packed/unpacked)
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_xdtype.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_xdtype.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_change_xdtype.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_change_xdtype.c	2024-03-16 01:25:07
@@ -214,7 +214,7 @@
     int output_dtype = to_xdtype & 4 ;  // double or single
 
     if (output_xtype <= CHOLMOD_PATTERN ||
-        L->is_super && output_xtype == CHOLMOD_ZOMPLEX)
+        (L->is_super && output_xtype == CHOLMOD_ZOMPLEX))
     {
         // output_xtype not supported
         ERROR (CHOLMOD_INVALID, "invalid xtype") ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_dense2_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_dense2_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_dense2_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_dense2_worker.c	2024-03-16 01:25:07
@@ -36,9 +36,13 @@
     //--------------------------------------------------------------------------
 
     Real *Xx = (Real *) X->x ;
+#ifdef ZOMPLEX
     Real *Xz = (Real *) X->z ;
+#endif
     Real *Yx = (Real *) Y->x ;
+#ifdef ZOMPLEX
     Real *Yz = (Real *) Y->z ;
+#endif
     size_t nrow = X->nrow ;
     size_t ncol = X->ncol ;
     size_t xd = X->d ;
@@ -50,9 +54,13 @@
 
     size_t e = (X->dtype == CHOLMOD_SINGLE) ? sizeof (float) : sizeof (double) ;
     size_t fx = ((X->xtype == CHOLMOD_COMPLEX) ? 2 : 1) ;
+#ifdef ZOMPLEX
     size_t fz = ((X->xtype == CHOLMOD_ZOMPLEX) ? 1 : 0) ;
+#endif
     size_t e_fx_nrow = e * fx * nrow ;
+#ifdef ZOMPLEX
     size_t e_fz_nrow = e * fz * nrow ;
+#endif
 
     //--------------------------------------------------------------------------
     // copy X = Y
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_factor.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_factor.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_factor.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_factor.c	2024-03-16 01:25:07
@@ -69,7 +69,6 @@
     size_t e = (L->dtype == CHOLMOD_SINGLE) ? sizeof (float) : sizeof (double) ;
     size_t ex = e * ((L->xtype == CHOLMOD_PATTERN) ? 0 :
                     ((L->xtype == CHOLMOD_COMPLEX) ? 2 : 1)) ;
-    size_t ez = e * ((L->xtype == CHOLMOD_ZOMPLEX) ? 1 : 0) ;
 
     //--------------------------------------------------------------------------
     // allocate the new factor H, H->Perm, and H->ColCount
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_factor_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_factor_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_factor_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_factor_worker.c	2024-03-16 01:25:07
@@ -29,11 +29,15 @@
     Int  *Li  = (Int  *) L->i ;
     Int  *Lnz = (Int  *) L->nz ;
     Real *Lx  = (Real *) L->x ;
+#ifdef ZOMPLEX
     Real *Lz  = (Real *) L->z ;
+#endif
 
     Int  *Hi  = (Int  *) H->i ;
     Real *Hx  = (Real *) H->x ;
+#ifdef ZOMPLEX
     Real *Hz  = (Real *) H->z ;
+#endif
 
     //--------------------------------------------------------------------------
     // copy each column
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_sparse_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_sparse_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_sparse_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_sparse_worker.c	2024-03-16 01:25:07
@@ -31,13 +31,21 @@
     Int  *Ap  = (Int  *) A->p ;
     Int  *Anz = (Int  *) A->nz ;
     Int  *Ai  = (Int  *) A->i ;
+#ifndef PATTERN
     Real *Ax  = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az  = (Real *) A->z ;
+#endif
+#endif
     size_t ncol = A->ncol ;
 
     Int  *Ci  = (Int  *) C->i ;
+#ifndef PATTERN
     Real *Cx  = (Real *) C->x ;
+#ifdef ZOMPLEX
     Real *Cz  = (Real *) C->z ;
+#endif
+#endif
 
     //--------------------------------------------------------------------------
     // copy the contents from A to C
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_copy_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_copy_worker.c	2024-03-16 01:25:07
@@ -45,14 +45,21 @@
     Int  *Ap  = (Int  *) A->p ;
     Int  *Anz = (Int  *) A->nz ;
     Int  *Ai  = (Int  *) A->i ;
+#ifndef PATTERN
     Real *Ax  = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az  = (Real *) A->z ;
+#endif
+#endif
     bool packed = A->packed ;
 
-    Int  *Cp = (Int  *) C->p ;
     Int  *Ci = (Int  *) C->i ;
+#ifndef PATTERN
     Real *Cx = (Real *) C->x ;
+#ifdef ZOMPLEX
     Real *Cz = (Real *) C->z ;
+#endif
+#endif
     bool keep_diag = !ignore_diag ;
 
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_dense_nnz_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_dense_nnz_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_dense_nnz_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_dense_nnz_worker.c	2024-03-16 01:25:07
@@ -21,7 +21,9 @@
     //--------------------------------------------------------------------------
 
     Real *Xx = (Real *) X->x ;
+#ifdef ZOMPLEX
     Real *Xz = (Real *) X->z ;
+#endif
 
     Int nrow = (Int) X->nrow ;
     Int ncol = (Int) X->ncol ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_dense_to_sparse_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_dense_to_sparse_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_dense_to_sparse_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_dense_to_sparse_worker.c	2024-03-16 01:25:07
@@ -34,7 +34,9 @@
     //--------------------------------------------------------------------------
 
     Real *Xx = (Real *) X->x ;
+#ifdef ZOMPLEX
     Real *Xz = (Real *) X->z ;
+#endif
     Int nrow = X->nrow ;
     Int ncol = X->ncol ;
     Int d = X->d ;
@@ -42,7 +44,9 @@
     Int  *Cp  = (Int  *) C->p ;
     Int  *Ci  = (Int  *) C->i ;
     Real *Cx  = (Real *) C->x ;
+#ifdef ZOMPLEX
     Real *Cz  = (Real *) C->z ;
+#endif
     bool pattern = (C->xtype == CHOLMOD_PATTERN) ;
 
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_eye_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_eye_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_eye_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_eye_worker.c	2024-03-16 01:25:07
@@ -21,14 +21,18 @@
     //--------------------------------------------------------------------------
 
     Real *Xx = (Real *) X->x ;
+#ifdef ZOMPLEX
     Real *Xz = (Real *) X->z ;
+#endif
 
     Int nrow = (Int) X->nrow ;
     Int ncol = (Int) X->ncol ;
     Int n = MIN (nrow, ncol) ;
 
     Real onex [2] = {1,0} ;
+#ifdef ZOMPLEX
     Real onez [1] = {0} ;
+#endif
 
     for (Int k = 0 ; k < n ; k++)
     {
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_ones_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_ones_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_ones_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_ones_worker.c	2024-03-16 01:25:07
@@ -21,11 +21,15 @@
     //--------------------------------------------------------------------------
 
     Real *Xx = (Real *) X->x ;
+#ifdef ZOMPLEX
     Real *Xz = (Real *) X->z ;
+#endif
     size_t nzmax = X->nzmax ;
 
     Real onex [2] = {1,0} ;
+#ifdef ZOMPLEX
     Real onez [1] = {0} ;
+#endif
 
     for (Int k = 0 ; k < nzmax ; k++)
     {
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_pack_factor_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_pack_factor_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_pack_factor_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_pack_factor_worker.c	2024-03-16 01:25:07
@@ -29,7 +29,9 @@
     Int  *Lp    = (Int  *) L->p ;
     Int  *Li    = (Int  *) L->i ;
     Real *Lx    = (Real *) L->x ;
+#ifdef ZOMPLEX
     Real *Lz    = (Real *) L->z ;
+#endif
     Int  *Lnz   = (Int  *) L->nz ;
     Int  *Lnext = (Int  *) L->next ;
 
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_realloc.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_realloc.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_realloc.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_realloc.c	2024-03-16 01:25:07
@@ -34,7 +34,9 @@
 
     int ok ;
     bool newly_allocated = (p == NULL) ;
+#ifndef NDEBUG
     void *pold = p ;
+#endif
     size_t nold = (*n) ;
 
     p = SuiteSparse_realloc (nnew, *n, size, p, &ok) ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_reallocate_column.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_reallocate_column.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_reallocate_column.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_reallocate_column.c	2024-03-16 01:25:07
@@ -84,7 +84,6 @@
     need = MAX (need, 1) ;
     double slack = MAX (Common->grow1, 1.0) * ((double) need) + Common->grow2 ;
     slack = MIN (slack, (double) (n-j)) ;
-    size_t nslack = (size_t) floor (slack) ;
     need = MAX (need, slack) ;
     need = MAX (need, 1) ;
     need = MIN (need, n-j) ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_reallocate_column_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_reallocate_column_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_reallocate_column_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_reallocate_column_worker.c	2024-03-16 01:25:07
@@ -26,7 +26,9 @@
     Int  *Lnz = (Int  *) L->nz ;
     Int  *Li  = (Int  *) L->i ;
     Real *Lx  = (Real *) L->x ;
+#ifdef ZOMPLEX
     Real *Lz  = (Real *) L->z ;
+#endif
     Int len = Lnz [j] ;
 
     //--------------------------------------------------------------------------
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_sort_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_sort_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_sort_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_sort_worker.c	2024-03-16 01:25:07
@@ -185,8 +185,12 @@
     Int  *Ap  = (Int  *) A->p ;
     Int  *Ai  = (Int  *) A->i ;
     Int  *Anz = (Int  *) A->nz ;
+#ifndef PATTERN
     Real *Ax  = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az  = (Real *) A->z ;
+#endif
+#endif
     Int ncol = A->ncol ;
     bool packed = A->packed ;
     uint64_t seed = 42 ;
@@ -207,7 +211,6 @@
             if (i < ilast)
             {
                 // sort Ai, Ax, Ax [pa:pend-1] according to row index Ai
-                Int jnz = pend - pa ;
                 CM_QSRT (Ai, Ax, Az, pa, pend - pa, &seed) ;
                 break ;
             }
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_sparse_to_dense_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_sparse_to_dense_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_sparse_to_dense_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_sparse_to_dense_worker.c	2024-03-16 01:25:07
@@ -30,13 +30,19 @@
     //--------------------------------------------------------------------------
 
     Real *Xx = (Real *) X->x ;
+#ifdef ZOMPLEX
     Real *Xz = (Real *) X->z ;
+#endif
 
     Int  *Ap  = (Int  *) A->p ;
     Int  *Ai  = (Int  *) A->i ;
     Int  *Anz = (Int  *) A->nz ;
+#ifndef PATTERN
     Real *Ax  = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az  = (Real *) A->z ;
+#endif
+#endif
 
     Int nrow = (Int) A->nrow ;
     Int ncol = (Int) A->ncol ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_sparse_to_triplet_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_sparse_to_triplet_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_sparse_to_triplet_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_sparse_to_triplet_worker.c	2024-03-16 01:25:07
@@ -21,19 +21,26 @@
     // get inputs
     //--------------------------------------------------------------------------
 
-    Int nrow = A->nrow ;
     Int ncol = A->ncol ;
     bool packed = (bool) A->packed ;
     Int  *Ap = (Int  *) A->p ;
     Int  *Ai = (Int  *) A->i ;
+#ifndef PATTERN
     Real *Ax = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az = (Real *) A->z ;
+#endif
+#endif
     Int *Anz = (Int  *) A->nz ;
 
     Int  *Ti = (Int  *) T->i ;
     Int  *Tj = (Int  *) T->j ;
+#ifndef PATTERN
     Real *Tx = (Real *) T->x ;
+#ifdef ZOMPLEX
     Real *Tz = (Real *) T->z ;
+#endif
+#endif
 
     Int k = 0 ;
 
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_speye_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_speye_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_speye_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_speye_worker.c	2024-03-16 01:25:07
@@ -22,15 +22,23 @@
 
     Int  *Ap = (Int  *) A->p ;
     Int  *Ai = (Int  *) A->i ;
+#ifndef PATTERN
     Real *Ax = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az = (Real *) A->z ;
+#endif
+#endif
 
     Int ncol = (Int) A->ncol ;
     Int nrow = (Int) A->nrow ;
     Int n = MIN (nrow, ncol) ;
 
+#ifndef PATTERN
     Real onex [2] = {1,0} ;
+#ifdef ZOMPLEX
     Real onez [1] = {0} ;
+#endif
+#endif
 
     for (Int k = 0 ; k < n ; k++)
     {
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_sym_permuted.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_sym_permuted.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_sym_permuted.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_sym_permuted.c	2024-03-16 01:25:07
@@ -44,7 +44,10 @@
             #endif
             {
                 // C(jnew,inew) = conj (A(iold,jold))
-                Int pc = Wi [inew]++ ;
+#ifdef NUMERIC
+                Int pc =
+#endif
+                Wi [inew]++ ;
                 #ifdef NUMERIC
                 ASSIGN_CONJ_OR_NCONJ (Cx, Cz, pc, Ax, Az, pa) ;
                 Ci [pc] = jnew ;
@@ -53,7 +56,10 @@
             else
             {
                 // C(inew,jnew) = A(iold,jold)
-                Int pc = Wi [jnew]++ ;
+#ifdef NUMERIC
+                Int pc =
+#endif
+                Wi [jnew]++ ;
                 #ifdef NUMERIC
                 ASSIGN (Cx, Cz, pc, Ax, Az, pa) ;
                 Ci [pc] = inew ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_sym_unpermuted.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_sym_unpermuted.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_sym_unpermuted.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_sym_unpermuted.c	2024-03-16 01:25:07
@@ -40,7 +40,10 @@
             if (i > j) continue ;
             #endif
             // C(j,i) = conj (A(i,j))
-            Int pc = Wi [i]++ ;
+#ifdef NUMERIC
+            Int pc =
+#endif
+            Wi [i]++ ;
             #ifdef NUMERIC
             ASSIGN_CONJ_OR_NCONJ (Cx, Cz, pc, Ax, Az, pa) ;
             Ci [pc] = j ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_sym_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_sym_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_sym_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_sym_worker.c	2024-03-16 01:25:07
@@ -28,13 +28,20 @@
     Int  *Ap  = (Int  *) A->p ;
     Int  *Ai  = (Int  *) A->i ;
     Int  *Anz = (Int  *) A->nz ;
+#ifndef PATTERN
     Real *Ax  = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az  = (Real *) A->z ;
+#endif
+#endif
 
-    Int  *Cp  = (Int  *) C->p ;
     Int  *Ci  = (Int  *) C->i ;
+#ifndef PATTERN
     Real *Cx  = (Real *) C->x ;
+#ifdef ZOMPLEX
     Real *Cz  = (Real *) C->z ;
+#endif
+#endif
 
     //--------------------------------------------------------------------------
     // compute pattern and values of C
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_unsym_template.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_unsym_template.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_unsym_template.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_unsym_template.c	2024-03-16 01:25:07
@@ -59,7 +59,10 @@
         for ( ; p < pend ; p++)
         {
             // get A(i,j) and count it or get its place in C
-            Int pc = Wi [Ai [p]]++ ;
+#ifdef NUMERIC
+            Int pc =
+#endif
+            Wi [Ai [p]]++ ;
             #ifdef NUMERIC
             // C(j,i) = conj (A(i,j))
             ASSIGN_CONJ_OR_NCONJ (Cx, Cz, pc, Ax, Az, p) ;
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_unsym_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_unsym_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_transpose_unsym_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_transpose_unsym_worker.c	2024-03-16 01:25:07
@@ -27,14 +27,21 @@
     Int  *Ap  = (Int  *) A->p ;
     Int  *Ai  = (Int  *) A->i ;
     Int  *Anz = (Int  *) A->nz ;
+#ifndef PATTERN
     Real *Ax  = (Real *) A->x ;
+#ifdef ZOMPLEX
     Real *Az  = (Real *) A->z ;
+#endif
+#endif
     Int ncol = A->ncol ;
 
-    Int  *Cp  = (Int  *) C->p ;
     Int  *Ci  = (Int  *) C->i ;
+#ifndef PATTERN
     Real *Cx  = (Real *) C->x ;
+#ifdef ZOMPLEX
     Real *Cz  = (Real *) C->z ;
+#endif
+#endif
 
     //--------------------------------------------------------------------------
     // compute the pattern and values of C
diff -ruN src/SuiteSparse/CHOLMOD/Utility/t_cholmod_triplet_to_sparse_worker.c src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_triplet_to_sparse_worker.c
--- src/SuiteSparse/CHOLMOD/Utility/t_cholmod_triplet_to_sparse_worker.c	2024-01-24 19:45:24
+++ src/SuiteSparse-patched/CHOLMOD/Utility/t_cholmod_triplet_to_sparse_worker.c	2024-03-16 01:25:07
@@ -25,13 +25,21 @@
     Int  *Rp  = (Int  *) R->p ;
     Int  *Ri  = (Int  *) R->i ;
     Int  *Rnz = (Int  *) R->nz ;
+#ifndef PATTERN
     Real *Rx  = (Real *) R->x ;
+#ifdef ZOMPLEX
     Real *Rz  = (Real *) R->z ;
+#endif
+#endif
 
     Int  *Ti = (Int *) T->i ;
     Int  *Tj = (Int *) T->j ;
+#ifndef PATTERN
     Real *Tx = (Real *) T->x ;
+#ifdef ZOMPLEX
     Real *Tz = (Real *) T->z ;
+#endif
+#endif
     size_t nrow = T->nrow ;
     size_t ncol = T->ncol ;
     Int nz = T->nnz ;