Mercurial > octave
comparison liboctave/numeric/SparseQR.cc @ 21136:7cac4e7458f2
maint: clean up code around calls to current_liboctave_error_handler.
Remove statements after call to handler that are no longer reachable.
Place input validation first and immediately call handler if necessary.
Change if/error_handler/else to if/error_handler and re-indent code.
* Array-util.cc, Array.cc, CColVector.cc, CDiagMatrix.cc, CMatrix.cc,
CNDArray.cc, CRowVector.cc, CSparse.cc, DiagArray2.cc, MArray.cc,
PermMatrix.cc, Sparse.cc, Sparse.h, chMatrix.cc, chNDArray.cc, dColVector.cc,
dDiagMatrix.cc, dMatrix.cc, dNDArray.cc, dRowVector.cc, dSparse.cc,
fCColVector.cc, fCDiagMatrix.cc, fCMatrix.cc, fCNDArray.cc, fCRowVector.cc,
fColVector.cc, fDiagMatrix.cc, fMatrix.cc, fNDArray.cc, fRowVector.cc,
idx-vector.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, CmplxGEPBAL.cc, CmplxHESS.cc,
CmplxLU.cc, CmplxQR.cc, CmplxSCHUR.cc, CmplxSVD.cc, DASPK.cc, EIG.cc, LSODE.cc,
Quad.cc, SparseCmplxCHOL.cc, SparseCmplxLU.cc, SparseCmplxQR.cc, SparseQR.cc,
SparsedbleCHOL.cc, SparsedbleLU.cc, base-lu.cc, bsxfun-defs.cc, dbleAEPBAL.cc,
dbleCHOL.cc, dbleGEPBAL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleSCHUR.cc,
dbleSVD.cc, eigs-base.cc, fCmplxAEPBAL.cc, fCmplxCHOL.cc, fCmplxLU.cc,
fCmplxQR.cc, fCmplxSCHUR.cc, fEIG.cc, floatAEPBAL.cc, floatCHOL.cc,
floatGEPBAL.cc, floatHESS.cc, floatLU.cc, floatQR.cc, floatSCHUR.cc,
floatSVD.cc, lo-specfun.cc, oct-fftw.cc, oct-rand.cc, oct-spparms.cc,
sparse-base-chol.cc, sparse-dmsolve.cc, file-ops.cc, lo-sysdep.cc,
mach-info.cc, oct-env.cc, oct-syscalls.cc, cmd-edit.cc, cmd-hist.cc,
data-conv.cc, lo-ieee.cc, lo-regexp.cc, oct-base64.cc, oct-shlib.cc,
pathsearch.cc, singleton-cleanup.cc, sparse-util.cc, unwind-prot.cc:
Remove statements after call to handler that are no longer reachable.
Place input validation first and immediately call handler if necessary.
Change if/error_handler/else to if/error_handler and re-indent code.
author | Rik <rik@octave.org> |
---|---|
date | Sat, 23 Jan 2016 13:52:03 -0800 |
parents | bd1752782e56 |
children | 8ad3907b8fad |
comparison
equal
deleted
inserted
replaced
21135:95da3bc8a281 | 21136:7cac4e7458f2 |
---|---|
57 N = CXSPARSE_DNAME (_qr) (&A, S); | 57 N = CXSPARSE_DNAME (_qr) (&A, S); |
58 END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE; | 58 END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE; |
59 if (! N) | 59 if (! N) |
60 (*current_liboctave_error_handler) | 60 (*current_liboctave_error_handler) |
61 ("SparseQR: sparse matrix QR factorization filled"); | 61 ("SparseQR: sparse matrix QR factorization filled"); |
62 | |
62 count = 1; | 63 count = 1; |
63 | 64 |
64 #else | 65 #else |
65 (*current_liboctave_error_handler) | 66 (*current_liboctave_error_handler) |
66 ("SparseQR: support for CXSparse was unavailable or disabled when liboctave was built"); | 67 ("SparseQR: support for CXSparse was unavailable or disabled when liboctave was built"); |
182 const double *bvec = b.fortran_vec (); | 183 const double *bvec = b.fortran_vec (); |
183 Matrix ret (b_nr, b_nc); | 184 Matrix ret (b_nr, b_nc); |
184 double *vec = ret.fortran_vec (); | 185 double *vec = ret.fortran_vec (); |
185 if (nr < 0 || nc < 0 || nr != b_nr) | 186 if (nr < 0 || nc < 0 || nr != b_nr) |
186 (*current_liboctave_error_handler) ("matrix dimension mismatch"); | 187 (*current_liboctave_error_handler) ("matrix dimension mismatch"); |
187 else if (nr == 0 || nc == 0 || b_nc == 0) | 188 |
189 if (nr == 0 || nc == 0 || b_nc == 0) | |
188 ret = Matrix (nc, b_nc, 0.0); | 190 ret = Matrix (nc, b_nc, 0.0); |
189 else | 191 else |
190 { | 192 { |
191 OCTAVE_LOCAL_BUFFER (double, buf, S->m2); | 193 OCTAVE_LOCAL_BUFFER (double, buf, S->m2); |
192 for (volatile octave_idx_type j = 0, idx = 0; j < b_nc; j++, idx+=b_nr) | 194 for (volatile octave_idx_type j = 0, idx = 0; j < b_nc; j++, idx+=b_nr) |
228 octave_idx_type nr = nrows; | 230 octave_idx_type nr = nrows; |
229 Matrix ret (nr, nr); | 231 Matrix ret (nr, nr); |
230 double *vec = ret.fortran_vec (); | 232 double *vec = ret.fortran_vec (); |
231 if (nr < 0 || nc < 0) | 233 if (nr < 0 || nc < 0) |
232 (*current_liboctave_error_handler) ("matrix dimension mismatch"); | 234 (*current_liboctave_error_handler) ("matrix dimension mismatch"); |
233 else if (nr == 0 || nc == 0) | 235 |
236 if (nr == 0 || nc == 0) | |
234 ret = Matrix (nc, nr, 0.0); | 237 ret = Matrix (nc, nr, 0.0); |
235 else | 238 else |
236 { | 239 { |
237 OCTAVE_LOCAL_BUFFER (double, bvec, nr + 1); | 240 OCTAVE_LOCAL_BUFFER (double, bvec, nr + 1); |
238 for (octave_idx_type i = 0; i < nr; i++) | 241 for (octave_idx_type i = 0; i < nr; i++) |
284 Matrix x; | 287 Matrix x; |
285 | 288 |
286 if (nr < 0 || nc < 0 || nr != b_nr) | 289 if (nr < 0 || nc < 0 || nr != b_nr) |
287 (*current_liboctave_error_handler) | 290 (*current_liboctave_error_handler) |
288 ("matrix dimension mismatch in solution of minimum norm problem"); | 291 ("matrix dimension mismatch in solution of minimum norm problem"); |
289 else if (nr == 0 || nc == 0 || b_nc == 0) | 292 |
293 if (nr == 0 || nc == 0 || b_nc == 0) | |
290 x = Matrix (nc, b_nc, 0.0); | 294 x = Matrix (nc, b_nc, 0.0); |
291 else if (nr >= nc) | 295 else if (nr >= nc) |
292 { | 296 { |
293 SparseQR q (a, 3); | 297 SparseQR q (a, 3); |
294 if (! q.ok ()) | 298 if (! q.ok ()) |
388 volatile octave_idx_type ii, x_nz; | 392 volatile octave_idx_type ii, x_nz; |
389 | 393 |
390 if (nr < 0 || nc < 0 || nr != b_nr) | 394 if (nr < 0 || nc < 0 || nr != b_nr) |
391 (*current_liboctave_error_handler) | 395 (*current_liboctave_error_handler) |
392 ("matrix dimension mismatch in solution of minimum norm problem"); | 396 ("matrix dimension mismatch in solution of minimum norm problem"); |
393 else if (nr == 0 || nc == 0 || b_nc == 0) | 397 |
398 if (nr == 0 || nc == 0 || b_nc == 0) | |
394 x = SparseMatrix (nc, b_nc); | 399 x = SparseMatrix (nc, b_nc); |
395 else if (nr >= nc) | 400 else if (nr >= nc) |
396 { | 401 { |
397 SparseQR q (a, 3); | 402 SparseQR q (a, 3); |
398 if (! q.ok ()) | 403 if (! q.ok ()) |
538 ComplexMatrix x; | 543 ComplexMatrix x; |
539 | 544 |
540 if (nr < 0 || nc < 0 || nr != b_nr) | 545 if (nr < 0 || nc < 0 || nr != b_nr) |
541 (*current_liboctave_error_handler) | 546 (*current_liboctave_error_handler) |
542 ("matrix dimension mismatch in solution of minimum norm problem"); | 547 ("matrix dimension mismatch in solution of minimum norm problem"); |
543 else if (nr == 0 || nc == 0 || b_nc == 0) | 548 |
549 if (nr == 0 || nc == 0 || b_nc == 0) | |
544 x = ComplexMatrix (nc, b_nc, Complex (0.0, 0.0)); | 550 x = ComplexMatrix (nc, b_nc, Complex (0.0, 0.0)); |
545 else if (nr >= nc) | 551 else if (nr >= nc) |
546 { | 552 { |
547 SparseQR q (a, 3); | 553 SparseQR q (a, 3); |
548 if (! q.ok ()) | 554 if (! q.ok ()) |
707 volatile octave_idx_type ii, x_nz; | 713 volatile octave_idx_type ii, x_nz; |
708 | 714 |
709 if (nr < 0 || nc < 0 || nr != b_nr) | 715 if (nr < 0 || nc < 0 || nr != b_nr) |
710 (*current_liboctave_error_handler) | 716 (*current_liboctave_error_handler) |
711 ("matrix dimension mismatch in solution of minimum norm problem"); | 717 ("matrix dimension mismatch in solution of minimum norm problem"); |
712 else if (nr == 0 || nc == 0 || b_nc == 0) | 718 |
719 if (nr == 0 || nc == 0 || b_nc == 0) | |
713 x = SparseComplexMatrix (nc, b_nc); | 720 x = SparseComplexMatrix (nc, b_nc); |
714 else if (nr >= nc) | 721 else if (nr >= nc) |
715 { | 722 { |
716 SparseQR q (a, 3); | 723 SparseQR q (a, 3); |
717 if (! q.ok ()) | 724 if (! q.ok ()) |