Mercurial > hg > octave-nkf
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) |