Mercurial > hg > octave-nkf
diff liboctave/SparsedbleLU.cc @ 10314:07ebe522dac2
untabify liboctave C++ sources
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 11 Feb 2010 12:23:32 -0500 |
parents | 4c0cdbe0acca |
children | 12884915a8e4 |
line wrap: on
line diff
--- a/liboctave/SparsedbleLU.cc +++ b/liboctave/SparsedbleLU.cc @@ -61,20 +61,20 @@ { tmp = (piv_thres (0) > 1. ? 1. : piv_thres (0)); if (!xisnan (tmp)) - Control (UMFPACK_PIVOT_TOLERANCE) = tmp; + Control (UMFPACK_PIVOT_TOLERANCE) = tmp; tmp = (piv_thres (1) > 1. ? 1. : piv_thres (1)); if (!xisnan (tmp)) - Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; + Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; } else { tmp = octave_sparse_params::get_key ("piv_tol"); if (!xisnan (tmp)) - Control (UMFPACK_PIVOT_TOLERANCE) = tmp; + Control (UMFPACK_PIVOT_TOLERANCE) = tmp; tmp = octave_sparse_params::get_key ("sym_tol"); if (!xisnan (tmp)) - Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; + Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; } // Set whether we are allowed to modify Q or not @@ -99,12 +99,12 @@ Matrix Info (1, UMFPACK_INFO); double *info = Info.fortran_vec (); int status = UMFPACK_DNAME (qsymbolic) (nr, nc, Ap, Ai, Ax, 0, - &Symbolic, control, info); + &Symbolic, control, info); if (status < 0) { (*current_liboctave_error_handler) - ("SparseLU::SparseLU symbolic factorization failed"); + ("SparseLU::SparseLU symbolic factorization failed"); UMFPACK_DNAME (report_status) (control, status); UMFPACK_DNAME (report_info) (control, info); @@ -117,114 +117,114 @@ void *Numeric; status = UMFPACK_DNAME (numeric) (Ap, Ai, Ax, Symbolic, - &Numeric, control, info) ; + &Numeric, control, info) ; UMFPACK_DNAME (free_symbolic) (&Symbolic) ; cond = Info (UMFPACK_RCOND); if (status < 0) - { - (*current_liboctave_error_handler) - ("SparseLU::SparseLU numeric factorization failed"); + { + (*current_liboctave_error_handler) + ("SparseLU::SparseLU numeric factorization failed"); - UMFPACK_DNAME (report_status) (control, status); - UMFPACK_DNAME (report_info) (control, info); + UMFPACK_DNAME (report_status) (control, status); + UMFPACK_DNAME (report_info) (control, info); - UMFPACK_DNAME (free_numeric) (&Numeric); - } + UMFPACK_DNAME (free_numeric) (&Numeric); + } else - { - UMFPACK_DNAME (report_numeric) (Numeric, control); + { + UMFPACK_DNAME (report_numeric) (Numeric, control); - octave_idx_type lnz, unz, ignore1, ignore2, ignore3; - status = UMFPACK_DNAME (get_lunz) (&lnz, &unz, &ignore1, - &ignore2, &ignore3, Numeric) ; - - if (status < 0) - { - (*current_liboctave_error_handler) - ("SparseLU::SparseLU extracting LU factors failed"); + octave_idx_type lnz, unz, ignore1, ignore2, ignore3; + status = UMFPACK_DNAME (get_lunz) (&lnz, &unz, &ignore1, + &ignore2, &ignore3, Numeric) ; + + if (status < 0) + { + (*current_liboctave_error_handler) + ("SparseLU::SparseLU extracting LU factors failed"); - UMFPACK_DNAME (report_status) (control, status); - UMFPACK_DNAME (report_info) (control, info); + UMFPACK_DNAME (report_status) (control, status); + UMFPACK_DNAME (report_info) (control, info); - UMFPACK_DNAME (free_numeric) (&Numeric); - } - else - { - octave_idx_type n_inner = (nr < nc ? nr : nc); + UMFPACK_DNAME (free_numeric) (&Numeric); + } + else + { + octave_idx_type n_inner = (nr < nc ? nr : nc); - if (lnz < 1) - Lfact = SparseMatrix (n_inner, nr, - static_cast<octave_idx_type> (1)); - else - Lfact = SparseMatrix (n_inner, nr, lnz); + if (lnz < 1) + Lfact = SparseMatrix (n_inner, nr, + static_cast<octave_idx_type> (1)); + else + Lfact = SparseMatrix (n_inner, nr, lnz); - octave_idx_type *Ltp = Lfact.cidx (); - octave_idx_type *Ltj = Lfact.ridx (); - double *Ltx = Lfact.data (); + octave_idx_type *Ltp = Lfact.cidx (); + octave_idx_type *Ltj = Lfact.ridx (); + double *Ltx = Lfact.data (); - if (unz < 1) - Ufact = SparseMatrix (n_inner, nc, - static_cast<octave_idx_type> (1)); - else - Ufact = SparseMatrix (n_inner, nc, unz); + if (unz < 1) + Ufact = SparseMatrix (n_inner, nc, + static_cast<octave_idx_type> (1)); + else + Ufact = SparseMatrix (n_inner, nc, unz); - octave_idx_type *Up = Ufact.cidx (); - octave_idx_type *Uj = Ufact.ridx (); - double *Ux = Ufact.data (); + octave_idx_type *Up = Ufact.cidx (); + octave_idx_type *Uj = Ufact.ridx (); + double *Ux = Ufact.data (); - Rfact = SparseMatrix (nr, nr, nr); - for (octave_idx_type i = 0; i < nr; i++) - { - Rfact.xridx (i) = i; - Rfact.xcidx (i) = i; - } - Rfact.xcidx (nr) = nr; - double *Rx = Rfact.data (); + Rfact = SparseMatrix (nr, nr, nr); + for (octave_idx_type i = 0; i < nr; i++) + { + Rfact.xridx (i) = i; + Rfact.xcidx (i) = i; + } + Rfact.xcidx (nr) = nr; + double *Rx = Rfact.data (); - P.resize (nr); - octave_idx_type *p = P.fortran_vec (); + P.resize (nr); + octave_idx_type *p = P.fortran_vec (); - Q.resize (nc); - octave_idx_type *q = Q.fortran_vec (); + Q.resize (nc); + octave_idx_type *q = Q.fortran_vec (); - octave_idx_type do_recip; - status = UMFPACK_DNAME (get_numeric) (Ltp, Ltj, Ltx, - Up, Uj, Ux, p, q, 0, - &do_recip, Rx, - Numeric) ; + octave_idx_type do_recip; + status = UMFPACK_DNAME (get_numeric) (Ltp, Ltj, Ltx, + Up, Uj, Ux, p, q, 0, + &do_recip, Rx, + Numeric) ; - UMFPACK_DNAME (free_numeric) (&Numeric) ; + UMFPACK_DNAME (free_numeric) (&Numeric) ; - if (status < 0) - { - (*current_liboctave_error_handler) - ("SparseLU::SparseLU extracting LU factors failed"); + if (status < 0) + { + (*current_liboctave_error_handler) + ("SparseLU::SparseLU extracting LU factors failed"); - UMFPACK_DNAME (report_status) (control, status); - } - else - { - Lfact = Lfact.transpose (); + UMFPACK_DNAME (report_status) (control, status); + } + else + { + Lfact = Lfact.transpose (); - if (do_recip) - for (octave_idx_type i = 0; i < nr; i++) - Rx[i] = 1.0 / Rx[i]; + if (do_recip) + for (octave_idx_type i = 0; i < nr; i++) + Rx[i] = 1.0 / Rx[i]; - UMFPACK_DNAME (report_matrix) (nr, n_inner, - Lfact.cidx (), Lfact.ridx (), - Lfact.data (), 1, control); - UMFPACK_DNAME (report_matrix) (n_inner, nc, - Ufact.cidx (), Ufact.ridx (), - Ufact.data (), 1, control); - UMFPACK_DNAME (report_perm) (nr, p, control); - UMFPACK_DNAME (report_perm) (nc, q, control); - } + UMFPACK_DNAME (report_matrix) (nr, n_inner, + Lfact.cidx (), Lfact.ridx (), + Lfact.data (), 1, control); + UMFPACK_DNAME (report_matrix) (n_inner, nc, + Ufact.cidx (), Ufact.ridx (), + Ufact.data (), 1, control); + UMFPACK_DNAME (report_perm) (nr, p, control); + UMFPACK_DNAME (report_perm) (nc, q, control); + } - UMFPACK_DNAME (report_info) (control, info); - } - } + UMFPACK_DNAME (report_info) (control, info); + } + } } #else (*current_liboctave_error_handler) ("UMFPACK not installed"); @@ -232,8 +232,8 @@ } SparseLU::SparseLU (const SparseMatrix& a, const ColumnVector& Qinit, - const Matrix& piv_thres, bool scale, bool FixedQ, - double droptol, bool milu, bool udiag) + const Matrix& piv_thres, bool scale, bool FixedQ, + double droptol, bool milu, bool udiag) { #ifdef HAVE_UMFPACK if (milu) @@ -251,46 +251,46 @@ double tmp = octave_sparse_params::get_key ("spumoni"); if (!xisnan (tmp)) - Control (UMFPACK_PRL) = tmp; + Control (UMFPACK_PRL) = tmp; if (piv_thres.nelem() == 2) - { - tmp = (piv_thres (0) > 1. ? 1. : piv_thres (0)); - if (!xisnan (tmp)) - Control (UMFPACK_PIVOT_TOLERANCE) = tmp; - tmp = (piv_thres (1) > 1. ? 1. : piv_thres (1)); - if (!xisnan (tmp)) - Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; - } + { + tmp = (piv_thres (0) > 1. ? 1. : piv_thres (0)); + if (!xisnan (tmp)) + Control (UMFPACK_PIVOT_TOLERANCE) = tmp; + tmp = (piv_thres (1) > 1. ? 1. : piv_thres (1)); + if (!xisnan (tmp)) + Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; + } else - { - tmp = octave_sparse_params::get_key ("piv_tol"); - if (!xisnan (tmp)) - Control (UMFPACK_PIVOT_TOLERANCE) = tmp; + { + tmp = octave_sparse_params::get_key ("piv_tol"); + if (!xisnan (tmp)) + Control (UMFPACK_PIVOT_TOLERANCE) = tmp; - tmp = octave_sparse_params::get_key ("sym_tol"); - if (!xisnan (tmp)) - Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; - } + tmp = octave_sparse_params::get_key ("sym_tol"); + if (!xisnan (tmp)) + Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; + } if (droptol >= 0.) - Control (UMFPACK_DROPTOL) = droptol; + Control (UMFPACK_DROPTOL) = droptol; // Set whether we are allowed to modify Q or not if (FixedQ) - Control (UMFPACK_FIXQ) = 1.0; + Control (UMFPACK_FIXQ) = 1.0; else - { - tmp = octave_sparse_params::get_key ("autoamd"); - if (!xisnan (tmp)) - Control (UMFPACK_FIXQ) = tmp; - } + { + tmp = octave_sparse_params::get_key ("autoamd"); + if (!xisnan (tmp)) + Control (UMFPACK_FIXQ) = tmp; + } if (scale) - Control (UMFPACK_SCALE) = UMFPACK_SCALE_SUM; + Control (UMFPACK_SCALE) = UMFPACK_SCALE_SUM; else - Control (UMFPACK_SCALE) = UMFPACK_SCALE_NONE; + Control (UMFPACK_SCALE) = UMFPACK_SCALE_NONE; UMFPACK_DNAME (report_control) (control); @@ -299,7 +299,7 @@ const double *Ax = a.data (); UMFPACK_DNAME (report_matrix) (nr, nc, Ap, Ai, Ax, 1, - control); + control); void *Symbolic; Matrix Info (1, UMFPACK_INFO); @@ -308,148 +308,148 @@ // Null loop so that qinit is imediately deallocated when not needed do { - OCTAVE_LOCAL_BUFFER (octave_idx_type, qinit, nc); + OCTAVE_LOCAL_BUFFER (octave_idx_type, qinit, nc); - for (octave_idx_type i = 0; i < nc; i++) - qinit [i] = static_cast<octave_idx_type> (Qinit (i)); + for (octave_idx_type i = 0; i < nc; i++) + qinit [i] = static_cast<octave_idx_type> (Qinit (i)); - status = UMFPACK_DNAME (qsymbolic) (nr, nc, Ap, Ai, Ax, - qinit, &Symbolic, control, info); + status = UMFPACK_DNAME (qsymbolic) (nr, nc, Ap, Ai, Ax, + qinit, &Symbolic, control, info); } while (0); if (status < 0) - { - (*current_liboctave_error_handler) - ("SparseLU::SparseLU symbolic factorization failed"); + { + (*current_liboctave_error_handler) + ("SparseLU::SparseLU symbolic factorization failed"); - UMFPACK_DNAME (report_status) (control, status); - UMFPACK_DNAME (report_info) (control, info); + UMFPACK_DNAME (report_status) (control, status); + UMFPACK_DNAME (report_info) (control, info); - UMFPACK_DNAME (free_symbolic) (&Symbolic) ; - } + UMFPACK_DNAME (free_symbolic) (&Symbolic) ; + } else - { - UMFPACK_DNAME (report_symbolic) (Symbolic, control); + { + UMFPACK_DNAME (report_symbolic) (Symbolic, control); - void *Numeric; - status = UMFPACK_DNAME (numeric) (Ap, Ai, Ax, Symbolic, - &Numeric, control, info) ; - UMFPACK_DNAME (free_symbolic) (&Symbolic) ; + void *Numeric; + status = UMFPACK_DNAME (numeric) (Ap, Ai, Ax, Symbolic, + &Numeric, control, info) ; + UMFPACK_DNAME (free_symbolic) (&Symbolic) ; - cond = Info (UMFPACK_RCOND); + cond = Info (UMFPACK_RCOND); - if (status < 0) - { - (*current_liboctave_error_handler) - ("SparseLU::SparseLU numeric factorization failed"); + if (status < 0) + { + (*current_liboctave_error_handler) + ("SparseLU::SparseLU numeric factorization failed"); - UMFPACK_DNAME (report_status) (control, status); - UMFPACK_DNAME (report_info) (control, info); + UMFPACK_DNAME (report_status) (control, status); + UMFPACK_DNAME (report_info) (control, info); - UMFPACK_DNAME (free_numeric) (&Numeric); - } - else - { - UMFPACK_DNAME (report_numeric) (Numeric, control); + UMFPACK_DNAME (free_numeric) (&Numeric); + } + else + { + UMFPACK_DNAME (report_numeric) (Numeric, control); - octave_idx_type lnz, unz, ignore1, ignore2, ignore3; - status = UMFPACK_DNAME (get_lunz) (&lnz, &unz, &ignore1, &ignore2, - &ignore3, Numeric) ; - - if (status < 0) - { - (*current_liboctave_error_handler) - ("SparseLU::SparseLU extracting LU factors failed"); + octave_idx_type lnz, unz, ignore1, ignore2, ignore3; + status = UMFPACK_DNAME (get_lunz) (&lnz, &unz, &ignore1, &ignore2, + &ignore3, Numeric) ; + + if (status < 0) + { + (*current_liboctave_error_handler) + ("SparseLU::SparseLU extracting LU factors failed"); - UMFPACK_DNAME (report_status) (control, status); - UMFPACK_DNAME (report_info) (control, info); + UMFPACK_DNAME (report_status) (control, status); + UMFPACK_DNAME (report_info) (control, info); - UMFPACK_DNAME (free_numeric) (&Numeric); - } - else - { - octave_idx_type n_inner = (nr < nc ? nr : nc); + UMFPACK_DNAME (free_numeric) (&Numeric); + } + else + { + octave_idx_type n_inner = (nr < nc ? nr : nc); - if (lnz < 1) - Lfact = SparseMatrix (n_inner, nr, - static_cast<octave_idx_type> (1)); - else - Lfact = SparseMatrix (n_inner, nr, lnz); + if (lnz < 1) + Lfact = SparseMatrix (n_inner, nr, + static_cast<octave_idx_type> (1)); + else + Lfact = SparseMatrix (n_inner, nr, lnz); - octave_idx_type *Ltp = Lfact.cidx (); - octave_idx_type *Ltj = Lfact.ridx (); - double *Ltx = Lfact.data (); + octave_idx_type *Ltp = Lfact.cidx (); + octave_idx_type *Ltj = Lfact.ridx (); + double *Ltx = Lfact.data (); - if (unz < 1) - Ufact = SparseMatrix (n_inner, nc, - static_cast<octave_idx_type> (1)); - else - Ufact = SparseMatrix (n_inner, nc, unz); + if (unz < 1) + Ufact = SparseMatrix (n_inner, nc, + static_cast<octave_idx_type> (1)); + else + Ufact = SparseMatrix (n_inner, nc, unz); - octave_idx_type *Up = Ufact.cidx (); - octave_idx_type *Uj = Ufact.ridx (); - double *Ux = Ufact.data (); + octave_idx_type *Up = Ufact.cidx (); + octave_idx_type *Uj = Ufact.ridx (); + double *Ux = Ufact.data (); - Rfact = SparseMatrix (nr, nr, nr); - for (octave_idx_type i = 0; i < nr; i++) - { - Rfact.xridx (i) = i; - Rfact.xcidx (i) = i; - } - Rfact.xcidx (nr) = nr; - double *Rx = Rfact.data (); + Rfact = SparseMatrix (nr, nr, nr); + for (octave_idx_type i = 0; i < nr; i++) + { + Rfact.xridx (i) = i; + Rfact.xcidx (i) = i; + } + Rfact.xcidx (nr) = nr; + double *Rx = Rfact.data (); - P.resize (nr); - octave_idx_type *p = P.fortran_vec (); + P.resize (nr); + octave_idx_type *p = P.fortran_vec (); - Q.resize (nc); - octave_idx_type *q = Q.fortran_vec (); + Q.resize (nc); + octave_idx_type *q = Q.fortran_vec (); - octave_idx_type do_recip; - status = UMFPACK_DNAME (get_numeric) (Ltp, Ltj, - Ltx, Up, Uj, Ux, p, q, - 0, &do_recip, - Rx, Numeric) ; + octave_idx_type do_recip; + status = UMFPACK_DNAME (get_numeric) (Ltp, Ltj, + Ltx, Up, Uj, Ux, p, q, + 0, &do_recip, + Rx, Numeric) ; - UMFPACK_DNAME (free_numeric) (&Numeric) ; + UMFPACK_DNAME (free_numeric) (&Numeric) ; - if (status < 0) - { - (*current_liboctave_error_handler) - ("SparseLU::SparseLU extracting LU factors failed"); + if (status < 0) + { + (*current_liboctave_error_handler) + ("SparseLU::SparseLU extracting LU factors failed"); - UMFPACK_DNAME (report_status) (control, status); - } - else - { - Lfact = Lfact.transpose (); + UMFPACK_DNAME (report_status) (control, status); + } + else + { + Lfact = Lfact.transpose (); - if (do_recip) - for (octave_idx_type i = 0; i < nr; i++) - Rx[i] = 1.0 / Rx[i]; + if (do_recip) + for (octave_idx_type i = 0; i < nr; i++) + Rx[i] = 1.0 / Rx[i]; - UMFPACK_DNAME (report_matrix) (nr, n_inner, - Lfact.cidx (), - Lfact.ridx (), - Lfact.data (), - 1, control); - UMFPACK_DNAME (report_matrix) (n_inner, nc, - Ufact.cidx (), - Ufact.ridx (), - Ufact.data (), - 1, control); - UMFPACK_DNAME (report_perm) (nr, p, control); - UMFPACK_DNAME (report_perm) (nc, q, control); - } + UMFPACK_DNAME (report_matrix) (nr, n_inner, + Lfact.cidx (), + Lfact.ridx (), + Lfact.data (), + 1, control); + UMFPACK_DNAME (report_matrix) (n_inner, nc, + Ufact.cidx (), + Ufact.ridx (), + Ufact.data (), + 1, control); + UMFPACK_DNAME (report_perm) (nr, p, control); + UMFPACK_DNAME (report_perm) (nc, q, control); + } - UMFPACK_DNAME (report_info) (control, info); - } - } - } + UMFPACK_DNAME (report_info) (control, info); + } + } + } if (udiag) - (*current_liboctave_error_handler) - ("Option udiag of incomplete LU not implemented"); + (*current_liboctave_error_handler) + ("Option udiag of incomplete LU not implemented"); } #else (*current_liboctave_error_handler) ("UMFPACK not installed");