18 #define PRI(format,x) { if (x >= 0) { PRINTF ((format, x)) ; }}
25 double n, ndiv, nmultsubs_ldl, nmultsubs_lu, lnz, lnzd ;
37 lnzd = (n >= 0 && lnz >= 0) ? (n + lnz) : (-1) ;
41 "\ncamd: approximate minimum degree ordering, results:\n"
49 PRINTF ((
"out of memory\n")) ;
53 PRINTF ((
"invalid matrix\n")) ;
57 PRINTF ((
"OK, but jumbled\n")) ;
65 PRI (
" n, dimension of A: %.20g\n", n);
66 PRI (
" nz, number of nonzeros in A: %.20g\n",
68 PRI (
" symmetry of A: %.4f\n",
70 PRI (
" number of nonzeros on diagonal: %.20g\n",
72 PRI (
" nonzeros in pattern of A+A' (excl. diagonal): %.20g\n",
74 PRI (
" # dense rows/columns of A+A': %.20g\n",
78 PRI (
" memory used, in bytes: %.20g\n",
80 PRI (
" # of memory compactions: %.20g\n",
85 " The following approximate statistics are for a subsequent\n"
86 " factorization of A(P,P) + A(P,P)'. They are slight upper\n"
87 " bounds if there are no dense rows/columns in A+A', and become\n"
88 " looser if dense rows/columns exist.\n\n")) ;
90 PRI (
" nonzeros in L (excluding diagonal): %.20g\n",
92 PRI (
" nonzeros in L (including diagonal): %.20g\n",
94 PRI (
" # divide operations for LDL' or LU: %.20g\n",
96 PRI (
" # multiply-subtract operations for LDL': %.20g\n",
98 PRI (
" # multiply-subtract operations for LU: %.20g\n",
100 PRI (
" max nz. in any column of L (incl. diagonal): %.20g\n",
105 if (n >= 0 && ndiv >= 0 && nmultsubs_ldl >= 0 && nmultsubs_lu >= 0)
108 " chol flop count for real A, sqrt counted as 1 flop: %.20g\n"
109 " LDL' flop count for real A: %.20g\n"
110 " LDL' flop count for complex A: %.20g\n"
111 " LU flop count for real A (with no pivoting): %.20g\n"
112 " LU flop count for complex A (with no pivoting): %.20g\n\n",
113 n + ndiv + 2*nmultsubs_ldl,
114 ndiv + 2*nmultsubs_ldl,
115 9*ndiv + 8*nmultsubs_ldl,
116 ndiv + 2*nmultsubs_lu,
117 9*ndiv + 8*nmultsubs_lu)) ;
#define CAMD_NMULTSUBS_LDL
#define CAMD_NMULTSUBS_LU
#define CAMD_OUT_OF_MEMORY
#define CAMD_NZ_A_PLUS_AT
#define CAMD_OK_BUT_JUMBLED
GLOBAL void CAMD_info(double Info[])