@@ -46,7 +46,7 @@ void my_version (int version [3], char date [128])
46
46
//------------------------------------------------------------------------------
47
47
48
48
int my_check_version (const char * package , int major , int minor , int patch ,
49
- const char * date , int version [3 ])
49
+ const char * date , int version [3 ], long long unsigned int vercode )
50
50
{
51
51
// version and date in package header file:
52
52
printf ("\n------------------------------------------------------------"
@@ -60,9 +60,19 @@ int my_check_version (const char *package, int major, int minor, int patch,
60
60
int ok = (major == version [0 ]) &&
61
61
(minor == version [1 ]) &&
62
62
(patch == version [2 ]) ;
63
- if (!ok ) printf ("%s: version in header (%d.%d.%d) "
63
+ if (!ok )
64
+ {
65
+ printf ("%s: version in header (%d.%d.%d) "
64
66
"does not match library (%d.%d.%d)\n" , package ,
65
67
major , minor , patch , version [0 ], version [1 ], version [2 ]) ;
68
+ }
69
+ printf ("%s version code: %llu\n" , package , vercode ) ;
70
+ ok = ok && (vercode == SUITESPARSE__VERCODE (major , minor , patch )) ;
71
+ if (!ok )
72
+ {
73
+ printf ("%s: version code mismatch: %llu %llu\n" , package ,
74
+ vercode , SUITESPARSE__VERCODE (major , minor , patch )) ;
75
+ }
66
76
return (ok ) ;
67
77
}
68
78
@@ -82,7 +92,9 @@ int my_function (void) // returns 0 on success, -1 on failure
82
92
char my_date [128 ] ;
83
93
my_version (version , my_date ) ;
84
94
OK (my_check_version ("MY" , MY_MAJOR_VERSION , MY_MINOR_VERSION ,
85
- MY_PATCH_VERSION , MY_DATE , version )) ;
95
+ MY_PATCH_VERSION , MY_DATE , version ,
96
+ SUITESPARSE__VERCODE (MY_MAJOR_VERSION , MY_MINOR_VERSION ,
97
+ MY_PATCH_VERSION ))) ;
86
98
printf ("MY date: %s\n" , my_date ) ;
87
99
OK (strcmp (my_date , MY_DATE ) == 0 ) ;
88
100
@@ -93,15 +105,16 @@ int my_function (void) // returns 0 on success, -1 on failure
93
105
int v = SuiteSparse_version (version ) ;
94
106
OK (my_check_version ("SuiteSparse_config" ,
95
107
SUITESPARSE_MAIN_VERSION , SUITESPARSE_SUB_VERSION ,
96
- SUITESPARSE_SUBSUB_VERSION , SUITESPARSE_DATE , version )) ;
108
+ SUITESPARSE_SUBSUB_VERSION , SUITESPARSE_DATE , version ,
109
+ SUITESPARSE__VERSION )) ;
97
110
98
111
//--------------------------------------------------------------------------
99
112
// CXSparse
100
113
//--------------------------------------------------------------------------
101
114
102
115
cxsparse_version (version ) ;
103
116
OK (my_check_version ("CXSparse" , CS_VER , CS_SUBVER , CS_SUBSUB , CS_DATE ,
104
- version )) ;
117
+ version , CXSPARSE__VERSION )) ;
105
118
106
119
cs_dl * A = NULL ;
107
120
@@ -130,11 +143,14 @@ int my_function (void) // returns 0 on success, -1 on failure
130
143
amd_version (version ) ;
131
144
OK (my_check_version ("AMD" ,
132
145
AMD_MAIN_VERSION , AMD_SUB_VERSION , AMD_SUBSUB_VERSION , AMD_DATE ,
133
- version )) ;
146
+ version , AMD__VERSION )) ;
134
147
135
148
int64_t P [N ] ;
136
149
OK (amd_l_order (n , Ap , Ai , P , NULL , NULL ) == AMD_OK ) ;
137
- for (int k = 0 ; k < n ; k ++ ) printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
150
+ for (int k = 0 ; k < n ; k ++ )
151
+ {
152
+ printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
153
+ }
138
154
139
155
//--------------------------------------------------------------------------
140
156
// BTF
@@ -143,16 +159,22 @@ int my_function (void) // returns 0 on success, -1 on failure
143
159
btf_version (version ) ;
144
160
OK (my_check_version ("BTF" ,
145
161
BTF_MAIN_VERSION , BTF_SUB_VERSION , BTF_SUBSUB_VERSION , BTF_DATE ,
146
- version )) ;
162
+ version , BTF__VERSION )) ;
147
163
148
164
double work ;
149
165
int64_t nmatch ;
150
166
int64_t Q [N ], R [N + 1 ], Work [5 * N ] ;
151
167
int64_t nblocks = btf_l_order (n , Ap , Ai , -1 , & work , P , Q , R , & nmatch ,
152
168
Work ) ;
153
169
OK (nblocks > 0 ) ;
154
- for (int k = 0 ; k < n ; k ++ ) printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
155
- for (int k = 0 ; k < n ; k ++ ) printf ("Q [%d] = %d\n" , k , (int ) Q [k ]) ;
170
+ for (int k = 0 ; k < n ; k ++ )
171
+ {
172
+ printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
173
+ }
174
+ for (int k = 0 ; k < n ; k ++ )
175
+ {
176
+ printf ("Q [%d] = %d\n" , k , (int ) Q [k ]) ;
177
+ }
156
178
printf ("nblocks %d\n" , (int ) nblocks ) ;
157
179
158
180
//--------------------------------------------------------------------------
@@ -162,12 +184,18 @@ int my_function (void) // returns 0 on success, -1 on failure
162
184
camd_version (version ) ;
163
185
OK (my_check_version ("CAMD" ,
164
186
CAMD_MAIN_VERSION , CAMD_SUB_VERSION , CAMD_SUBSUB_VERSION , CAMD_DATE ,
165
- version )) ;
187
+ version , CAMD__VERSION )) ;
166
188
167
189
int64_t Cmem [N ] ;
168
- for (int k = 0 ; k < n ; k ++ ) Cmem [k ] = 0 ;
190
+ for (int k = 0 ; k < n ; k ++ )
191
+ {
192
+ Cmem [k ] = 0 ;
193
+ }
169
194
OK (camd_l_order (n , Ap , Ai , P , NULL , NULL , Cmem ) == CAMD_OK ) ;
170
- for (int k = 0 ; k < n ; k ++ ) printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
195
+ for (int k = 0 ; k < n ; k ++ )
196
+ {
197
+ printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
198
+ }
171
199
172
200
//--------------------------------------------------------------------------
173
201
// CCOLAMD
@@ -176,14 +204,17 @@ int my_function (void) // returns 0 on success, -1 on failure
176
204
ccolamd_version (version ) ;
177
205
OK (my_check_version ("CCOLAMD" ,
178
206
CCOLAMD_MAIN_VERSION , CCOLAMD_SUB_VERSION , CCOLAMD_SUBSUB_VERSION ,
179
- CCOLAMD_DATE , version )) ;
207
+ CCOLAMD_DATE , version , CCOLAMD__VERSION )) ;
180
208
181
209
int64_t Alen = ccolamd_l_recommended (NNZ , n , n ) ;
182
- int64_t * Awork = malloc (Alen * sizeof (int64_t )) ;
210
+ int64_t * Awork = ( int64_t * ) malloc (Alen * sizeof (int64_t )) ;
183
211
OK (Awork != NULL ) ;
184
212
memcpy (Awork , Ai , NNZ * sizeof (int64_t )) ;
185
213
OK (ccolamd_l (n , n , Alen , Awork , P , NULL , NULL , Cmem ) == CCOLAMD_OK ) ;
186
- for (int k = 0 ; k < n ; k ++ ) printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
214
+ for (int k = 0 ; k < n ; k ++ )
215
+ {
216
+ printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
217
+ }
187
218
free (Awork ) ;
188
219
189
220
//--------------------------------------------------------------------------
@@ -193,14 +224,17 @@ int my_function (void) // returns 0 on success, -1 on failure
193
224
colamd_version (version ) ;
194
225
OK (my_check_version ("COLAMD" ,
195
226
COLAMD_MAIN_VERSION , COLAMD_SUB_VERSION , COLAMD_SUBSUB_VERSION ,
196
- COLAMD_DATE , version )) ;
227
+ COLAMD_DATE , version , COLAMD__VERSION )) ;
197
228
198
229
Alen = ccolamd_l_recommended (NNZ , n , n ) ;
199
- Awork = malloc (Alen * sizeof (int64_t )) ;
230
+ Awork = ( int64_t * ) malloc (Alen * sizeof (int64_t )) ;
200
231
OK (Awork != NULL ) ;
201
232
memcpy (Awork , Ai , NNZ * sizeof (int64_t )) ;
202
233
OK (colamd_l (n , n , Alen , Awork , P , NULL , NULL ) == COLAMD_OK ) ;
203
- for (int k = 0 ; k < n ; k ++ ) printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
234
+ for (int k = 0 ; k < n ; k ++ )
235
+ {
236
+ printf ("P [%d] = %d\n" , k , (int ) P [k ]) ;
237
+ }
204
238
free (Awork ) ;
205
239
206
240
//--------------------------------------------------------------------------
@@ -210,7 +244,7 @@ int my_function (void) // returns 0 on success, -1 on failure
210
244
v = cholmod_l_version (version ) ;
211
245
OK (my_check_version ("CHOLMOD" ,
212
246
CHOLMOD_MAIN_VERSION , CHOLMOD_SUB_VERSION , CHOLMOD_SUBSUB_VERSION ,
213
- CHOLMOD_DATE , version )) ;
247
+ CHOLMOD_DATE , version , CHOLMOD__VERSION )) ;
214
248
215
249
cholmod_common cc ;
216
250
OK (cholmod_l_start (& cc )) ;
@@ -224,7 +258,8 @@ int my_function (void) // returns 0 on success, -1 on failure
224
258
OK (GxB_Global_Option_get (GxB_LIBRARY_VERSION , version ) == GrB_SUCCESS ) ;
225
259
OK (my_check_version ("GraphBLAS" ,
226
260
GxB_IMPLEMENTATION_MAJOR , GxB_IMPLEMENTATION_MINOR ,
227
- GxB_IMPLEMENTATION_SUB , GxB_IMPLEMENTATION_DATE , version )) ;
261
+ GxB_IMPLEMENTATION_SUB , GxB_IMPLEMENTATION_DATE , version ,
262
+ GxB_IMPLEMENTATION )) ;
228
263
OK (GrB_finalize ( ) == GrB_SUCCESS ) ;
229
264
#endif
230
265
@@ -238,7 +273,8 @@ int my_function (void) // returns 0 on success, -1 on failure
238
273
OK (LAGraph_Version (version , verstring , msg ) == GrB_SUCCESS ) ;
239
274
OK (my_check_version ("LAGraph" ,
240
275
LAGRAPH_VERSION_MAJOR , LAGRAPH_VERSION_MINOR , LAGRAPH_VERSION_UPDATE ,
241
- LAGRAPH_DATE , version )) ;
276
+ LAGRAPH_DATE , version , SUITESPARSE__VERCODE (LAGRAPH_VERSION_MAJOR ,
277
+ LAGRAPH_VERSION_MINOR , LAGRAPH_VERSION_UPDATE ))) ;
242
278
OK (LAGraph_Finalize (msg ) == GrB_SUCCESS ) ;
243
279
#endif
244
280
@@ -249,7 +285,7 @@ int my_function (void) // returns 0 on success, -1 on failure
249
285
klu_version (version ) ;
250
286
OK (my_check_version ("KLU" ,
251
287
KLU_MAIN_VERSION , KLU_SUB_VERSION , KLU_SUBSUB_VERSION ,
252
- KLU_DATE , version )) ;
288
+ KLU_DATE , version , KLU__VERSION )) ;
253
289
254
290
double b [N ] = {8. , 45. } ;
255
291
double xgood [N ] = {36.4 , -32.7 } ;
@@ -283,7 +319,7 @@ int my_function (void) // returns 0 on success, -1 on failure
283
319
ldl_version (version ) ;
284
320
OK (my_check_version ("LDL" ,
285
321
LDL_MAIN_VERSION , LDL_SUB_VERSION , LDL_SUBSUB_VERSION ,
286
- LDL_DATE , version )) ;
322
+ LDL_DATE , version , LDL__VERSION )) ;
287
323
288
324
double x2 [N ] ;
289
325
P [0 ] = 0 ;
@@ -305,7 +341,7 @@ int my_function (void) // returns 0 on success, -1 on failure
305
341
RBio_version (version ) ;
306
342
OK (my_check_version ("RBio" ,
307
343
RBIO_MAIN_VERSION , RBIO_SUB_VERSION , RBIO_SUBSUB_VERSION ,
308
- RBIO_DATE , version )) ;
344
+ RBIO_DATE , version , RBIO__VERSION )) ;
309
345
310
346
char mtype [4 ], key [8 ], title [80 ] ;
311
347
strncpy (key , "simple" , 8 ) ;
@@ -341,7 +377,7 @@ int my_function (void) // returns 0 on success, -1 on failure
341
377
SPEX_version (version ) ;
342
378
OK (my_check_version ("SPEX" ,
343
379
SPEX_VERSION_MAJOR , SPEX_VERSION_MINOR , SPEX_VERSION_SUB , SPEX_DATE ,
344
- version )) ;
380
+ version , SPEX__VERSION )) ;
345
381
OK (SPEX_finalize ( ) == SPEX_OK ) ;
346
382
347
383
//--------------------------------------------------------------------------
@@ -351,7 +387,7 @@ int my_function (void) // returns 0 on success, -1 on failure
351
387
SuiteSparseQR_C_version (version ) ;
352
388
OK (my_check_version ("SuiteSparseQR" ,
353
389
SPQR_MAIN_VERSION , SPQR_SUB_VERSION , SPQR_SUBSUB_VERSION , SPQR_DATE ,
354
- version )) ;
390
+ version , SPQR__VERSION )) ;
355
391
356
392
cholmod_sparse * A2 , A2_struct ;
357
393
cholmod_dense * B2 , B2_struct ;
@@ -398,7 +434,7 @@ int my_function (void) // returns 0 on success, -1 on failure
398
434
umfpack_version (version ) ;
399
435
OK (my_check_version ("UMFPACK" ,
400
436
UMFPACK_MAIN_VERSION , UMFPACK_SUB_VERSION , UMFPACK_SUBSUB_VERSION ,
401
- UMFPACK_DATE , version )) ;
437
+ UMFPACK_DATE , version , UMFPACK__VERSION )) ;
402
438
403
439
printf ("%s\n" , UMFPACK_VERSION ) ;
404
440
printf ("%s" , UMFPACK_COPYRIGHT ) ;
@@ -418,7 +454,10 @@ int my_function (void) // returns 0 on success, -1 on failure
418
454
umfpack_dl_free_symbolic (& Sym ) ;
419
455
result = umfpack_dl_solve (UMFPACK_A , Ap , Ai , Ax , x , b , Num , Control , Info );
420
456
umfpack_dl_free_numeric (& Num ) ;
421
- for (int i = 0 ; i < n ; i ++ ) printf ("x [%d] = %g\n" , i , x [i ]) ;
457
+ for (int i = 0 ; i < n ; i ++ )
458
+ {
459
+ printf ("x [%d] = %g\n" , i , x [i ]) ;
460
+ }
422
461
err = 0 ;
423
462
for (int i = 0 ; i < n ; i ++ )
424
463
{
@@ -429,6 +468,13 @@ int my_function (void) // returns 0 on success, -1 on failure
429
468
umfpack_dl_report_status (Control , result ) ;
430
469
umfpack_dl_report_info (Control , Info ) ;
431
470
471
+ //--------------------------------------------------------------------------
472
+ // not used
473
+ //--------------------------------------------------------------------------
474
+
475
+ // printf ("version code: %llu\n", Mongoose__VERSION) ;
476
+ // printf ("version code: %llu\n", PARU__VERSION) ;
477
+
432
478
//--------------------------------------------------------------------------
433
479
// free workspace and return result
434
480
//--------------------------------------------------------------------------
0 commit comments