Mercurial > hg > octave-nkf
comparison src/DLD-FUNCTIONS/luinc.cc @ 6027:068e52f1c005
[project @ 2006-10-03 20:07:56 by jwe]
author | jwe |
---|---|
date | Tue, 03 Oct 2006 20:07:56 +0000 |
parents | 080c08b192d8 |
children | 8b0cfeb06365 |
comparison
equal
deleted
inserted
replaced
6026:31bf61b463ce | 6027:068e52f1c005 |
---|---|
166 case 2: | 166 case 2: |
167 { | 167 { |
168 SparseLU fact (sm, Qinit, thresh, true, droptol, | 168 SparseLU fact (sm, Qinit, thresh, true, droptol, |
169 milu, udiag); | 169 milu, udiag); |
170 | 170 |
171 SparseMatrix P = fact.Pr (); | 171 if (! error_state) |
172 SparseMatrix L = P.transpose () * fact.L (); | 172 { |
173 retval(1) = octave_value (fact.U (), | 173 SparseMatrix P = fact.Pr (); |
174 MatrixType (MatrixType::Upper)); | 174 SparseMatrix L = P.transpose () * fact.L (); |
175 retval(0) = octave_value (L, MatrixType | 175 retval(1) = octave_value (fact.U (), |
176 (MatrixType::Permuted_Lower, | 176 MatrixType (MatrixType::Upper)); |
177 sm_nr, fact.row_perm ())); | 177 retval(0) = octave_value (L, MatrixType |
178 (MatrixType::Permuted_Lower, | |
179 sm_nr, fact.row_perm ())); | |
180 } | |
178 } | 181 } |
179 break; | 182 break; |
180 | 183 |
181 case 3: | 184 case 3: |
182 { | 185 { |
183 SparseLU fact (sm, Qinit, thresh, true, droptol, | 186 SparseLU fact (sm, Qinit, thresh, true, droptol, |
184 milu, udiag); | 187 milu, udiag); |
185 | 188 |
186 retval(2) = fact.Pr (); | 189 if (! error_state) |
187 retval(1) = octave_value (fact.U (), | 190 { |
188 MatrixType (MatrixType::Upper)); | 191 retval(2) = fact.Pr (); |
189 retval(0) = octave_value (fact.L (), | 192 retval(1) = octave_value (fact.U (), |
190 MatrixType (MatrixType::Lower)); | 193 MatrixType (MatrixType::Upper)); |
194 retval(0) = octave_value (fact.L (), | |
195 MatrixType (MatrixType::Lower)); | |
196 } | |
191 } | 197 } |
192 break; | 198 break; |
193 | 199 |
194 case 4: | 200 case 4: |
195 default: | 201 default: |
196 { | 202 { |
197 SparseLU fact (sm, Qinit, thresh, false, droptol, | 203 SparseLU fact (sm, Qinit, thresh, false, droptol, |
198 milu, udiag); | 204 milu, udiag); |
199 | 205 |
200 retval(3) = fact.Pc (); | 206 if (! error_state) |
201 retval(2) = fact.Pr (); | 207 { |
202 retval(1) = octave_value (fact.U (), | 208 retval(3) = fact.Pc (); |
203 MatrixType (MatrixType::Upper)); | 209 retval(2) = fact.Pr (); |
204 retval(0) = octave_value (fact.L (), | 210 retval(1) = octave_value (fact.U (), |
205 MatrixType (MatrixType::Lower)); | 211 MatrixType (MatrixType::Upper)); |
212 retval(0) = octave_value (fact.L (), | |
213 MatrixType (MatrixType::Lower)); | |
214 } | |
206 } | 215 } |
207 break; | 216 break; |
208 } | 217 } |
209 } | 218 } |
210 } | 219 } |
228 case 2: | 237 case 2: |
229 { | 238 { |
230 SparseComplexLU fact (sm, Qinit, thresh, true, | 239 SparseComplexLU fact (sm, Qinit, thresh, true, |
231 droptol, milu, udiag); | 240 droptol, milu, udiag); |
232 | 241 |
233 SparseMatrix P = fact.Pr (); | 242 |
234 SparseComplexMatrix L = P.transpose () * fact.L (); | 243 if (! error_state) |
235 retval(1) = octave_value (fact.U (), | 244 { |
236 MatrixType (MatrixType::Upper)); | 245 SparseMatrix P = fact.Pr (); |
237 retval(0) = octave_value (L, MatrixType | 246 SparseComplexMatrix L = P.transpose () * fact.L (); |
238 (MatrixType::Permuted_Lower, | 247 retval(1) = octave_value (fact.U (), |
239 sm_nr, fact.row_perm ())); | 248 MatrixType (MatrixType::Upper)); |
249 retval(0) = octave_value (L, MatrixType | |
250 (MatrixType::Permuted_Lower, | |
251 sm_nr, fact.row_perm ())); | |
252 } | |
240 } | 253 } |
241 break; | 254 break; |
242 | 255 |
243 case 3: | 256 case 3: |
244 { | 257 { |
245 SparseComplexLU fact (sm, Qinit, thresh, true, | 258 SparseComplexLU fact (sm, Qinit, thresh, true, |
246 droptol, milu, udiag); | 259 droptol, milu, udiag); |
247 | 260 |
248 retval(2) = fact.Pr (); | 261 if (! error_state) |
249 retval(1) = octave_value (fact.U (), | 262 { |
250 MatrixType (MatrixType::Upper)); | 263 retval(2) = fact.Pr (); |
251 retval(0) = octave_value (fact.L (), | 264 retval(1) = octave_value (fact.U (), |
252 MatrixType (MatrixType::Lower)); | 265 MatrixType (MatrixType::Upper)); |
266 retval(0) = octave_value (fact.L (), | |
267 MatrixType (MatrixType::Lower)); | |
268 } | |
253 } | 269 } |
254 break; | 270 break; |
255 | 271 |
256 case 4: | 272 case 4: |
257 default: | 273 default: |
258 { | 274 { |
259 SparseComplexLU fact (sm, Qinit, thresh, false, | 275 SparseComplexLU fact (sm, Qinit, thresh, false, |
260 droptol, milu, udiag); | 276 droptol, milu, udiag); |
261 | 277 |
262 retval(3) = fact.Pc (); | 278 if (! error_state) |
263 retval(2) = fact.Pr (); | 279 { |
264 retval(1) = octave_value (fact.U (), | 280 retval(3) = fact.Pc (); |
265 MatrixType (MatrixType::Upper)); | 281 retval(2) = fact.Pr (); |
266 retval(0) = octave_value (fact.L (), | 282 retval(1) = octave_value (fact.U (), |
267 MatrixType (MatrixType::Lower)); | 283 MatrixType (MatrixType::Upper)); |
284 retval(0) = octave_value (fact.L (), | |
285 MatrixType (MatrixType::Lower)); | |
286 } | |
268 } | 287 } |
269 break; | 288 break; |
270 } | 289 } |
271 } | 290 } |
272 } | 291 } |