Mercurial > jwe > octave
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 } |