comparison libinterp/dldfcn/dmperm.cc @ 21152:8ad3907b8fad

require CXSparse 2.2 or later * oct-sparse.h: Require CXSparse 2.2 or later. * dmperm.cc, SparseCmplxQR.cc, SparseQR.cc, sparse-dmsolve.cc: Assume CXSparse 2.2 or later.
author John W. Eaton <jwe@octave.org>
date Fri, 29 Jan 2016 14:55:20 -0500
parents e06e600f396a
children 791dcb32b657
comparison
equal deleted inserted replaced
21151:bfd5e48c41a1 21152:8ad3907b8fad
82 csm.i = cm.xridx (); 82 csm.i = cm.xridx ();
83 } 83 }
84 84
85 if (nargout <= 1 || rank) 85 if (nargout <= 1 || rank)
86 { 86 {
87 #if defined (CS_VER) && (CS_VER >= 2)
88 octave_idx_type *jmatch = CXSPARSE_NAME (_maxtrans) (&csm, 0); 87 octave_idx_type *jmatch = CXSPARSE_NAME (_maxtrans) (&csm, 0);
89 #else
90 octave_idx_type *jmatch = CXSPARSE_NAME (_maxtrans) (&csm);
91 #endif
92 if (rank) 88 if (rank)
93 { 89 {
94 octave_idx_type r = 0; 90 octave_idx_type r = 0;
95 for (octave_idx_type i = 0; i < nc; i++) 91 for (octave_idx_type i = 0; i < nc; i++)
96 if (jmatch[nr+i] >= 0) 92 if (jmatch[nr+i] >= 0)
101 retval(0) = put_int (jmatch + nr, nc); 97 retval(0) = put_int (jmatch + nr, nc);
102 CXSPARSE_NAME (_free) (jmatch); 98 CXSPARSE_NAME (_free) (jmatch);
103 } 99 }
104 else 100 else
105 { 101 {
106 #if defined (CS_VER) && (CS_VER >= 2)
107 CXSPARSE_NAME (d) *dm = CXSPARSE_NAME(_dmperm) (&csm, 0); 102 CXSPARSE_NAME (d) *dm = CXSPARSE_NAME(_dmperm) (&csm, 0);
108 #else
109 CXSPARSE_NAME (d) *dm = CXSPARSE_NAME(_dmperm) (&csm);
110 #endif
111 103
112 //retval(5) = put_int (dm->rr, 5); 104 //retval(5) = put_int (dm->rr, 5);
113 //retval(4) = put_int (dm->cc, 5); 105 //retval(4) = put_int (dm->cc, 5);
114 #if defined (CS_VER) && (CS_VER >= 2)
115 retval = ovl (put_int (dm->p, nr), put_int (dm->q, nc), 106 retval = ovl (put_int (dm->p, nr), put_int (dm->q, nc),
116 put_int (dm->r, dm->nb+1), put_int (dm->s, dm->nb+1)); 107 put_int (dm->r, dm->nb+1), put_int (dm->s, dm->nb+1));
117 #else 108
118 retval = ovl (put_int (dm->P, nr), put_int (dm->Q, nc),
119 put_int (dm->R, dm->nb+1), put_int (dm->S, dm->nb+1));
120 #endif
121 CXSPARSE_NAME (_dfree) (dm); 109 CXSPARSE_NAME (_dfree) (dm);
122 } 110 }
123 111
124 return retval; 112 return retval;
125 } 113 }