Mercurial > octave
diff libinterp/corefcn/luinc.cc @ 20892:c07bee629973
2015 Code Sprint: use ovl ().
author | Rik <rik@octave.org> |
---|---|
date | Mon, 14 Dec 2015 11:28:48 -0800 |
parents | 1142cf6abc0d |
children | 48b2ad5ee801 |
line wrap: on
line diff
--- a/libinterp/corefcn/luinc.cc Mon Dec 14 14:01:36 2015 +0000 +++ b/libinterp/corefcn/luinc.cc Mon Dec 14 11:28:48 2015 -0800 @@ -99,16 +99,18 @@ @end deftypefn") { int nargin = args.length (); - octave_value_list retval; if (nargin < 2 || nargin > 3) print_usage (); + if (! args(0).is_sparse_type ()) + error ("luinc: matrix A must be sparse"); + bool zero_level = false; bool milu = false; bool udiag = false; Matrix thresh; - double droptol = -1.; + double droptol = -1.0; bool vecout = false; if (args(1).is_string ()) @@ -133,7 +135,7 @@ { double val = tmp.double_value (); - milu = (val == 0. ? false : true); + milu = (val == 0.0 ? false : true); } tmp = map.getfield ("udiag"); @@ -141,7 +143,7 @@ { double val = tmp.double_value (); - udiag = (val == 0. ? false : true); + udiag = (val == 0.0 ? false : true); } tmp = map.getfield ("thresh"); @@ -151,7 +153,7 @@ if (thresh.numel () == 1) { - thresh.resize (1,2); + thresh.resize (1, 2); thresh(1) = thresh(0); } else if (thresh.numel () != 2) @@ -165,7 +167,7 @@ { std::string tmp = args(2).string_value (); - if (tmp.compare ("vector") == 0) + if (tmp == "vector") vecout = true; else error ("luinc: unrecognized string argument"); @@ -175,7 +177,9 @@ if (zero_level) error ("luinc: zero-level factorization not implemented"); - if (args(0).type_name () == "sparse matrix") + octave_value_list retval; + + if (args(0).is_real_type ()) { SparseMatrix sm = args(0).sparse_matrix_value (); octave_idx_type sm_nr = sm.rows (); @@ -183,7 +187,7 @@ ColumnVector Qinit (sm_nc); for (octave_idx_type i = 0; i < sm_nc; i++) - Qinit (i) = i; + Qinit(i) = i; switch (nargout) { @@ -250,16 +254,15 @@ break; } } - else if (args(0).type_name () == "sparse complex matrix") + else { - SparseComplexMatrix sm = - args(0).sparse_complex_matrix_value (); + SparseComplexMatrix sm = args(0).sparse_complex_matrix_value (); octave_idx_type sm_nr = sm.rows (); octave_idx_type sm_nc = sm.cols (); ColumnVector Qinit (sm_nc); for (octave_idx_type i = 0; i < sm_nc; i++) - Qinit (i) = i; + Qinit(i) = i; switch (nargout) { @@ -270,7 +273,6 @@ SparseComplexLU fact (sm, Qinit, thresh, false, true, droptol, milu, udiag); - SparseMatrix P = fact.Pr (); SparseComplexMatrix L = P.transpose () * fact.L (); @@ -327,8 +329,6 @@ break; } } - else - error ("luinc: matrix A must be sparse"); return retval; }