comparison liboctave/numeric/dbleQR.cc @ 17769:49a5a4be04a1

maint: Use GNU style coding conventions for code in liboctave/ * liboctave/array/Array-C.cc, liboctave/array/Array-b.cc, liboctave/array/Array-ch.cc, liboctave/array/Array-d.cc, liboctave/array/Array-f.cc, liboctave/array/Array-fC.cc, liboctave/array/Array-util.cc, liboctave/array/Array-util.h, liboctave/array/Array.cc, liboctave/array/Array.h, liboctave/array/Array3.h, liboctave/array/CColVector.cc, liboctave/array/CColVector.h, liboctave/array/CDiagMatrix.cc, liboctave/array/CDiagMatrix.h, liboctave/array/CMatrix.cc, liboctave/array/CMatrix.h, liboctave/array/CNDArray.cc, liboctave/array/CNDArray.h, liboctave/array/CRowVector.cc, liboctave/array/CRowVector.h, liboctave/array/CSparse.cc, liboctave/array/CSparse.h, liboctave/array/DiagArray2.h, liboctave/array/MArray.cc, liboctave/array/MArray.h, liboctave/array/MDiagArray2.cc, liboctave/array/MDiagArray2.h, liboctave/array/MSparse.cc, liboctave/array/MSparse.h, liboctave/array/MatrixType.cc, liboctave/array/MatrixType.h, liboctave/array/PermMatrix.h, liboctave/array/Range.cc, liboctave/array/Range.h, liboctave/array/Sparse.cc, liboctave/array/Sparse.h, liboctave/array/boolMatrix.cc, liboctave/array/boolMatrix.h, liboctave/array/boolNDArray.cc, liboctave/array/boolNDArray.h, liboctave/array/boolSparse.cc, liboctave/array/boolSparse.h, liboctave/array/chMatrix.cc, liboctave/array/chMatrix.h, liboctave/array/chNDArray.cc, liboctave/array/chNDArray.h, liboctave/array/dColVector.h, liboctave/array/dDiagMatrix.cc, liboctave/array/dDiagMatrix.h, liboctave/array/dMatrix.cc, liboctave/array/dMatrix.h, liboctave/array/dNDArray.cc, liboctave/array/dNDArray.h, liboctave/array/dRowVector.h, liboctave/array/dSparse.cc, liboctave/array/dSparse.h, liboctave/array/dim-vector.cc, liboctave/array/dim-vector.h, liboctave/array/fCColVector.cc, liboctave/array/fCColVector.h, liboctave/array/fCDiagMatrix.cc, liboctave/array/fCDiagMatrix.h, liboctave/array/fCMatrix.cc, liboctave/array/fCMatrix.h, liboctave/array/fCNDArray.cc, liboctave/array/fCNDArray.h, liboctave/array/fCRowVector.cc, liboctave/array/fCRowVector.h, liboctave/array/fColVector.h, liboctave/array/fDiagMatrix.cc, liboctave/array/fDiagMatrix.h, liboctave/array/fMatrix.cc, liboctave/array/fMatrix.h, liboctave/array/fNDArray.cc, liboctave/array/fNDArray.h, liboctave/array/fRowVector.h, liboctave/array/idx-vector.cc, liboctave/array/idx-vector.h, liboctave/array/intNDArray.cc, liboctave/array/intNDArray.h, liboctave/cruft/misc/blaswrap.c, liboctave/cruft/misc/quit.cc, liboctave/numeric/CmplxCHOL.cc, liboctave/numeric/CmplxCHOL.h, liboctave/numeric/CmplxGEPBAL.cc, liboctave/numeric/CmplxGEPBAL.h, liboctave/numeric/CmplxHESS.h, liboctave/numeric/CmplxLU.cc, liboctave/numeric/CmplxLU.h, liboctave/numeric/CmplxQR.cc, liboctave/numeric/CmplxQRP.cc, liboctave/numeric/CmplxQRP.h, liboctave/numeric/CmplxSCHUR.h, liboctave/numeric/CmplxSVD.cc, liboctave/numeric/CmplxSVD.h, liboctave/numeric/CollocWt.h, liboctave/numeric/DAE.h, liboctave/numeric/DAEFunc.h, liboctave/numeric/DAERT.h, liboctave/numeric/DAERTFunc.h, liboctave/numeric/DASPK.cc, liboctave/numeric/DASRT.cc, liboctave/numeric/DASRT.h, liboctave/numeric/DASSL.cc, liboctave/numeric/DET.h, liboctave/numeric/EIG.cc, liboctave/numeric/EIG.h, liboctave/numeric/LSODE.cc, liboctave/numeric/ODE.h, liboctave/numeric/ODEFunc.h, liboctave/numeric/ODES.h, liboctave/numeric/ODESFunc.h, liboctave/numeric/Quad.cc, liboctave/numeric/Quad.h, liboctave/numeric/SparseCmplxCHOL.h, liboctave/numeric/SparseCmplxLU.cc, liboctave/numeric/SparseCmplxLU.h, liboctave/numeric/SparseCmplxQR.cc, liboctave/numeric/SparseCmplxQR.h, liboctave/numeric/SparseQR.cc, liboctave/numeric/SparseQR.h, liboctave/numeric/SparsedbleCHOL.h, liboctave/numeric/SparsedbleLU.cc, liboctave/numeric/SparsedbleLU.h, liboctave/numeric/base-aepbal.h, liboctave/numeric/base-dae.h, liboctave/numeric/base-de.h, liboctave/numeric/base-lu.cc, liboctave/numeric/base-lu.h, liboctave/numeric/base-min.h, liboctave/numeric/base-qr.h, liboctave/numeric/bsxfun.h, liboctave/numeric/dbleCHOL.cc, liboctave/numeric/dbleCHOL.h, liboctave/numeric/dbleGEPBAL.h, liboctave/numeric/dbleHESS.h, liboctave/numeric/dbleLU.cc, liboctave/numeric/dbleLU.h, liboctave/numeric/dbleQR.cc, liboctave/numeric/dbleQRP.cc, liboctave/numeric/dbleQRP.h, liboctave/numeric/dbleSCHUR.cc, liboctave/numeric/dbleSCHUR.h, liboctave/numeric/dbleSVD.cc, liboctave/numeric/dbleSVD.h, liboctave/numeric/eigs-base.cc, liboctave/numeric/fCmplxAEPBAL.cc, liboctave/numeric/fCmplxAEPBAL.h, liboctave/numeric/fCmplxCHOL.cc, liboctave/numeric/fCmplxCHOL.h, liboctave/numeric/fCmplxGEPBAL.cc, liboctave/numeric/fCmplxGEPBAL.h, liboctave/numeric/fCmplxHESS.h, liboctave/numeric/fCmplxLU.cc, liboctave/numeric/fCmplxLU.h, liboctave/numeric/fCmplxQR.cc, liboctave/numeric/fCmplxQR.h, liboctave/numeric/fCmplxQRP.cc, liboctave/numeric/fCmplxQRP.h, liboctave/numeric/fCmplxSCHUR.cc, liboctave/numeric/fCmplxSCHUR.h, liboctave/numeric/fCmplxSVD.h, liboctave/numeric/fEIG.cc, liboctave/numeric/fEIG.h, liboctave/numeric/floatCHOL.cc, liboctave/numeric/floatCHOL.h, liboctave/numeric/floatGEPBAL.cc, liboctave/numeric/floatGEPBAL.h, liboctave/numeric/floatHESS.h, liboctave/numeric/floatLU.cc, liboctave/numeric/floatLU.h, liboctave/numeric/floatQR.cc, liboctave/numeric/floatQRP.cc, liboctave/numeric/floatQRP.h, liboctave/numeric/floatSCHUR.cc, liboctave/numeric/floatSCHUR.h, liboctave/numeric/floatSVD.cc, liboctave/numeric/floatSVD.h, liboctave/numeric/lo-mappers.cc, liboctave/numeric/lo-mappers.h, liboctave/numeric/lo-specfun.cc, liboctave/numeric/lo-specfun.h, liboctave/numeric/oct-convn.cc, liboctave/numeric/oct-fftw.cc, liboctave/numeric/oct-fftw.h, liboctave/numeric/oct-norm.cc, liboctave/numeric/oct-rand.cc, liboctave/numeric/oct-rand.h, liboctave/numeric/randgamma.c, liboctave/numeric/randgamma.h, liboctave/numeric/randmtzig.c, liboctave/numeric/randpoisson.c, liboctave/numeric/randpoisson.h, liboctave/numeric/sparse-base-chol.h, liboctave/numeric/sparse-base-lu.h, liboctave/numeric/sparse-dmsolve.cc, liboctave/operators/Sparse-diag-op-defs.h, liboctave/operators/Sparse-op-defs.h, liboctave/operators/mx-inlines.cc, liboctave/system/dir-ops.h, liboctave/system/file-ops.cc, liboctave/system/file-stat.cc, liboctave/system/file-stat.h, liboctave/system/lo-sysdep.cc, liboctave/system/lo-sysdep.h, liboctave/system/mach-info.cc, liboctave/system/mach-info.h, liboctave/system/oct-env.cc, liboctave/system/oct-group.cc, liboctave/system/oct-syscalls.cc, liboctave/system/oct-syscalls.h, liboctave/system/oct-time.h, liboctave/system/tempname.c, liboctave/util/action-container.h, liboctave/util/base-list.h, liboctave/util/cmd-edit.cc, liboctave/util/cmd-edit.h, liboctave/util/cmd-hist.cc, liboctave/util/cmd-hist.h, liboctave/util/data-conv.cc, liboctave/util/data-conv.h, liboctave/util/kpse.cc, liboctave/util/lo-array-gripes.cc, liboctave/util/lo-cieee.c, liboctave/util/lo-regexp.cc, liboctave/util/lo-utils.cc, liboctave/util/oct-alloc.cc, liboctave/util/oct-base64.cc, liboctave/util/oct-binmap.h, liboctave/util/oct-cmplx.h, liboctave/util/oct-glob.cc, liboctave/util/oct-inttypes.cc, liboctave/util/oct-inttypes.h, liboctave/util/oct-locbuf.cc, liboctave/util/oct-locbuf.h, liboctave/util/oct-mem.h, liboctave/util/oct-mutex.cc, liboctave/util/oct-refcount.h, liboctave/util/oct-shlib.cc, liboctave/util/oct-shlib.h, liboctave/util/oct-sort.cc, liboctave/util/oct-sort.h, liboctave/util/pathsearch.cc, liboctave/util/pathsearch.h, liboctave/util/sparse-util.cc, liboctave/util/str-vec.cc, liboctave/util/str-vec.h, liboctave/util/unwind-prot.h, liboctave/util/url-transfer.cc, liboctave/util/url-transfer.h: Use GNU style coding conventions.
author Rik <rik@octave.org>
date Sat, 26 Oct 2013 18:57:05 -0700
parents d63878346099
children 8e056300994b
comparison
equal deleted inserted replaced
17768:271c0cce0f64 17769:49a5a4be04a1
119 119
120 if (m > 0) 120 if (m > 0)
121 { 121 {
122 // workspace query. 122 // workspace query.
123 double rlwork; 123 double rlwork;
124 F77_XFCN (dgeqrf, DGEQRF, (m, n, afact.fortran_vec (), m, tau, &rlwork, -1, info)); 124 F77_XFCN (dgeqrf, DGEQRF, (m, n, afact.fortran_vec (), m, tau,
125 &rlwork, -1, info));
125 126
126 // allocate buffer and do the job. 127 // allocate buffer and do the job.
127 octave_idx_type lwork = rlwork; 128 octave_idx_type lwork = rlwork;
128 lwork = std::max (lwork, static_cast<octave_idx_type> (1)); 129 lwork = std::max (lwork, static_cast<octave_idx_type> (1));
129 OCTAVE_LOCAL_BUFFER (double, work, lwork); 130 OCTAVE_LOCAL_BUFFER (double, work, lwork);
130 F77_XFCN (dgeqrf, DGEQRF, (m, n, afact.fortran_vec (), m, tau, work, lwork, info)); 131 F77_XFCN (dgeqrf, DGEQRF, (m, n, afact.fortran_vec (), m, tau,
132 work, lwork, info));
131 } 133 }
132 134
133 form (n, afact, tau, qr_type); 135 form (n, afact, tau, qr_type);
134 } 136 }
135 137
162 for (octave_idx_type j = 0; j < n; j++) 164 for (octave_idx_type j = 0; j < n; j++)
163 { 165 {
164 octave_idx_type i = 0; 166 octave_idx_type i = 0;
165 for (; i <= j; i++) 167 for (; i <= j; i++)
166 r.xelem (i, j) = afact.xelem (i, j); 168 r.xelem (i, j) = afact.xelem (i, j);
167 for (;i < k; i++) 169 for (; i < k; i++)
168 r.xelem (i, j) = 0; 170 r.xelem (i, j) = 0;
169 } 171 }
170 afact = Matrix (); // optimize memory 172 afact = Matrix (); // optimize memory
171 } 173 }
172 else 174 else
212 214
213 if (u.length () == m && v.length () == n) 215 if (u.length () == m && v.length () == n)
214 { 216 {
215 ColumnVector utmp = u, vtmp = v; 217 ColumnVector utmp = u, vtmp = v;
216 OCTAVE_LOCAL_BUFFER (double, w, 2*k); 218 OCTAVE_LOCAL_BUFFER (double, w, 2*k);
217 F77_XFCN (dqr1up, DQR1UP, (m, n, k, q.fortran_vec (), m, r.fortran_vec (), k, 219 F77_XFCN (dqr1up, DQR1UP, (m, n, k, q.fortran_vec (),
220 m, r.fortran_vec (), k,
218 utmp.fortran_vec (), vtmp.fortran_vec (), w)); 221 utmp.fortran_vec (), vtmp.fortran_vec (), w));
219 } 222 }
220 else 223 else
221 (*current_liboctave_error_handler) ("qrupdate: dimensions mismatch"); 224 (*current_liboctave_error_handler) ("qrupdate: dimensions mismatch");
222 } 225 }
232 { 235 {
233 OCTAVE_LOCAL_BUFFER (double, w, 2*k); 236 OCTAVE_LOCAL_BUFFER (double, w, 2*k);
234 for (volatile octave_idx_type i = 0; i < u.cols (); i++) 237 for (volatile octave_idx_type i = 0; i < u.cols (); i++)
235 { 238 {
236 ColumnVector utmp = u.column (i), vtmp = v.column (i); 239 ColumnVector utmp = u.column (i), vtmp = v.column (i);
237 F77_XFCN (dqr1up, DQR1UP, (m, n, k, q.fortran_vec (), m, r.fortran_vec (), k, 240 F77_XFCN (dqr1up, DQR1UP, (m, n, k, q.fortran_vec (),
238 utmp.fortran_vec (), vtmp.fortran_vec (), w)); 241 m, r.fortran_vec (), k,
242 utmp.fortran_vec (), vtmp.fortran_vec (),
243 w));
239 } 244 }
240 } 245 }
241 else 246 else
242 (*current_liboctave_error_handler) ("qrupdate: dimensions mismatch"); 247 (*current_liboctave_error_handler) ("qrupdate: dimensions mismatch");
243 } 248 }
370 for (volatile octave_idx_type i = 0; i < js.length (); i++) 375 for (volatile octave_idx_type i = 0; i < js.length (); i++)
371 { 376 {
372 octave_idx_type ii = i; 377 octave_idx_type ii = i;
373 F77_XFCN (dqrdec, DQRDEC, (m, n - ii, k == m ? k : k - ii, 378 F77_XFCN (dqrdec, DQRDEC, (m, n - ii, k == m ? k : k - ii,
374 q.fortran_vec (), q.rows (), 379 q.fortran_vec (), q.rows (),
375 r.fortran_vec (), r.rows (), js(ii) + 1, w)); 380 r.fortran_vec (), r.rows (),
381 js(ii) + 1, w));
376 } 382 }
377 if (k < m) 383 if (k < m)
378 { 384 {
379 q.resize (m, k - nj); 385 q.resize (m, k - nj);
380 r.resize (k - nj, n - nj); 386 r.resize (k - nj, n - nj);
488 (*current_liboctave_error_handler) ("qrupdate: dimensions mismatch"); 494 (*current_liboctave_error_handler) ("qrupdate: dimensions mismatch");
489 } 495 }
490 496
491 static 497 static
492 Matrix insert_col (const Matrix& a, octave_idx_type i, 498 Matrix insert_col (const Matrix& a, octave_idx_type i,
493 const ColumnVector& x) 499 const ColumnVector& x)
494 { 500 {
495 Matrix retval (a.rows (), a.columns () + 1); 501 Matrix retval (a.rows (), a.columns () + 1);
496 retval.assign (idx_vector::colon, idx_vector (0, i), 502 retval.assign (idx_vector::colon, idx_vector (0, i),
497 a.index (idx_vector::colon, idx_vector (0, i))); 503 a.index (idx_vector::colon, idx_vector (0, i)));
498 retval.assign (idx_vector::colon, idx_vector (i), x); 504 retval.assign (idx_vector::colon, idx_vector (i), x);
501 return retval; 507 return retval;
502 } 508 }
503 509
504 static 510 static
505 Matrix insert_row (const Matrix& a, octave_idx_type i, 511 Matrix insert_row (const Matrix& a, octave_idx_type i,
506 const RowVector& x) 512 const RowVector& x)
507 { 513 {
508 Matrix retval (a.rows () + 1, a.columns ()); 514 Matrix retval (a.rows () + 1, a.columns ());
509 retval.assign (idx_vector (0, i), idx_vector::colon, 515 retval.assign (idx_vector (0, i), idx_vector::colon,
510 a.index (idx_vector (0, i), idx_vector::colon)); 516 a.index (idx_vector (0, i), idx_vector::colon));
511 retval.assign (idx_vector (i), idx_vector::colon, x); 517 retval.assign (idx_vector (i), idx_vector::colon, x);
530 return retval; 536 return retval;
531 } 537 }
532 538
533 static 539 static
534 Matrix shift_cols (const Matrix& a, 540 Matrix shift_cols (const Matrix& a,
535 octave_idx_type i, octave_idx_type j) 541 octave_idx_type i, octave_idx_type j)
536 { 542 {
537 octave_idx_type n = a.columns (); 543 octave_idx_type n = a.columns ();
538 Array<octave_idx_type> p (n); 544 Array<octave_idx_type> p (n);
539 for (octave_idx_type k = 0; k < n; k++) p(k) = k; 545 for (octave_idx_type k = 0; k < n; k++) p(k) = k;
540 if (i < j) 546 if (i < j)