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