Mercurial > octave
comparison liboctave/CmplxQR.cc @ 1251:97eac19837dc
[project @ 1995-04-11 15:58:32 by jwe]
author | jwe |
---|---|
date | Tue, 11 Apr 1995 15:58:32 +0000 |
parents | b6360f2d4fa6 |
children | bb67a902760b |
comparison
equal
deleted
inserted
replaced
1250:5cca5ae20299 | 1251:97eac19837dc |
---|---|
30 #include "lo-error.h" | 30 #include "lo-error.h" |
31 #include "f77-uscore.h" | 31 #include "f77-uscore.h" |
32 | 32 |
33 extern "C" | 33 extern "C" |
34 { | 34 { |
35 int F77_FCN (zgeqrf) (const int*, const int*, Complex*, const int*, | 35 int F77_FCN (zgeqrf) (const int&, const int&, Complex*, const int&, |
36 Complex*, Complex*, const int*, int*); | 36 Complex*, Complex*, const int&, int&); |
37 | 37 |
38 int F77_FCN (zungqr) (const int*, const int*, const int*, Complex*, | 38 int F77_FCN (zungqr) (const int&, const int&, const int&, Complex*, |
39 const int*, Complex*, Complex*, const int*, int*); | 39 const int&, Complex*, Complex*, const int&, int&); |
40 } | 40 } |
41 | 41 |
42 ComplexQR::ComplexQR (const ComplexMatrix& a, QR::type qr_type) | 42 ComplexQR::ComplexQR (const ComplexMatrix& a, QR::type qr_type) |
43 { | 43 { |
44 int m = a.rows (); | 44 int m = a.rows (); |
64 copy (tmp_data, a.data (), a.length ()); | 64 copy (tmp_data, a.data (), a.length ()); |
65 } | 65 } |
66 else | 66 else |
67 tmp_data = dup (a.data (), a.length ()); | 67 tmp_data = dup (a.data (), a.length ()); |
68 | 68 |
69 F77_FCN (zgeqrf) (&m, &n, tmp_data, &m, tau, work, &lwork, &info); | 69 F77_FCN (zgeqrf) (m, n, tmp_data, m, tau, work, lwork, info); |
70 | 70 |
71 delete [] work; | 71 delete [] work; |
72 | 72 |
73 if (qr_type == QR::raw) | 73 if (qr_type == QR::raw) |
74 { | 74 { |
101 } | 101 } |
102 | 102 |
103 lwork = 32*m; | 103 lwork = 32*m; |
104 work = new Complex[lwork]; | 104 work = new Complex[lwork]; |
105 | 105 |
106 F77_FCN (zungqr) (&m, &m, &min_mn, tmp_data, &m, tau, work, | 106 F77_FCN (zungqr) (m, m, min_mn, tmp_data, m, tau, work, lwork, info); |
107 &lwork, &info); | |
108 | 107 |
109 q = ComplexMatrix (tmp_data, m, m); | 108 q = ComplexMatrix (tmp_data, m, m); |
110 q.resize (m, n2); | 109 q.resize (m, n2); |
111 | 110 |
112 delete [] tau; | 111 delete [] tau; |