Mercurial > octave-nkf
comparison liboctave/SparsedbleLU.cc @ 11586:12df7854fa7c
strip trailing whitespace from source files
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 20 Jan 2011 17:24:59 -0500 |
parents | a83bad07f7e3 |
children | 72c96de7a403 |
comparison
equal
deleted
inserted
replaced
11585:1473d0cf86d2 | 11586:12df7854fa7c |
---|---|
101 int status = UMFPACK_DNAME (qsymbolic) (nr, nc, Ap, Ai, Ax, 0, | 101 int status = UMFPACK_DNAME (qsymbolic) (nr, nc, Ap, Ai, Ax, 0, |
102 &Symbolic, control, info); | 102 &Symbolic, control, info); |
103 | 103 |
104 if (status < 0) | 104 if (status < 0) |
105 { | 105 { |
106 (*current_liboctave_error_handler) | 106 (*current_liboctave_error_handler) |
107 ("SparseLU::SparseLU symbolic factorization failed"); | 107 ("SparseLU::SparseLU symbolic factorization failed"); |
108 | 108 |
109 UMFPACK_DNAME (report_status) (control, status); | 109 UMFPACK_DNAME (report_status) (control, status); |
110 UMFPACK_DNAME (report_info) (control, info); | 110 UMFPACK_DNAME (report_info) (control, info); |
111 | 111 |
114 else | 114 else |
115 { | 115 { |
116 UMFPACK_DNAME (report_symbolic) (Symbolic, control); | 116 UMFPACK_DNAME (report_symbolic) (Symbolic, control); |
117 | 117 |
118 void *Numeric; | 118 void *Numeric; |
119 status = UMFPACK_DNAME (numeric) (Ap, Ai, Ax, Symbolic, | 119 status = UMFPACK_DNAME (numeric) (Ap, Ai, Ax, Symbolic, |
120 &Numeric, control, info) ; | 120 &Numeric, control, info) ; |
121 UMFPACK_DNAME (free_symbolic) (&Symbolic) ; | 121 UMFPACK_DNAME (free_symbolic) (&Symbolic) ; |
122 | 122 |
123 cond = Info (UMFPACK_RCOND); | 123 cond = Info (UMFPACK_RCOND); |
124 | 124 |
125 if (status < 0) | 125 if (status < 0) |
126 { | 126 { |
127 (*current_liboctave_error_handler) | 127 (*current_liboctave_error_handler) |
128 ("SparseLU::SparseLU numeric factorization failed"); | 128 ("SparseLU::SparseLU numeric factorization failed"); |
129 | 129 |
130 UMFPACK_DNAME (report_status) (control, status); | 130 UMFPACK_DNAME (report_status) (control, status); |
131 UMFPACK_DNAME (report_info) (control, info); | 131 UMFPACK_DNAME (report_info) (control, info); |
132 | 132 |
137 UMFPACK_DNAME (report_numeric) (Numeric, control); | 137 UMFPACK_DNAME (report_numeric) (Numeric, control); |
138 | 138 |
139 octave_idx_type lnz, unz, ignore1, ignore2, ignore3; | 139 octave_idx_type lnz, unz, ignore1, ignore2, ignore3; |
140 status = UMFPACK_DNAME (get_lunz) (&lnz, &unz, &ignore1, | 140 status = UMFPACK_DNAME (get_lunz) (&lnz, &unz, &ignore1, |
141 &ignore2, &ignore3, Numeric) ; | 141 &ignore2, &ignore3, Numeric) ; |
142 | 142 |
143 if (status < 0) | 143 if (status < 0) |
144 { | 144 { |
145 (*current_liboctave_error_handler) | 145 (*current_liboctave_error_handler) |
146 ("SparseLU::SparseLU extracting LU factors failed"); | 146 ("SparseLU::SparseLU extracting LU factors failed"); |
147 | 147 |
148 UMFPACK_DNAME (report_status) (control, status); | 148 UMFPACK_DNAME (report_status) (control, status); |
149 UMFPACK_DNAME (report_info) (control, info); | 149 UMFPACK_DNAME (report_info) (control, info); |
150 | 150 |
190 octave_idx_type *q = Q.fortran_vec (); | 190 octave_idx_type *q = Q.fortran_vec (); |
191 | 191 |
192 octave_idx_type do_recip; | 192 octave_idx_type do_recip; |
193 status = UMFPACK_DNAME (get_numeric) (Ltp, Ltj, Ltx, | 193 status = UMFPACK_DNAME (get_numeric) (Ltp, Ltj, Ltx, |
194 Up, Uj, Ux, p, q, 0, | 194 Up, Uj, Ux, p, q, 0, |
195 &do_recip, Rx, | 195 &do_recip, Rx, |
196 Numeric) ; | 196 Numeric) ; |
197 | 197 |
198 UMFPACK_DNAME (free_numeric) (&Numeric) ; | 198 UMFPACK_DNAME (free_numeric) (&Numeric) ; |
199 | 199 |
200 if (status < 0) | 200 if (status < 0) |
201 { | 201 { |
202 (*current_liboctave_error_handler) | 202 (*current_liboctave_error_handler) |
203 ("SparseLU::SparseLU extracting LU factors failed"); | 203 ("SparseLU::SparseLU extracting LU factors failed"); |
204 | 204 |
205 UMFPACK_DNAME (report_status) (control, status); | 205 UMFPACK_DNAME (report_status) (control, status); |
206 } | 206 } |
207 else | 207 else |
210 | 210 |
211 if (do_recip) | 211 if (do_recip) |
212 for (octave_idx_type i = 0; i < nr; i++) | 212 for (octave_idx_type i = 0; i < nr; i++) |
213 Rx[i] = 1.0 / Rx[i]; | 213 Rx[i] = 1.0 / Rx[i]; |
214 | 214 |
215 UMFPACK_DNAME (report_matrix) (nr, n_inner, | 215 UMFPACK_DNAME (report_matrix) (nr, n_inner, |
216 Lfact.cidx (), Lfact.ridx (), | 216 Lfact.cidx (), Lfact.ridx (), |
217 Lfact.data (), 1, control); | 217 Lfact.data (), 1, control); |
218 UMFPACK_DNAME (report_matrix) (n_inner, nc, | 218 UMFPACK_DNAME (report_matrix) (n_inner, nc, |
219 Ufact.cidx (), Ufact.ridx (), | 219 Ufact.cidx (), Ufact.ridx (), |
220 Ufact.data (), 1, control); | 220 Ufact.data (), 1, control); |
221 UMFPACK_DNAME (report_perm) (nr, p, control); | 221 UMFPACK_DNAME (report_perm) (nr, p, control); |
222 UMFPACK_DNAME (report_perm) (nc, q, control); | 222 UMFPACK_DNAME (report_perm) (nc, q, control); |
223 } | 223 } |
235 const Matrix& piv_thres, bool scale, bool FixedQ, | 235 const Matrix& piv_thres, bool scale, bool FixedQ, |
236 double droptol, bool milu, bool udiag) | 236 double droptol, bool milu, bool udiag) |
237 { | 237 { |
238 #ifdef HAVE_UMFPACK | 238 #ifdef HAVE_UMFPACK |
239 if (milu) | 239 if (milu) |
240 (*current_liboctave_error_handler) | 240 (*current_liboctave_error_handler) |
241 ("Modified incomplete LU not implemented"); | 241 ("Modified incomplete LU not implemented"); |
242 else | 242 else |
243 { | 243 { |
244 octave_idx_type nr = a.rows (); | 244 octave_idx_type nr = a.rows (); |
245 octave_idx_type nc = a.cols (); | 245 octave_idx_type nc = a.cols (); |
246 | 246 |
296 | 296 |
297 const octave_idx_type *Ap = a.cidx (); | 297 const octave_idx_type *Ap = a.cidx (); |
298 const octave_idx_type *Ai = a.ridx (); | 298 const octave_idx_type *Ai = a.ridx (); |
299 const double *Ax = a.data (); | 299 const double *Ax = a.data (); |
300 | 300 |
301 UMFPACK_DNAME (report_matrix) (nr, nc, Ap, Ai, Ax, 1, | 301 UMFPACK_DNAME (report_matrix) (nr, nc, Ap, Ai, Ax, 1, |
302 control); | 302 control); |
303 | 303 |
304 void *Symbolic; | 304 void *Symbolic; |
305 Matrix Info (1, UMFPACK_INFO); | 305 Matrix Info (1, UMFPACK_INFO); |
306 double *info = Info.fortran_vec (); | 306 double *info = Info.fortran_vec (); |
311 OCTAVE_LOCAL_BUFFER (octave_idx_type, qinit, nc); | 311 OCTAVE_LOCAL_BUFFER (octave_idx_type, qinit, nc); |
312 | 312 |
313 for (octave_idx_type i = 0; i < nc; i++) | 313 for (octave_idx_type i = 0; i < nc; i++) |
314 qinit [i] = static_cast<octave_idx_type> (Qinit (i)); | 314 qinit [i] = static_cast<octave_idx_type> (Qinit (i)); |
315 | 315 |
316 status = UMFPACK_DNAME (qsymbolic) (nr, nc, Ap, Ai, Ax, | 316 status = UMFPACK_DNAME (qsymbolic) (nr, nc, Ap, Ai, Ax, |
317 qinit, &Symbolic, control, info); | 317 qinit, &Symbolic, control, info); |
318 } while (0); | 318 } while (0); |
319 | 319 |
320 if (status < 0) | 320 if (status < 0) |
321 { | 321 { |
322 (*current_liboctave_error_handler) | 322 (*current_liboctave_error_handler) |
323 ("SparseLU::SparseLU symbolic factorization failed"); | 323 ("SparseLU::SparseLU symbolic factorization failed"); |
324 | 324 |
325 UMFPACK_DNAME (report_status) (control, status); | 325 UMFPACK_DNAME (report_status) (control, status); |
326 UMFPACK_DNAME (report_info) (control, info); | 326 UMFPACK_DNAME (report_info) (control, info); |
327 | 327 |
338 | 338 |
339 cond = Info (UMFPACK_RCOND); | 339 cond = Info (UMFPACK_RCOND); |
340 | 340 |
341 if (status < 0) | 341 if (status < 0) |
342 { | 342 { |
343 (*current_liboctave_error_handler) | 343 (*current_liboctave_error_handler) |
344 ("SparseLU::SparseLU numeric factorization failed"); | 344 ("SparseLU::SparseLU numeric factorization failed"); |
345 | 345 |
346 UMFPACK_DNAME (report_status) (control, status); | 346 UMFPACK_DNAME (report_status) (control, status); |
347 UMFPACK_DNAME (report_info) (control, info); | 347 UMFPACK_DNAME (report_info) (control, info); |
348 | 348 |
353 UMFPACK_DNAME (report_numeric) (Numeric, control); | 353 UMFPACK_DNAME (report_numeric) (Numeric, control); |
354 | 354 |
355 octave_idx_type lnz, unz, ignore1, ignore2, ignore3; | 355 octave_idx_type lnz, unz, ignore1, ignore2, ignore3; |
356 status = UMFPACK_DNAME (get_lunz) (&lnz, &unz, &ignore1, &ignore2, | 356 status = UMFPACK_DNAME (get_lunz) (&lnz, &unz, &ignore1, &ignore2, |
357 &ignore3, Numeric) ; | 357 &ignore3, Numeric) ; |
358 | 358 |
359 if (status < 0) | 359 if (status < 0) |
360 { | 360 { |
361 (*current_liboctave_error_handler) | 361 (*current_liboctave_error_handler) |
362 ("SparseLU::SparseLU extracting LU factors failed"); | 362 ("SparseLU::SparseLU extracting LU factors failed"); |
363 | 363 |
364 UMFPACK_DNAME (report_status) (control, status); | 364 UMFPACK_DNAME (report_status) (control, status); |
365 UMFPACK_DNAME (report_info) (control, info); | 365 UMFPACK_DNAME (report_info) (control, info); |
366 | 366 |
405 Q.resize (dim_vector (nc, 1)); | 405 Q.resize (dim_vector (nc, 1)); |
406 octave_idx_type *q = Q.fortran_vec (); | 406 octave_idx_type *q = Q.fortran_vec (); |
407 | 407 |
408 octave_idx_type do_recip; | 408 octave_idx_type do_recip; |
409 status = UMFPACK_DNAME (get_numeric) (Ltp, Ltj, | 409 status = UMFPACK_DNAME (get_numeric) (Ltp, Ltj, |
410 Ltx, Up, Uj, Ux, p, q, | 410 Ltx, Up, Uj, Ux, p, q, |
411 0, &do_recip, | 411 0, &do_recip, |
412 Rx, Numeric) ; | 412 Rx, Numeric) ; |
413 | 413 |
414 UMFPACK_DNAME (free_numeric) (&Numeric) ; | 414 UMFPACK_DNAME (free_numeric) (&Numeric) ; |
415 | 415 |
416 if (status < 0) | 416 if (status < 0) |
417 { | 417 { |
418 (*current_liboctave_error_handler) | 418 (*current_liboctave_error_handler) |
419 ("SparseLU::SparseLU extracting LU factors failed"); | 419 ("SparseLU::SparseLU extracting LU factors failed"); |
420 | 420 |
421 UMFPACK_DNAME (report_status) (control, status); | 421 UMFPACK_DNAME (report_status) (control, status); |
422 } | 422 } |
423 else | 423 else |
426 | 426 |
427 if (do_recip) | 427 if (do_recip) |
428 for (octave_idx_type i = 0; i < nr; i++) | 428 for (octave_idx_type i = 0; i < nr; i++) |
429 Rx[i] = 1.0 / Rx[i]; | 429 Rx[i] = 1.0 / Rx[i]; |
430 | 430 |
431 UMFPACK_DNAME (report_matrix) (nr, n_inner, | 431 UMFPACK_DNAME (report_matrix) (nr, n_inner, |
432 Lfact.cidx (), | 432 Lfact.cidx (), |
433 Lfact.ridx (), | 433 Lfact.ridx (), |
434 Lfact.data (), | 434 Lfact.data (), |
435 1, control); | 435 1, control); |
436 UMFPACK_DNAME (report_matrix) (n_inner, nc, | 436 UMFPACK_DNAME (report_matrix) (n_inner, nc, |
437 Ufact.cidx (), | 437 Ufact.cidx (), |
438 Ufact.ridx (), | 438 Ufact.ridx (), |
439 Ufact.data (), | 439 Ufact.data (), |
440 1, control); | 440 1, control); |
441 UMFPACK_DNAME (report_perm) (nr, p, control); | 441 UMFPACK_DNAME (report_perm) (nr, p, control); |
442 UMFPACK_DNAME (report_perm) (nc, q, control); | 442 UMFPACK_DNAME (report_perm) (nc, q, control); |
443 } | 443 } |
446 } | 446 } |
447 } | 447 } |
448 } | 448 } |
449 | 449 |
450 if (udiag) | 450 if (udiag) |
451 (*current_liboctave_error_handler) | 451 (*current_liboctave_error_handler) |
452 ("Option udiag of incomplete LU not implemented"); | 452 ("Option udiag of incomplete LU not implemented"); |
453 } | 453 } |
454 #else | 454 #else |
455 (*current_liboctave_error_handler) ("UMFPACK not installed"); | 455 (*current_liboctave_error_handler) ("UMFPACK not installed"); |
456 #endif | 456 #endif |
457 } | 457 } |