Mercurial > octave-nkf
comparison liboctave/CmplxHESS.cc @ 7482:29980c6b8604
don't check f77_exception_encountered
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 14 Feb 2008 21:57:50 -0500 |
parents | a1dbe9d80eee |
children | eb63fbe60fab |
comparison
equal
deleted
inserted
replaced
7481:78f3811155f7 | 7482:29980c6b8604 |
---|---|
86 | 86 |
87 F77_XFCN (zgebal, ZGEBAL, (F77_CONST_CHAR_ARG2 (&job, 1), | 87 F77_XFCN (zgebal, ZGEBAL, (F77_CONST_CHAR_ARG2 (&job, 1), |
88 n, h, n, ilo, ihi, pscale, info | 88 n, h, n, ilo, ihi, pscale, info |
89 F77_CHAR_ARG_LEN (1))); | 89 F77_CHAR_ARG_LEN (1))); |
90 | 90 |
91 if (f77_exception_encountered) | 91 Array<Complex> tau (n-1); |
92 (*current_liboctave_error_handler) ("unrecoverable error in zgebal"); | 92 Complex *ptau = tau.fortran_vec (); |
93 else | |
94 { | |
95 Array<Complex> tau (n-1); | |
96 Complex *ptau = tau.fortran_vec (); | |
97 | 93 |
98 Array<Complex> work (lwork); | 94 Array<Complex> work (lwork); |
99 Complex *pwork = work.fortran_vec (); | 95 Complex *pwork = work.fortran_vec (); |
100 | 96 |
101 F77_XFCN (zgehrd, ZGEHRD, (n, ilo, ihi, h, n, ptau, pwork, lwork, info)); | 97 F77_XFCN (zgehrd, ZGEHRD, (n, ilo, ihi, h, n, ptau, pwork, lwork, info)); |
102 | 98 |
103 if (f77_exception_encountered) | 99 unitary_hess_mat = hess_mat; |
104 (*current_liboctave_error_handler) ("unrecoverable error in zgehrd"); | 100 Complex *z = unitary_hess_mat.fortran_vec (); |
105 else | |
106 { | |
107 unitary_hess_mat = hess_mat; | |
108 Complex *z = unitary_hess_mat.fortran_vec (); | |
109 | 101 |
110 F77_XFCN (zunghr, ZUNGHR, (n, ilo, ihi, z, n, ptau, pwork, | 102 F77_XFCN (zunghr, ZUNGHR, (n, ilo, ihi, z, n, ptau, pwork, |
111 lwork, info)); | 103 lwork, info)); |
112 | 104 |
113 if (f77_exception_encountered) | 105 F77_XFCN (zgebak, ZGEBAK, (F77_CONST_CHAR_ARG2 (&job, 1), |
114 (*current_liboctave_error_handler) | 106 F77_CONST_CHAR_ARG2 (&side, 1), |
115 ("unrecoverable error in zunghr"); | 107 n, ilo, ihi, pscale, n, z, n, info |
116 else | 108 F77_CHAR_ARG_LEN (1) |
117 { | 109 F77_CHAR_ARG_LEN (1))); |
118 F77_XFCN (zgebak, ZGEBAK, (F77_CONST_CHAR_ARG2 (&job, 1), | |
119 F77_CONST_CHAR_ARG2 (&side, 1), | |
120 n, ilo, ihi, pscale, n, z, n, info | |
121 F77_CHAR_ARG_LEN (1) | |
122 F77_CHAR_ARG_LEN (1))); | |
123 | 110 |
124 if (f77_exception_encountered) | 111 // If someone thinks of a more graceful way of |
125 (*current_liboctave_error_handler) | 112 // doing this (or faster for that matter :-)), |
126 ("unrecoverable error in zgebak"); | 113 // please let me know! |
127 else | |
128 { | |
129 // If someone thinks of a more graceful way of | |
130 // doing this (or faster for that matter :-)), | |
131 // please let me know! | |
132 | 114 |
133 if (n > 2) | 115 if (n > 2) |
134 for (octave_idx_type j = 0; j < a_nc; j++) | 116 for (octave_idx_type j = 0; j < a_nc; j++) |
135 for (octave_idx_type i = j+2; i < a_nr; i++) | 117 for (octave_idx_type i = j+2; i < a_nr; i++) |
136 hess_mat.elem (i, j) = 0; | 118 hess_mat.elem (i, j) = 0; |
137 } | |
138 } | |
139 } | |
140 } | |
141 | 119 |
142 return info; | 120 return info; |
143 } | 121 } |
144 | 122 |
145 /* | 123 /* |