scs 0.5.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f6156bd39776692e6bf684208d4401859c8b76cbff5b031866a0e269ae66893
4
- data.tar.gz: f2316371287f4b2492509950591bd763a08dc142af46e71f770e1a68897a566a
3
+ metadata.gz: 74c42ade2bfa33aa1b1ca6e48e221f0be32ae4897cd8355f85a112e06b8098f5
4
+ data.tar.gz: ae4548ba21f56ee5cdf091dd8ba89d415578f326b6d6f57df0ae7b4d53900eff
5
5
  SHA512:
6
- metadata.gz: ee213ecedba119f6a551a9df9afb634f18dba8f022817baead85c77c9befd82c33690f942f6e5be0070f20a4ef3331eab289d8d3fffe5c1a801dbc66ce99efae
7
- data.tar.gz: '071879f9a45ffc9c990e3510926c028f7f33ab199e13898325da87ff368eb19463b43feca04c5c296026150ae46aa86711098d15be4792f11c0bee1ac6e6993c'
6
+ metadata.gz: e3d8bc5c1f8c366a7aee9eb20a5281c9f6df77073618bfa63f2f106f002b9a1cb6db0d6985e16e7473d65063b567efc86278b88f91b311d5d6977aa9bf2dfafa
7
+ data.tar.gz: df1d393aa13d5be060f1f3a25243efa651df803cafe3705707a1c5cd934c8386619891418effd5b53cf38bf2c164539dd579ad3fa3a001c8cf23fea2e6bd0d9f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.5.4 (2026-01-02)
2
+
3
+ - Updated SCS to 3.2.10
4
+
5
+ ## 0.5.3 (2025-10-14)
6
+
7
+ - Updated SCS to 3.2.9
8
+
1
9
  ## 0.5.2 (2025-08-13)
2
10
 
3
11
  - Updated SCS to 3.2.8
data/LICENSE.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  The MIT License (MIT)
2
2
 
3
3
  Copyright (c) 2012 Brendan O'Donoghue (bodonoghue85@gmail.com)
4
- Copyright (c) 2019-2024 Andrew Kane
4
+ Copyright (c) 2019-2025 Andrew Kane
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  of this software and associated documentation files (the "Software"), to deal
data/lib/scs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SCS
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.4"
3
3
  end
@@ -10,7 +10,7 @@ authors:
10
10
  - family-names: "Boyd"
11
11
  given-names: "Stephen"
12
12
  title: "SCS: Splitting Conic Solver"
13
- version: 3.2.8
13
+ version: 3.2.10
14
14
  date-released: 2023
15
15
  url: "https://github.com/cvxgrp/scs"
16
16
 
@@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.5)
6
6
  project(
7
7
  scs
8
8
  LANGUAGES C
9
- VERSION 3.2.8)
9
+ VERSION 3.2.10)
10
10
 
11
11
  # Defines the CMAKE_INSTALL_LIBDIR, CMAKE_INSTALL_BINDIR and many other useful
12
12
  # macros. See https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
data/vendor/scs/README.md CHANGED
@@ -4,11 +4,10 @@
4
4
 
5
5
  [![Build Status](https://github.com/cvxgrp/scs/actions/workflows/build.yml/badge.svg)](https://github.com/cvxgrp/scs/actions/workflows/build.yml)
6
6
  [![Documentation](https://img.shields.io/badge/docs-online-brightgreen?logo=read-the-docs&style=flat)](https://www.cvxgrp.org/scs/)
7
- [![Coverage Status](https://coveralls.io/repos/github/cvxgrp/scs/badge.svg?branch=master)](https://coveralls.io/github/cvxgrp/scs?branch=master)
8
7
 
9
8
 
10
9
  SCS (`splitting conic solver`) is a numerical optimization package for solving
11
- large-scale convex cone problems. The current version is `3.2.8`.
10
+ large-scale convex cone problems. The current version is `3.2.10`.
12
11
 
13
12
  The full documentation is available [here](https://www.cvxgrp.org/scs/).
14
13
 
@@ -83,8 +83,8 @@ void SCS(deep_copy_cone)(ScsCone *dest, const ScsCone *src);
83
83
  ScsConeWork *SCS(init_cone)(ScsCone *k, scs_int m);
84
84
  char *SCS(get_cone_header)(const ScsCone *k);
85
85
  scs_int SCS(validate_cones)(const ScsData *d, const ScsCone *k);
86
- scs_int SCS(proj_dual_cone)(scs_float *x, ScsConeWork *c, ScsScaling *scal,
87
- scs_float *r_y);
86
+ scs_int SCS(proj_dual_cone)(scs_float *x, ScsConeWork *c,
87
+ const ScsScaling *scal, scs_float *r_y);
88
88
  void SCS(finish_cone)(ScsConeWork *c);
89
89
  void SCS(set_r_y)(const ScsConeWork *c, scs_float scale, scs_float *r_y);
90
90
  void SCS(enforce_cone_boundaries)(const ScsConeWork *c, scs_float *vec,
@@ -14,7 +14,7 @@ extern "C" {
14
14
 
15
15
  /* SCS VERSION NUMBER ---------------------------------------------- */
16
16
  /* string literals automatically null-terminated */
17
- #define SCS_VERSION ("3.2.8")
17
+ #define SCS_VERSION ("3.2.10")
18
18
 
19
19
  /* verbosity level */
20
20
  #ifndef VERBOSITY
@@ -135,24 +135,18 @@ static inline void *scs_calloc(size_t count, size_t size) {
135
135
  #define MIN(a, b) (((a) < (b)) ? (a) : (b))
136
136
  #endif
137
137
 
138
- #ifndef ABS
139
- #define ABS(x) (((x) < 0) ? -(x) : (x))
140
- #endif
141
-
142
- #ifndef POWF
143
- #ifdef SFLOAT
144
- #define POWF powf
145
- #else
146
- #define POWF pow
147
- #endif
148
- #endif
149
-
150
- #ifndef SQRTF
151
138
  #ifdef SFLOAT
152
139
  #define SQRTF sqrtf
140
+ #define EXPF expf
141
+ #define LOGF logf
142
+ #define ABS fabsf
143
+ #define POWF powf
153
144
  #else
154
145
  #define SQRTF sqrt
155
- #endif
146
+ #define EXPF exp
147
+ #define LOGF log
148
+ #define ABS fabs
149
+ #define POWF pow
156
150
  #endif
157
151
 
158
152
  /* Force SCS to treat the problem as (non-homogeneous) feasible for this many */
@@ -9,6 +9,7 @@ extern "C" {
9
9
  #include "scs.h"
10
10
  #include <stdio.h>
11
11
  #include <stdlib.h>
12
+ #include <string.h>
12
13
 
13
14
  /* timing code courtesy of A. Domahidi */
14
15
  #if (defined NO_TIMER)
@@ -85,7 +85,7 @@ GLOBAL void AMD_1
85
85
 
86
86
  for (k = 0 ; k < n ; k++)
87
87
  {
88
- AMD_DEBUG1 (("Construct row/column k= "ID" of A+A'\n", k)) ;
88
+ AMD_DEBUG1 (("Construct row/column k= " ID " of A+A'\n", k)) ;
89
89
  p1 = Ap [k] ;
90
90
  p2 = Ap [k+1] ;
91
91
 
@@ -604,7 +604,7 @@ GLOBAL void AMD_2
604
604
  }
605
605
  dense = MAX (16, dense) ;
606
606
  dense = MIN (n, dense) ;
607
- AMD_DEBUG1 (("\n\nAMD (debug), alpha %g, aggr. "ID"\n",
607
+ AMD_DEBUG1 (("\n\nAMD (debug), alpha %g, aggr. " ID "\n",
608
608
  alpha, aggressive)) ;
609
609
 
610
610
  for (i = 0 ; i < n ; i++)
@@ -622,7 +622,7 @@ GLOBAL void AMD_2
622
622
  }
623
623
 
624
624
  #ifndef NDEBUG
625
- AMD_DEBUG1 (("\n======Nel "ID" initial\n", nel)) ;
625
+ AMD_DEBUG1 (("\n======Nel " ID " initial\n", nel)) ;
626
626
  AMD_dump (n, Pe, Iw, Len, iwlen, pfree, Nv, Next, Last,
627
627
  Head, Elen, Degree, W, -1) ;
628
628
  #endif
@@ -667,7 +667,7 @@ GLOBAL void AMD_2
667
667
  * version does not have this option.
668
668
  * ------------------------------------------------------------- */
669
669
 
670
- AMD_DEBUG1 (("Dense node "ID" degree "ID"\n", i, deg)) ;
670
+ AMD_DEBUG1 (("Dense node " ID " degree " ID "\n", i, deg)) ;
671
671
  ndense++ ;
672
672
  Nv [i] = 0 ; /* do not postorder this node */
673
673
  Elen [i] = EMPTY ;
@@ -699,7 +699,7 @@ GLOBAL void AMD_2
699
699
  {
700
700
 
701
701
  #ifndef NDEBUG
702
- AMD_DEBUG1 (("\n======Nel "ID"\n", nel)) ;
702
+ AMD_DEBUG1 (("\n======Nel " ID "\n", nel)) ;
703
703
  if (AMD_debug >= 2)
704
704
  {
705
705
  AMD_dump (n, Pe, Iw, Len, iwlen, pfree, Nv, Next,
@@ -723,7 +723,7 @@ GLOBAL void AMD_2
723
723
  }
724
724
  mindeg = deg ;
725
725
  ASSERT (me >= 0 && me < n) ;
726
- AMD_DEBUG1 (("=================me: "ID"\n", me)) ;
726
+ AMD_DEBUG1 (("=================me: " ID "\n", me)) ;
727
727
 
728
728
  /* ----------------------------------------------------------------- */
729
729
  /* remove chosen variable from link list */
@@ -831,7 +831,7 @@ GLOBAL void AMD_2
831
831
  e = me ;
832
832
  pj = p ;
833
833
  ln = slenme ;
834
- AMD_DEBUG2 (("Search sv: "ID" "ID" "ID"\n", me,pj,ln)) ;
834
+ AMD_DEBUG2 (("Search sv: " ID " " ID " " ID "\n", me,pj,ln)) ;
835
835
  }
836
836
  else
837
837
  {
@@ -840,7 +840,7 @@ GLOBAL void AMD_2
840
840
  ASSERT (e >= 0 && e < n) ;
841
841
  pj = Pe [e] ;
842
842
  ln = Len [e] ;
843
- AMD_DEBUG2 (("Search element e "ID" in me "ID"\n", e,me)) ;
843
+ AMD_DEBUG2 (("Search element e " ID " in me " ID "\n", e,me)) ;
844
844
  ASSERT (Elen [e] < EMPTY && W [e] > 0 && pj >= 0) ;
845
845
  }
846
846
  ASSERT (ln >= 0 && (ln == 0 || (pj >= 0 && pj < iwlen))) ;
@@ -857,7 +857,7 @@ GLOBAL void AMD_2
857
857
  i = Iw [pj++] ;
858
858
  ASSERT (i >= 0 && i < n && (i == me || Elen [i] >= EMPTY));
859
859
  nvi = Nv [i] ;
860
- AMD_DEBUG2 ((": "ID" "ID" "ID" "ID"\n",
860
+ AMD_DEBUG2 ((": " ID " " ID " " ID " " ID "\n",
861
861
  i, Elen [i], Nv [i], wflg)) ;
862
862
 
863
863
  if (nvi > 0)
@@ -912,7 +912,7 @@ GLOBAL void AMD_2
912
912
  j = FLIP (Iw [psrc++]) ;
913
913
  if (j >= 0)
914
914
  {
915
- AMD_DEBUG2 (("Got object j: "ID"\n", j)) ;
915
+ AMD_DEBUG2 (("Got object j: " ID "\n", j)) ;
916
916
  Iw [pdst] = Pe [j] ;
917
917
  Pe [j] = pdst++ ;
918
918
  lenj = Len [j] ;
@@ -946,7 +946,7 @@ GLOBAL void AMD_2
946
946
  degme += nvi ;
947
947
  Nv [i] = -nvi ;
948
948
  Iw [pfree++] = i ;
949
- AMD_DEBUG2 ((" s: "ID" nv "ID"\n", i, Nv [i]));
949
+ AMD_DEBUG2 ((" s: " ID " nv " ID "\n", i, Nv [i]));
950
950
 
951
951
  /* ------------------------------------------------- */
952
952
  /* remove variable i from degree link list */
@@ -974,7 +974,7 @@ GLOBAL void AMD_2
974
974
  {
975
975
  /* set tree pointer and flag to indicate element e is
976
976
  * absorbed into new element me (the parent of e is me) */
977
- AMD_DEBUG1 ((" Element "ID" => "ID"\n", e, me)) ;
977
+ AMD_DEBUG1 ((" Element " ID " => " ID "\n", e, me)) ;
978
978
  Pe [e] = FLIP (me) ;
979
979
  W [e] = 0 ;
980
980
  }
@@ -998,8 +998,8 @@ GLOBAL void AMD_2
998
998
  * diagonal part). */
999
999
 
1000
1000
  #ifndef NDEBUG
1001
- AMD_DEBUG2 (("New element structure: length= "ID"\n", pme2-pme1+1)) ;
1002
- for (pme = pme1 ; pme <= pme2 ; pme++) AMD_DEBUG3 ((" "ID"", Iw[pme]));
1001
+ AMD_DEBUG2 (("New element structure: length= " ID "\n", pme2-pme1+1)) ;
1002
+ for (pme = pme1 ; pme <= pme2 ; pme++) AMD_DEBUG3 ((" " ID "", Iw[pme]));
1003
1003
  AMD_DEBUG3 (("\n")) ;
1004
1004
  #endif
1005
1005
 
@@ -1036,7 +1036,7 @@ GLOBAL void AMD_2
1036
1036
  i = Iw [pme] ;
1037
1037
  ASSERT (i >= 0 && i < n) ;
1038
1038
  eln = Elen [i] ;
1039
- AMD_DEBUG3 ((""ID" Elen "ID": \n", i, eln)) ;
1039
+ AMD_DEBUG3 (("" ID " Elen " ID ": \n", i, eln)) ;
1040
1040
  if (eln > 0)
1041
1041
  {
1042
1042
  /* note that Nv [i] has been negated to denote i in Lme: */
@@ -1048,7 +1048,7 @@ GLOBAL void AMD_2
1048
1048
  e = Iw [p] ;
1049
1049
  ASSERT (e >= 0 && e < n) ;
1050
1050
  we = W [e] ;
1051
- AMD_DEBUG4 ((" e "ID" we "ID" ", e, we)) ;
1051
+ AMD_DEBUG4 ((" e " ID " we " ID " ", e, we)) ;
1052
1052
  if (we >= wflg)
1053
1053
  {
1054
1054
  /* unabsorbed element e has been seen in this loop */
@@ -1084,7 +1084,7 @@ GLOBAL void AMD_2
1084
1084
  {
1085
1085
  i = Iw [pme] ;
1086
1086
  ASSERT (i >= 0 && i < n && Nv [i] < 0 && Elen [i] >= 0) ;
1087
- AMD_DEBUG2 (("Updating: i "ID" "ID" "ID"\n", i, Elen[i], Len [i]));
1087
+ AMD_DEBUG2 (("Updating: i " ID " " ID " " ID "\n", i, Elen[i], Len [i]));
1088
1088
  p1 = Pe [i] ;
1089
1089
  p2 = p1 + Elen [i] - 1 ;
1090
1090
  pn = p1 ;
@@ -1114,12 +1114,12 @@ GLOBAL void AMD_2
1114
1114
  deg += dext ;
1115
1115
  Iw [pn++] = e ;
1116
1116
  hash += e ;
1117
- AMD_DEBUG4 ((" e: "ID" hash = "ID"\n",e,hash)) ;
1117
+ AMD_DEBUG4 ((" e: " ID " hash = " ID "\n",e,hash)) ;
1118
1118
  }
1119
1119
  else
1120
1120
  {
1121
1121
  /* external degree of e is zero, absorb e into me*/
1122
- AMD_DEBUG1 ((" Element "ID" =>"ID" (aggressive)\n",
1122
+ AMD_DEBUG1 ((" Element " ID " =>" ID " (aggressive)\n",
1123
1123
  e, me)) ;
1124
1124
  ASSERT (dext == 0) ;
1125
1125
  Pe [e] = FLIP (me) ;
@@ -1143,7 +1143,7 @@ GLOBAL void AMD_2
1143
1143
  deg += dext ;
1144
1144
  Iw [pn++] = e ;
1145
1145
  hash += e ;
1146
- AMD_DEBUG4 ((" e: "ID" hash = "ID"\n",e,hash)) ;
1146
+ AMD_DEBUG4 ((" e: " ID " hash = " ID "\n",e,hash)) ;
1147
1147
  }
1148
1148
  }
1149
1149
  }
@@ -1172,7 +1172,7 @@ GLOBAL void AMD_2
1172
1172
  deg += nvj ;
1173
1173
  Iw [pn++] = j ;
1174
1174
  hash += j ;
1175
- AMD_DEBUG4 ((" s: "ID" hash "ID" Nv[j]= "ID"\n",
1175
+ AMD_DEBUG4 ((" s: " ID " hash " ID " Nv[j]= " ID "\n",
1176
1176
  j, hash, nvj)) ;
1177
1177
  }
1178
1178
  }
@@ -1212,7 +1212,7 @@ GLOBAL void AMD_2
1212
1212
  * flop count analysis. It also means that the post-ordering
1213
1213
  * is not an exact elimination tree post-ordering. */
1214
1214
 
1215
- AMD_DEBUG1 ((" MASS i "ID" => parent e "ID"\n", i, me)) ;
1215
+ AMD_DEBUG1 ((" MASS i " ID " => parent e " ID "\n", i, me)) ;
1216
1216
  Pe [i] = FLIP (me) ;
1217
1217
  nvi = -Nv [i] ;
1218
1218
  degme -= nvi ;
@@ -1304,7 +1304,7 @@ GLOBAL void AMD_2
1304
1304
  {
1305
1305
  i = Iw [pme] ;
1306
1306
  ASSERT (i >= 0 && i < n) ;
1307
- AMD_DEBUG2 (("Consider i "ID" nv "ID"\n", i, Nv [i])) ;
1307
+ AMD_DEBUG2 (("Consider i " ID " nv " ID "\n", i, Nv [i])) ;
1308
1308
  if (Nv [i] < 0)
1309
1309
  {
1310
1310
  /* i is a principal variable in Lme */
@@ -1345,7 +1345,7 @@ GLOBAL void AMD_2
1345
1345
  */
1346
1346
 
1347
1347
  ASSERT (i >= EMPTY && i < n) ;
1348
- AMD_DEBUG2 (("----i "ID" hash "ID"\n", i, hash)) ;
1348
+ AMD_DEBUG2 (("----i " ID " hash " ID "\n", i, hash)) ;
1349
1349
 
1350
1350
  while (i != EMPTY && Next [i] != EMPTY)
1351
1351
  {
@@ -1381,7 +1381,7 @@ GLOBAL void AMD_2
1381
1381
  /* check if j and i have identical nonzero pattern */
1382
1382
  /* ------------------------------------------------- */
1383
1383
 
1384
- AMD_DEBUG3 (("compare i "ID" and j "ID"\n", i,j)) ;
1384
+ AMD_DEBUG3 (("compare i " ID " and j " ID "\n", i,j)) ;
1385
1385
 
1386
1386
  /* check if i and j have the same Len and Elen */
1387
1387
  ASSERT (Len [j] >= 0 && Elen [j] >= 0) ;
@@ -1399,7 +1399,7 @@ GLOBAL void AMD_2
1399
1399
  /* found it! j can be absorbed into i */
1400
1400
  /* --------------------------------------------- */
1401
1401
 
1402
- AMD_DEBUG1 (("found it! j "ID" => i "ID"\n", j,i));
1402
+ AMD_DEBUG1 (("found it! j " ID " => i " ID "\n", j,i));
1403
1403
  Pe [j] = FLIP (i) ;
1404
1404
  /* both Nv [i] and Nv [j] are negated since they */
1405
1405
  /* are in Lme, and the absolute values of each */
@@ -1448,7 +1448,7 @@ GLOBAL void AMD_2
1448
1448
  i = Iw [pme] ;
1449
1449
  ASSERT (i >= 0 && i < n) ;
1450
1450
  nvi = -Nv [i] ;
1451
- AMD_DEBUG3 (("Restore i "ID" "ID"\n", i, nvi)) ;
1451
+ AMD_DEBUG3 (("Restore i " ID " " ID "\n", i, nvi)) ;
1452
1452
  if (nvi > 0)
1453
1453
  {
1454
1454
  /* i is a principal variable in Lme */
@@ -1495,7 +1495,7 @@ GLOBAL void AMD_2
1495
1495
  /* FINALIZE THE NEW ELEMENT */
1496
1496
  /* ========================================================================= */
1497
1497
 
1498
- AMD_DEBUG2 (("ME = "ID" DONE\n", me)) ;
1498
+ AMD_DEBUG2 (("ME = " ID " DONE\n", me)) ;
1499
1499
  Nv [me] = nvpiv ;
1500
1500
  /* save the length of the list for the new element me */
1501
1501
  Len [me] = p - pme1 ;
@@ -1542,10 +1542,10 @@ GLOBAL void AMD_2
1542
1542
  }
1543
1543
 
1544
1544
  #ifndef NDEBUG
1545
- AMD_DEBUG2 (("finalize done nel "ID" n "ID"\n ::::\n", nel, n)) ;
1545
+ AMD_DEBUG2 (("finalize done nel " ID " n " ID "\n ::::\n", nel, n)) ;
1546
1546
  for (pme = Pe [me] ; pme <= Pe [me] + Len [me] - 1 ; pme++)
1547
1547
  {
1548
- AMD_DEBUG3 ((" "ID"", Iw [pme])) ;
1548
+ AMD_DEBUG3 ((" " ID "", Iw [pme])) ;
1549
1549
  }
1550
1550
  AMD_DEBUG3 (("\n")) ;
1551
1551
  #endif
@@ -1649,13 +1649,13 @@ GLOBAL void AMD_2
1649
1649
  AMD_DEBUG2 (("\nTree:\n")) ;
1650
1650
  for (i = 0 ; i < n ; i++)
1651
1651
  {
1652
- AMD_DEBUG2 ((" "ID" parent: "ID" ", i, Pe [i])) ;
1652
+ AMD_DEBUG2 ((" " ID " parent: " ID " ", i, Pe [i])) ;
1653
1653
  ASSERT (Pe [i] >= EMPTY && Pe [i] < n) ;
1654
1654
  if (Nv [i] > 0)
1655
1655
  {
1656
1656
  /* this is an element */
1657
1657
  e = i ;
1658
- AMD_DEBUG2 ((" element, size is "ID"\n", Elen [i])) ;
1658
+ AMD_DEBUG2 ((" element, size is " ID "\n", Elen [i])) ;
1659
1659
  ASSERT (Elen [e] > 0) ;
1660
1660
  }
1661
1661
  AMD_DEBUG2 (("\n")) ;
@@ -1665,7 +1665,7 @@ GLOBAL void AMD_2
1665
1665
  {
1666
1666
  if (Nv [e] > 0)
1667
1667
  {
1668
- AMD_DEBUG3 (("Element e= "ID" size "ID" nv "ID" \n", e,
1668
+ AMD_DEBUG3 (("Element e= " ID " size " ID " nv " ID " \n", e,
1669
1669
  Elen [e], Nv [e])) ;
1670
1670
  }
1671
1671
  }
@@ -1675,10 +1675,10 @@ GLOBAL void AMD_2
1675
1675
  Int cnt ;
1676
1676
  if (Nv [i] == 0)
1677
1677
  {
1678
- AMD_DEBUG3 (("i unordered: "ID"\n", i)) ;
1678
+ AMD_DEBUG3 (("i unordered: " ID "\n", i)) ;
1679
1679
  j = Pe [i] ;
1680
1680
  cnt = 0 ;
1681
- AMD_DEBUG3 ((" j: "ID"\n", j)) ;
1681
+ AMD_DEBUG3 ((" j: " ID "\n", j)) ;
1682
1682
  if (j == EMPTY)
1683
1683
  {
1684
1684
  AMD_DEBUG3 ((" i is a dense variable\n")) ;
@@ -1688,14 +1688,14 @@ GLOBAL void AMD_2
1688
1688
  ASSERT (j >= 0 && j < n) ;
1689
1689
  while (Nv [j] == 0)
1690
1690
  {
1691
- AMD_DEBUG3 ((" j : "ID"\n", j)) ;
1691
+ AMD_DEBUG3 ((" j : " ID "\n", j)) ;
1692
1692
  j = Pe [j] ;
1693
- AMD_DEBUG3 ((" j:: "ID"\n", j)) ;
1693
+ AMD_DEBUG3 ((" j:: " ID "\n", j)) ;
1694
1694
  cnt++ ;
1695
1695
  if (cnt > n) break ;
1696
1696
  }
1697
1697
  e = j ;
1698
- AMD_DEBUG3 ((" got to e: "ID"\n", e)) ;
1698
+ AMD_DEBUG3 ((" got to e: " ID "\n", e)) ;
1699
1699
  }
1700
1700
  }
1701
1701
  }
@@ -1717,10 +1717,10 @@ GLOBAL void AMD_2
1717
1717
  * was selected as pivot.
1718
1718
  * ------------------------------------------------------------- */
1719
1719
 
1720
- AMD_DEBUG1 (("Path compression, i unordered: "ID"\n", i)) ;
1720
+ AMD_DEBUG1 (("Path compression, i unordered: " ID "\n", i)) ;
1721
1721
  j = Pe [i] ;
1722
1722
  ASSERT (j >= EMPTY && j < n) ;
1723
- AMD_DEBUG3 ((" j: "ID"\n", j)) ;
1723
+ AMD_DEBUG3 ((" j: " ID "\n", j)) ;
1724
1724
  if (j == EMPTY)
1725
1725
  {
1726
1726
  /* Skip a dense variable. It has no parent. */
@@ -1731,14 +1731,14 @@ GLOBAL void AMD_2
1731
1731
  /* while (j is a variable) */
1732
1732
  while (Nv [j] == 0)
1733
1733
  {
1734
- AMD_DEBUG3 ((" j : "ID"\n", j)) ;
1734
+ AMD_DEBUG3 ((" j : " ID "\n", j)) ;
1735
1735
  j = Pe [j] ;
1736
- AMD_DEBUG3 ((" j:: "ID"\n", j)) ;
1736
+ AMD_DEBUG3 ((" j:: " ID "\n", j)) ;
1737
1737
  ASSERT (j >= 0 && j < n) ;
1738
1738
  }
1739
1739
  /* got to an element e */
1740
1740
  e = j ;
1741
- AMD_DEBUG3 (("got to e: "ID"\n", e)) ;
1741
+ AMD_DEBUG3 (("got to e: " ID "\n", e)) ;
1742
1742
 
1743
1743
  /* -------------------------------------------------------------
1744
1744
  * traverse the path again from i to e, and compress the path
@@ -1751,7 +1751,7 @@ GLOBAL void AMD_2
1751
1751
  while (Nv [j] == 0)
1752
1752
  {
1753
1753
  jnext = Pe [j] ;
1754
- AMD_DEBUG3 (("j "ID" jnext "ID"\n", j, jnext)) ;
1754
+ AMD_DEBUG3 (("j " ID " jnext " ID "\n", j, jnext)) ;
1755
1755
  Pe [j] = e ;
1756
1756
  j = jnext ;
1757
1757
  ASSERT (j >= 0 && j < n) ;
@@ -1837,6 +1837,6 @@ GLOBAL void AMD_2
1837
1837
  k = Next [i] ;
1838
1838
  ASSERT (k >= 0 && k < n) ;
1839
1839
  Last [k] = i ;
1840
- AMD_DEBUG2 ((" perm ["ID"] = "ID"\n", k, i)) ;
1840
+ AMD_DEBUG2 ((" perm [" ID "] = " ID "\n", k, i)) ;
1841
1841
  }
1842
1842
  }
@@ -60,7 +60,7 @@ GLOBAL size_t AMD_aat /* returns nz in A+A' */
60
60
  {
61
61
  p1 = Ap [k] ;
62
62
  p2 = Ap [k+1] ;
63
- AMD_DEBUG2 (("\nAAT Column: "ID" p1: "ID" p2: "ID"\n", k, p1, p2)) ;
63
+ AMD_DEBUG2 (("\nAAT Column: " ID " p1: " ID " p2: " ID "\n", k, p1, p2)) ;
64
64
 
65
65
  /* construct A+A' */
66
66
  for (p = p1 ; p < p2 ; )
@@ -73,7 +73,7 @@ GLOBAL size_t AMD_aat /* returns nz in A+A' */
73
73
  * add both A (j,k) and A (k,j) to the matrix A+A' */
74
74
  Len [j]++ ;
75
75
  Len [k]++ ;
76
- AMD_DEBUG3 ((" upper ("ID","ID") ("ID","ID")\n", j,k, k,j));
76
+ AMD_DEBUG3 ((" upper (" ID "," ID ") (" ID "," ID ")\n", j,k, k,j));
77
77
  p++ ;
78
78
  }
79
79
  else if (j == k)
@@ -102,7 +102,7 @@ GLOBAL size_t AMD_aat /* returns nz in A+A' */
102
102
  * add both A (i,j) and A (j,i) to the matrix A+A' */
103
103
  Len [i]++ ;
104
104
  Len [j]++ ;
105
- AMD_DEBUG3 ((" lower ("ID","ID") ("ID","ID")\n",
105
+ AMD_DEBUG3 ((" lower (" ID "," ID ") (" ID "," ID ")\n",
106
106
  i,j, j,i)) ;
107
107
  pj++ ;
108
108
  }
@@ -135,7 +135,7 @@ GLOBAL size_t AMD_aat /* returns nz in A+A' */
135
135
  * add both A (i,j) and A (j,i) to the matrix A+A' */
136
136
  Len [i]++ ;
137
137
  Len [j]++ ;
138
- AMD_DEBUG3 ((" lower cleanup ("ID","ID") ("ID","ID")\n",
138
+ AMD_DEBUG3 ((" lower cleanup (" ID "," ID ") (" ID "," ID ")\n",
139
139
  i,j, j,i)) ;
140
140
  }
141
141
  }
@@ -167,7 +167,7 @@ GLOBAL size_t AMD_aat /* returns nz in A+A' */
167
167
 
168
168
  AMD_DEBUG1 (("AMD nz in A+A', excluding diagonal (nzaat) = %g\n",
169
169
  (scs_float) nzaat)) ;
170
- AMD_DEBUG1 ((" nzboth: "ID" nz: "ID" nzdiag: "ID" symmetry: %g\n",
170
+ AMD_DEBUG1 ((" nzboth: " ID " nz: " ID " nzdiag: " ID " symmetry: %g\n",
171
171
  nzboth, nz, nzdiag, sym)) ;
172
172
 
173
173
  if (Info != (scs_float *) NULL)
@@ -41,7 +41,7 @@ GLOBAL void AMD_debug_init ( char *s )
41
41
  }
42
42
  if (AMD_debug >= 0)
43
43
  {
44
- printf ("%s: AMD_debug_init, D= "ID"\n", s, AMD_debug) ;
44
+ printf ("%s: AMD_debug_init, D= " ID "\n", s, AMD_debug) ;
45
45
  }
46
46
  }
47
47
 
@@ -75,7 +75,7 @@ GLOBAL void AMD_dump (
75
75
 
76
76
  if (AMD_debug < 0) return ;
77
77
  ASSERT (pfree <= iwlen) ;
78
- AMD_DEBUG3 (("\nAMD dump, pfree: "ID"\n", pfree)) ;
78
+ AMD_DEBUG3 (("\nAMD dump, pfree: " ID "\n", pfree)) ;
79
79
  for (i = 0 ; i < n ; i++)
80
80
  {
81
81
  pe = Pe [i] ;
@@ -88,7 +88,7 @@ GLOBAL void AMD_dump (
88
88
  {
89
89
  if (nv == 0)
90
90
  {
91
- AMD_DEBUG3 (("\nI "ID": nonprincipal: ", i)) ;
91
+ AMD_DEBUG3 (("\nI " ID ": nonprincipal: ", i)) ;
92
92
  ASSERT (elen == EMPTY) ;
93
93
  if (pe == EMPTY)
94
94
  {
@@ -98,13 +98,13 @@ GLOBAL void AMD_dump (
98
98
  else
99
99
  {
100
100
  ASSERT (pe < EMPTY) ;
101
- AMD_DEBUG3 ((" i "ID" -> parent "ID"\n", i, FLIP (Pe[i])));
101
+ AMD_DEBUG3 ((" i " ID " -> parent " ID "\n", i, FLIP (Pe[i])));
102
102
  }
103
103
  }
104
104
  else
105
105
  {
106
- AMD_DEBUG3 (("\nI "ID": active principal supervariable:\n",i));
107
- AMD_DEBUG3 ((" nv(i): "ID" Flag: %d\n", nv, (nv < 0))) ;
106
+ AMD_DEBUG3 (("\nI " ID ": active principal supervariable:\n",i));
107
+ AMD_DEBUG3 ((" nv(i): " ID " Flag: %d\n", nv, (nv < 0))) ;
108
108
  ASSERT (elen >= 0) ;
109
109
  ASSERT (nv > 0 && pe >= 0) ;
110
110
  p = pe ;
@@ -114,7 +114,7 @@ GLOBAL void AMD_dump (
114
114
  for (k = 0 ; k < len ; k++)
115
115
  {
116
116
  j = Iw [p] ;
117
- AMD_DEBUG3 ((" "ID"", j)) ;
117
+ AMD_DEBUG3 ((" " ID "", j)) ;
118
118
  ASSERT (j >= 0 && j < n) ;
119
119
  if (k == elen-1) AMD_DEBUG3 ((" : ")) ;
120
120
  p++ ;
@@ -127,13 +127,13 @@ GLOBAL void AMD_dump (
127
127
  e = i ;
128
128
  if (w == 0)
129
129
  {
130
- AMD_DEBUG3 (("\nE "ID": absorbed element: w "ID"\n", e, w)) ;
130
+ AMD_DEBUG3 (("\nE " ID ": absorbed element: w " ID "\n", e, w)) ;
131
131
  ASSERT (nv > 0 && pe < 0) ;
132
- AMD_DEBUG3 ((" e "ID" -> parent "ID"\n", e, FLIP (Pe [e]))) ;
132
+ AMD_DEBUG3 ((" e " ID " -> parent " ID "\n", e, FLIP (Pe [e]))) ;
133
133
  }
134
134
  else
135
135
  {
136
- AMD_DEBUG3 (("\nE "ID": unabsorbed element: w "ID"\n", e, w)) ;
136
+ AMD_DEBUG3 (("\nE " ID ": unabsorbed element: w " ID "\n", e, w)) ;
137
137
  ASSERT (nv > 0 && pe >= 0) ;
138
138
  p = pe ;
139
139
  AMD_DEBUG3 ((" : ")) ;
@@ -141,7 +141,7 @@ GLOBAL void AMD_dump (
141
141
  for (k = 0 ; k < len ; k++)
142
142
  {
143
143
  j = Iw [p] ;
144
- AMD_DEBUG3 ((" "ID"", j)) ;
144
+ AMD_DEBUG3 ((" " ID "", j)) ;
145
145
  ASSERT (j >= 0 && j < n) ;
146
146
  p++ ;
147
147
  }
@@ -162,7 +162,7 @@ GLOBAL void AMD_dump (
162
162
  AMD_DEBUG3 ((ID": \n", deg)) ;
163
163
  for (i = Head [deg] ; i != EMPTY ; i = Next [i])
164
164
  {
165
- AMD_DEBUG3 ((" "ID" : next "ID" last "ID" deg "ID"\n",
165
+ AMD_DEBUG3 ((" " ID " : next " ID " last " ID " deg " ID "\n",
166
166
  i, Next [i], Last [i], Degree [i])) ;
167
167
  ASSERT (i >= 0 && i < n && ilast == Last [i] &&
168
168
  deg == Degree [i]) ;
@@ -64,7 +64,7 @@ GLOBAL Int AMD_post_tree
64
64
  /* get head of stack */
65
65
  ASSERT (head < nn) ;
66
66
  i = Stack [head] ;
67
- AMD_DEBUG1 (("head of stack "ID" \n", i)) ;
67
+ AMD_DEBUG1 (("head of stack " ID " \n", i)) ;
68
68
  ASSERT (i >= 0 && i < nn) ;
69
69
 
70
70
  if (Child [i] != EMPTY)
@@ -85,7 +85,7 @@ GLOBAL Int AMD_post_tree
85
85
  {
86
86
  ASSERT (h > 0) ;
87
87
  Stack [h--] = f ;
88
- AMD_DEBUG1 (("push "ID" on stack\n", f)) ;
88
+ AMD_DEBUG1 (("push " ID " on stack\n", f)) ;
89
89
  ASSERT (f >= 0 && f < nn) ;
90
90
  }
91
91
  ASSERT (Stack [h] == i) ;
@@ -98,7 +98,7 @@ GLOBAL Int AMD_post_tree
98
98
  /* the children of i (if there were any) are already ordered */
99
99
  /* remove i from the stack and order it. Front i is kth front */
100
100
  head-- ;
101
- AMD_DEBUG1 (("pop "ID" order "ID"\n", i, k)) ;
101
+ AMD_DEBUG1 (("pop " ID " order " ID "\n", i, k)) ;
102
102
  Order [i] = k++ ;
103
103
  ASSERT (k <= nn) ;
104
104
  }