Mercurial > octave
comparison liboctave/numeric/sparse-dmsolve.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 | 7962dbca527f |
children | 791dcb32b657 |
comparison
equal
deleted
inserted
replaced
21151:bfd5e48c41a1 | 21152:8ad3907b8fad |
---|---|
320 // Cast away const on A, with full knowledge that CSparse won't touch it. | 320 // Cast away const on A, with full knowledge that CSparse won't touch it. |
321 // Prevents the methods below making a copy of the data. | 321 // Prevents the methods below making a copy of the data. |
322 csm.p = const_cast<octave_idx_type *>(a.cidx ()); | 322 csm.p = const_cast<octave_idx_type *>(a.cidx ()); |
323 csm.i = const_cast<octave_idx_type *>(a.ridx ()); | 323 csm.i = const_cast<octave_idx_type *>(a.ridx ()); |
324 | 324 |
325 #if defined (CS_VER) && (CS_VER >= 2) | |
326 CXSPARSE_DNAME (d) *dm = CXSPARSE_DNAME(_dmperm) (&csm, 0); | 325 CXSPARSE_DNAME (d) *dm = CXSPARSE_DNAME(_dmperm) (&csm, 0); |
327 octave_idx_type *p = dm->p; | 326 octave_idx_type *p = dm->p; |
328 octave_idx_type *q = dm->q; | 327 octave_idx_type *q = dm->q; |
329 #else | 328 |
330 CXSPARSE_DNAME (d) *dm = CXSPARSE_DNAME(_dmperm) (&csm); | |
331 octave_idx_type *p = dm->P; | |
332 octave_idx_type *q = dm->Q; | |
333 #endif | |
334 OCTAVE_LOCAL_BUFFER (octave_idx_type, pinv, nr); | 329 OCTAVE_LOCAL_BUFFER (octave_idx_type, pinv, nr); |
335 for (octave_idx_type i = 0; i < nr; i++) | 330 for (octave_idx_type i = 0; i < nr; i++) |
336 pinv[p[i]] = i; | 331 pinv[p[i]] = i; |
337 RT btmp; | 332 RT btmp; |
338 dmsolve_permute (btmp, b, pinv); | 333 dmsolve_permute (btmp, b, pinv); |