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);