Mercurial > octave
comparison libinterp/corefcn/qz.cc @ 29961:7d6709900da7
eliminate octave:: namespace tags in DEFUN and DEFMETHOD and more
Files affected: __betainc__.cc, __contourc__.cc, __eigs__.cc,
__expint__.cc, __ftp__.cc, __gammainc__.cc, __ichol__.cc, __ilu__.cc,
__magick_read__.cc, __pchip_deriv__.cc, __qp__.cc, amd.cc, balance.cc,
besselj.cc, bsxfun.cc, call-stack.cc, ccolamd.cc, cellfun.cc, chol.cc,
colamd.cc, colloc.cc, conv2.cc, daspk.cc, dasrt.cc, dassl.cc, data.cc,
defaults.cc, dirfns.cc, display.cc, dlmread.cc, dmperm.cc, dot.cc,
eig.cc, ellipj.cc, environment.cc, error.cc, event-manager.cc, fft.cc,
fft2.cc, fftn.cc, file-io.cc, find.cc, gcd.cc, getgrent.cc,
getpwent.cc, getrusage.cc, gsvd.cc, hash.cc, help.cc, hess.cc,
hex2num.cc, input.cc, inv.cc, jsondecode.cc, jsonencode.cc,
load-path.cc, load-save.cc, lookup.cc, lsode.cc, lu.cc, max.cc,
mgorth.cc, oct-hist.cc, ordqz.cc, ordschur.cc, pager.cc, pr-output.cc,
psi.cc, qr.cc, quad.cc, quadcc.cc, qz.cc, rand.cc, regexp.cc,
schur.cc, settings.cc, sighandlers.cc, sparse.cc, spparms.cc,
sqrtm.cc, stream-euler.cc, strfind.cc, strfns.cc, sub2ind.cc, svd.cc,
symbfact.cc, symtab.cc, syscalls.cc, sysdep.cc, time.cc, toplev.cc,
tril.cc, typecast.cc, urlwrite.cc, utils.cc, variables.cc,
__delaunayn__.cc, __fltk_uigetfile__.cc, __glpk__.cc,
__init_gnuplot__.cc, __ode15__.cc, __voronoi__.cc, audiodevinfo.cc,
audioread.cc, convhulln.cc, fftw.cc, gzip.cc, ov-cell.cc, ov-class.cc,
ov-classdef.cc, ov-fcn-handle.cc, ov-struct.cc, ov-typeinfo.cc,
ov-usr-fcn.cc, octave.cc, lex.ll, oct-parse.yy, profiler.cc,
andpt-eval.cc.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 14 Aug 2021 22:48:52 -0400 |
parents | 32c3a5805893 |
children | a61e1a0f6024 |
comparison
equal
deleted
inserted
replaced
29960:939bef0b66e0 | 29961:7d6709900da7 |
---|---|
241 #if defined (DEBUG) | 241 #if defined (DEBUG) |
242 octave_stdout << "qz: check matrix A" << std::endl; | 242 octave_stdout << "qz: check matrix A" << std::endl; |
243 #endif | 243 #endif |
244 | 244 |
245 // Matrix A: check dimensions. | 245 // Matrix A: check dimensions. |
246 F77_INT nn = octave::to_f77_int (args(0).rows ()); | 246 F77_INT nn = to_f77_int (args(0).rows ()); |
247 F77_INT nc = octave::to_f77_int (args(0).columns ()); | 247 F77_INT nc = to_f77_int (args(0).columns ()); |
248 | 248 |
249 #if defined (DEBUG) | 249 #if defined (DEBUG) |
250 octave_stdout << "Matrix A dimensions: (" << nn << ',' << nc << ')' | 250 octave_stdout << "Matrix A dimensions: (" << nn << ',' << nc << ')' |
251 << std::endl; | 251 << std::endl; |
252 #endif | 252 #endif |
271 #if defined (DEBUG) | 271 #if defined (DEBUG) |
272 octave_stdout << "qz: check matrix B" << std::endl; | 272 octave_stdout << "qz: check matrix B" << std::endl; |
273 #endif | 273 #endif |
274 | 274 |
275 // Extract argument 2 (bb, or cbb if complex). | 275 // Extract argument 2 (bb, or cbb if complex). |
276 F77_INT b_nr = octave::to_f77_int (args(1).rows ()); | 276 F77_INT b_nr = to_f77_int (args(1).rows ()); |
277 F77_INT b_nc = octave::to_f77_int (args(1).columns ()); | 277 F77_INT b_nc = to_f77_int (args(1).columns ()); |
278 | 278 |
279 if (nn != b_nc || nn != b_nr) | 279 if (nn != b_nc || nn != b_nr) |
280 ::err_nonconformant (); | 280 ::err_nonconformant (); |
281 | 281 |
282 Matrix bb; | 282 Matrix bb; |
409 if (complex_case) | 409 if (complex_case) |
410 { | 410 { |
411 // Complex case. | 411 // Complex case. |
412 | 412 |
413 // The QR decomposition of cbb. | 413 // The QR decomposition of cbb. |
414 octave::math::qr<ComplexMatrix> cbqr (cbb); | 414 math::qr<ComplexMatrix> cbqr (cbb); |
415 // The R matrix of QR decomposition for cbb. | 415 // The R matrix of QR decomposition for cbb. |
416 cbb = cbqr.R (); | 416 cbb = cbqr.R (); |
417 // (Q*)caa for following work. | 417 // (Q*)caa for following work. |
418 caa = (cbqr.Q ().hermitian ()) * caa; | 418 caa = (cbqr.Q ().hermitian ()) * caa; |
419 CQ = CQ * cbqr.Q (); | 419 CQ = CQ * cbqr.Q (); |
477 #if defined (DEBUG) | 477 #if defined (DEBUG) |
478 octave_stdout << "qz: performing qr decomposition of bb" << std::endl; | 478 octave_stdout << "qz: performing qr decomposition of bb" << std::endl; |
479 #endif | 479 #endif |
480 | 480 |
481 // Compute the QR factorization of bb. | 481 // Compute the QR factorization of bb. |
482 octave::math::qr<Matrix> bqr (bb); | 482 math::qr<Matrix> bqr (bb); |
483 | 483 |
484 #if defined (DEBUG) | 484 #if defined (DEBUG) |
485 octave_stdout << "qz: qr (bb) done; now performing qz decomposition" | 485 octave_stdout << "qz: qr (bb) done; now performing qz decomposition" |
486 << std::endl; | 486 << std::endl; |
487 #endif | 487 #endif |
687 for (F77_INT i = 0; i < nn; i++) | 687 for (F77_INT i = 0; i < nn; i++) |
688 { | 688 { |
689 if (betar(i) != 0) | 689 if (betar(i) != 0) |
690 tmp(i) = Complex (alphar(i), alphai(i)) / betar(i); | 690 tmp(i) = Complex (alphar(i), alphai(i)) / betar(i); |
691 else | 691 else |
692 tmp(i) = octave::numeric_limits<double>::Inf (); | 692 tmp(i) = numeric_limits<double>::Inf (); |
693 } | 693 } |
694 | 694 |
695 gev = tmp; | 695 gev = tmp; |
696 } | 696 } |
697 } | 697 } |