# HG changeset patch # User John W. Eaton # Date 1626196912 14400 # Node ID df2cdf42a9097a0bb96fe5baff43fe1422225c48 # Parent b24567df50abc59fbecdc4b796ee8e287ed908d5 update coding style for octave_sparse_params class * oct-spparms.h, oct-spparms.cc (class sparse_params): Rename from octave_sparse_params and move inside octave namespace. Change all uses. Provide deprecated octave_sparse_params typedef. Use m_ prefix for ordinary class data members and s_ for static data members. diff -r b24567df50ab -r df2cdf42a909 libinterp/corefcn/spparms.cc --- a/libinterp/corefcn/spparms.cc Mon Jul 12 23:31:05 2021 -0400 +++ b/libinterp/corefcn/spparms.cc Tue Jul 13 13:21:52 2021 -0400 @@ -113,12 +113,12 @@ if (nargin == 0) { if (nargout == 0) - octave_sparse_params::print_info (octave_stdout, ""); + octave::sparse_params::print_info (octave_stdout, ""); else if (nargout == 1) - retval = ovl (octave_sparse_params::get_vals ()); + retval = ovl (octave::sparse_params::get_vals ()); else if (nargout == 2) - retval = ovl (octave_sparse_params::get_keys (), - octave_sparse_params::get_vals ()); + retval = ovl (octave::sparse_params::get_keys (), + octave::sparse_params::get_vals ()); else error ("spparms: too many output arguments"); } @@ -132,12 +132,12 @@ str[i] = tolower (str[i]); if (str == "default") - octave_sparse_params::defaults (); + octave::sparse_params::defaults (); else if (str == "tight") - octave_sparse_params::tight (); + octave::sparse_params::tight (); else { - double val = octave_sparse_params::get_key (str); + double val = octave::sparse_params::get_key (str); if (octave::math::isnan (val)) error ("spparms: KEY not recognized"); @@ -150,7 +150,7 @@ if (vals.numel () > OCTAVE_SPARSE_CONTROLS_SIZE) error ("spparms: too many elements in vector VALS"); - octave_sparse_params::set_vals (vals); + octave::sparse_params::set_vals (vals); } } else if (nargin == 2) @@ -161,7 +161,7 @@ if (str == "umfpack") warning ("spparms: request to disable umfpack solvers ignored"); - else if (! octave_sparse_params::set_key (str, val)) + else if (! octave::sparse_params::set_key (str, val)) error ("spparms: KEY not found"); } else diff -r b24567df50ab -r df2cdf42a909 libinterp/corefcn/symbfact.cc --- a/libinterp/corefcn/symbfact.cc Mon Jul 12 23:31:05 2021 -0400 +++ b/libinterp/corefcn/symbfact.cc Tue Jul 13 13:21:52 2021 -0400 @@ -215,7 +215,7 @@ cholmod_common *cm = &Common; CHOLMOD_NAME(start) (cm); - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.0) { cm->print = -1; diff -r b24567df50ab -r df2cdf42a909 liboctave/array/CSparse.cc --- a/liboctave/array/CSparse.cc Mon Jul 12 23:31:05 2021 -0400 +++ b/liboctave/array/CSparse.cc Tue Jul 13 13:21:52 2021 -0400 @@ -1106,11 +1106,11 @@ double *control = Control.fortran_vec (); UMFPACK_ZNAME (defaults) (control); - double tmp = octave_sparse_params::get_key ("spumoni"); + double tmp = octave::sparse_params::get_key ("spumoni"); if (! octave::math::isnan (tmp)) Control (UMFPACK_PRL) = tmp; - tmp = octave_sparse_params::get_key ("piv_tol"); + tmp = octave::sparse_params::get_key ("piv_tol"); if (! octave::math::isnan (tmp)) { Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; @@ -1118,7 +1118,7 @@ } // Set whether we are allowed to modify Q or not - tmp = octave_sparse_params::get_key ("autoamd"); + tmp = octave::sparse_params::get_key ("autoamd"); if (! octave::math::isnan (tmp)) Control (UMFPACK_FIXQ) = tmp; @@ -5557,10 +5557,10 @@ double *control = Control.fortran_vec (); UMFPACK_ZNAME (defaults) (control); - double tmp = octave_sparse_params::get_key ("spumoni"); + double tmp = octave::sparse_params::get_key ("spumoni"); if (! octave::math::isnan (tmp)) Control (UMFPACK_PRL) = tmp; - tmp = octave_sparse_params::get_key ("piv_tol"); + tmp = octave::sparse_params::get_key ("piv_tol"); if (! octave::math::isnan (tmp)) { Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; @@ -5568,7 +5568,7 @@ } // Set whether we are allowed to modify Q or not - tmp = octave_sparse_params::get_key ("autoamd"); + tmp = octave::sparse_params::get_key ("autoamd"); if (! octave::math::isnan (tmp)) Control (UMFPACK_FIXQ) = tmp; @@ -5705,7 +5705,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.) { cm->print = -1; @@ -5944,7 +5944,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.) { cm->print = -1; @@ -6234,7 +6234,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.) { cm->print = -1; @@ -6452,7 +6452,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.) { cm->print = -1; diff -r b24567df50ab -r df2cdf42a909 liboctave/array/MatrixType.cc --- a/liboctave/array/MatrixType.cc Mon Jul 12 23:31:05 2021 -0400 +++ b/liboctave/array/MatrixType.cc Tue Jul 13 13:21:52 2021 -0400 @@ -65,7 +65,7 @@ MatrixType::MatrixType (void) : typ (MatrixType::Unknown), - sp_bandden (octave_sparse_params::get_bandden ()), + sp_bandden (octave::sparse_params::get_bandden ()), bandden (0), upper_band (0), lower_band (0), dense (false), full (false), nperm (0), perm (nullptr) { } @@ -243,10 +243,10 @@ octave_idx_type nm = (ncols < nrows ? ncols : nrows); octave_idx_type nnz = a.nnz (); - if (octave_sparse_params::get_key ("spumoni") != 0.) + if (octave::sparse_params::get_key ("spumoni") != 0.) warn_calculating_sparse_type (); - sp_bandden = octave_sparse_params::get_bandden (); + sp_bandden = octave::sparse_params::get_bandden (); bool maybe_hermitian = false; typ = MatrixType::Full; @@ -559,7 +559,7 @@ MatrixType::MatrixType (const matrix_type t, bool _full) : typ (MatrixType::Unknown), - sp_bandden (octave_sparse_params::get_bandden ()), + sp_bandden (octave::sparse_params::get_bandden ()), bandden (0), upper_band (0), lower_band (0), dense (false), full (_full), nperm (0), perm (nullptr) { @@ -576,7 +576,7 @@ MatrixType::MatrixType (const matrix_type t, const octave_idx_type np, const octave_idx_type *p, bool _full) : typ (MatrixType::Unknown), - sp_bandden (octave_sparse_params::get_bandden ()), + sp_bandden (octave::sparse_params::get_bandden ()), bandden (0), upper_band (0), lower_band (0), dense (false), full (_full), nperm (0), perm (nullptr) { @@ -596,7 +596,7 @@ MatrixType::MatrixType (const matrix_type t, const octave_idx_type ku, const octave_idx_type kl, bool _full) : typ (MatrixType::Unknown), - sp_bandden (octave_sparse_params::get_bandden ()), + sp_bandden (octave::sparse_params::get_bandden ()), bandden (0), upper_band (0), lower_band (0), dense (false), full (_full), nperm (0), perm (nullptr) { @@ -653,16 +653,16 @@ MatrixType::type (bool quiet) { if (typ != MatrixType::Unknown - && (full || sp_bandden == octave_sparse_params::get_bandden ())) + && (full || sp_bandden == octave::sparse_params::get_bandden ())) { - if (! quiet && octave_sparse_params::get_key ("spumoni") != 0.) + if (! quiet && octave::sparse_params::get_key ("spumoni") != 0.) warn_cached (); return typ; } if (typ != MatrixType::Unknown - && octave_sparse_params::get_key ("spumoni") != 0.) + && octave::sparse_params::get_key ("spumoni") != 0.) (*current_liboctave_warning_with_id_handler) ("Octave:matrix-type-info", "invalidating matrix type"); @@ -675,9 +675,9 @@ MatrixType::type (const SparseMatrix& a) { if (typ != MatrixType::Unknown - && (full || sp_bandden == octave_sparse_params::get_bandden ())) + && (full || sp_bandden == octave::sparse_params::get_bandden ())) { - if (octave_sparse_params::get_key ("spumoni") != 0.) + if (octave::sparse_params::get_key ("spumoni") != 0.) warn_cached (); return typ; @@ -707,9 +707,9 @@ MatrixType::type (const SparseComplexMatrix& a) { if (typ != MatrixType::Unknown - && (full || sp_bandden == octave_sparse_params::get_bandden ())) + && (full || sp_bandden == octave::sparse_params::get_bandden ())) { - if (octave_sparse_params::get_key ("spumoni") != 0.) + if (octave::sparse_params::get_key ("spumoni") != 0.) warn_cached (); return typ; @@ -740,7 +740,7 @@ { if (typ != MatrixType::Unknown) { - if (octave_sparse_params::get_key ("spumoni") != 0.) + if (octave::sparse_params::get_key ("spumoni") != 0.) warn_cached (); return typ; @@ -766,7 +766,7 @@ { if (typ != MatrixType::Unknown) { - if (octave_sparse_params::get_key ("spumoni") != 0.) + if (octave::sparse_params::get_key ("spumoni") != 0.) warn_cached (); return typ; @@ -792,7 +792,7 @@ { if (typ != MatrixType::Unknown) { - if (octave_sparse_params::get_key ("spumoni") != 0.) + if (octave::sparse_params::get_key ("spumoni") != 0.) warn_cached (); return typ; @@ -818,7 +818,7 @@ { if (typ != MatrixType::Unknown) { - if (octave_sparse_params::get_key ("spumoni") != 0.) + if (octave::sparse_params::get_key ("spumoni") != 0.) warn_cached (); return typ; @@ -842,7 +842,7 @@ void MatrixType::info () const { - if (octave_sparse_params::get_key ("spumoni") != 0.) + if (octave::sparse_params::get_key ("spumoni") != 0.) { if (typ == MatrixType::Unknown) (*current_liboctave_warning_with_id_handler) diff -r b24567df50ab -r df2cdf42a909 liboctave/array/dSparse.cc --- a/liboctave/array/dSparse.cc Mon Jul 12 23:31:05 2021 -0400 +++ b/liboctave/array/dSparse.cc Tue Jul 13 13:21:52 2021 -0400 @@ -1046,11 +1046,11 @@ double *control = Control.fortran_vec (); UMFPACK_DNAME (defaults) (control); - double tmp = octave_sparse_params::get_key ("spumoni"); + double tmp = octave::sparse_params::get_key ("spumoni"); if (! octave::math::isnan (tmp)) Control (UMFPACK_PRL) = tmp; - tmp = octave_sparse_params::get_key ("piv_tol"); + tmp = octave::sparse_params::get_key ("piv_tol"); if (! octave::math::isnan (tmp)) { Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; @@ -1058,7 +1058,7 @@ } // Set whether we are allowed to modify Q or not - tmp = octave_sparse_params::get_key ("autoamd"); + tmp = octave::sparse_params::get_key ("autoamd"); if (! octave::math::isnan (tmp)) Control (UMFPACK_FIXQ) = tmp; @@ -5601,10 +5601,10 @@ double *control = Control.fortran_vec (); UMFPACK_DNAME (defaults) (control); - double tmp = octave_sparse_params::get_key ("spumoni"); + double tmp = octave::sparse_params::get_key ("spumoni"); if (! octave::math::isnan (tmp)) Control (UMFPACK_PRL) = tmp; - tmp = octave_sparse_params::get_key ("piv_tol"); + tmp = octave::sparse_params::get_key ("piv_tol"); if (! octave::math::isnan (tmp)) { Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; @@ -5612,7 +5612,7 @@ } // Set whether we are allowed to modify Q or not - tmp = octave_sparse_params::get_key ("autoamd"); + tmp = octave::sparse_params::get_key ("autoamd"); if (! octave::math::isnan (tmp)) Control (UMFPACK_FIXQ) = tmp; @@ -5747,7 +5747,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.) { cm->print = -1; @@ -5958,7 +5958,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.) { cm->print = -1; @@ -6218,7 +6218,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.) { cm->print = -1; @@ -6450,7 +6450,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = octave::sparse_params::get_key ("spumoni"); if (spu == 0.) { cm->print = -1; diff -r b24567df50ab -r df2cdf42a909 liboctave/numeric/oct-spparms.cc --- a/liboctave/numeric/oct-spparms.cc Mon Jul 12 23:31:05 2021 -0400 +++ b/liboctave/numeric/oct-spparms.cc Tue Jul 13 13:21:52 2021 -0400 @@ -29,192 +29,177 @@ #include -#include "dNDArray.h" +#include "Array.h" #include "lo-error.h" #include "lo-ieee.h" #include "oct-spparms.h" #include "singleton-cleanup.h" -octave_sparse_params *octave_sparse_params::instance = nullptr; - -bool -octave_sparse_params::instance_ok (void) -{ - bool retval = true; - - if (! instance) - { - instance = new octave_sparse_params (); - singleton_cleanup_list::add (cleanup_instance); - } - - return retval; -} - -void -octave_sparse_params::defaults (void) -{ - if (instance_ok ()) - instance->do_defaults (); -} - -void -octave_sparse_params::tight (void) -{ - if (instance_ok ()) - instance->do_tight (); -} - -string_vector -octave_sparse_params::get_keys (void) -{ - return instance_ok () ? instance->do_get_keys () : string_vector (); -} - -ColumnVector -octave_sparse_params::get_vals (void) -{ - return instance_ok () ? instance->do_get_vals () : ColumnVector (); -} - -bool -octave_sparse_params::set_vals (const NDArray& vals) +namespace octave { - return instance_ok () ? instance->do_set_vals (vals) : false; -} + sparse_params *sparse_params::s_instance = nullptr; + + bool sparse_params::instance_ok (void) + { + bool retval = true; -bool -octave_sparse_params::set_key (const std::string& key, const double& val) -{ - return instance_ok () ? instance->do_set_key (key, val) : false; -} + if (! s_instance) + { + s_instance = new sparse_params (); + singleton_cleanup_list::add (cleanup_instance); + } + + return retval; + } -double -octave_sparse_params::get_key (const std::string& key) -{ - return instance_ok () ? instance->do_get_key (key) - : octave::numeric_limits::NaN (); -} + void sparse_params::defaults (void) + { + if (instance_ok ()) + s_instance->do_defaults (); + } -double -octave_sparse_params::get_bandden (void) -{ - return instance_ok () ? instance->do_get_bandden () : 0.0; -} + void sparse_params::tight (void) + { + if (instance_ok ()) + s_instance->do_tight (); + } + + string_vector sparse_params::get_keys (void) + { + return instance_ok () ? s_instance->do_get_keys () : string_vector (); + } + + ColumnVector sparse_params::get_vals (void) + { + return instance_ok () ? s_instance->do_get_vals () : ColumnVector (); + } -void -octave_sparse_params::print_info (std::ostream& os, const std::string& prefix) -{ - if (instance_ok ()) - instance->do_print_info (os, prefix); -} + bool sparse_params::set_vals (const Array& vals) + { + return instance_ok () ? s_instance->do_set_vals (vals) : false; + } + + bool sparse_params::set_key (const std::string& key, const double& val) + { + return instance_ok () ? s_instance->do_set_key (key, val) : false; + } + + double sparse_params::get_key (const std::string& key) + { + return (instance_ok () + ? s_instance->do_get_key (key) : numeric_limits::NaN ()); + } + + double sparse_params::get_bandden (void) + { + return instance_ok () ? s_instance->do_get_bandden () : 0.0; + } -void -octave_sparse_params::do_defaults (void) -{ - params(0) = 0; // spumoni - params(1) = 1; // ths_rel - params(2) = 1; // ths_abs - params(3) = 0; // exact_d - params(4) = 3; // supernd - params(5) = 3; // rreduce - params(6) = 0.5; // wh_frac - params(7) = 1; // autommd - params(8) = 1; // autoamd - params(9) = 0.1; // piv_tol - params(10) = 0.5; // bandden - params(11) = 1; // umfpack - params(12) = 0.001; // sym_tol -} + void sparse_params::print_info (std::ostream& os, const std::string& prefix) + { + if (instance_ok ()) + s_instance->do_print_info (os, prefix); + } + + void sparse_params::do_defaults (void) + { + m_params(0) = 0; // spumoni + m_params(1) = 1; // ths_rel + m_params(2) = 1; // ths_abs + m_params(3) = 0; // exact_d + m_params(4) = 3; // supernd + m_params(5) = 3; // rreduce + m_params(6) = 0.5; // wh_frac + m_params(7) = 1; // autommd + m_params(8) = 1; // autoamd + m_params(9) = 0.1; // piv_tol + m_params(10) = 0.5; // bandden + m_params(11) = 1; // umfpack + m_params(12) = 0.001; // sym_tol + } -void -octave_sparse_params::do_tight (void) -{ - params(0) = 0; // spumoni - params(1) = 1; // ths_rel - params(2) = 0; // ths_abs - params(3) = 1; // exact_d - params(4) = 1; // supernd - params(5) = 1; // rreduce - params(6) = 0.5; // wh_frac - params(7) = 1; // autommd - params(8) = 1; // autoamd - params(9) = 0.1; // piv_tol - params(10) = 0.5; // bandden - params(11) = 1; // umfpack - params(12) = 0.001; // sym_tol -} + void sparse_params::do_tight (void) + { + m_params(0) = 0; // spumoni + m_params(1) = 1; // ths_rel + m_params(2) = 0; // ths_abs + m_params(3) = 1; // exact_d + m_params(4) = 1; // supernd + m_params(5) = 1; // rreduce + m_params(6) = 0.5; // wh_frac + m_params(7) = 1; // autommd + m_params(8) = 1; // autoamd + m_params(9) = 0.1; // piv_tol + m_params(10) = 0.5; // bandden + m_params(11) = 1; // umfpack + m_params(12) = 0.001; // sym_tol + } -void -octave_sparse_params::init_keys (void) -{ - keys(0) = "spumoni"; - keys(1) = "ths_rel"; - keys(2) = "ths_abs"; - keys(3) = "exact_d"; - keys(4) = "supernd"; - keys(5) = "rreduce"; - keys(6) = "wh_frac"; - keys(7) = "autommd"; - keys(8) = "autoamd"; - keys(9) = "piv_tol"; - keys(10) = "bandden"; - keys(11) = "umfpack"; - keys(12) = "sym_tol"; -} + void sparse_params::init_keys (void) + { + m_keys(0) = "spumoni"; + m_keys(1) = "ths_rel"; + m_keys(2) = "ths_abs"; + m_keys(3) = "exact_d"; + m_keys(4) = "supernd"; + m_keys(5) = "rreduce"; + m_keys(6) = "wh_frac"; + m_keys(7) = "autommd"; + m_keys(8) = "autoamd"; + m_keys(9) = "piv_tol"; + m_keys(10) = "bandden"; + m_keys(11) = "umfpack"; + m_keys(12) = "sym_tol"; + } -double -octave_sparse_params::do_get_bandden (void) -{ - return params(10); -} + double sparse_params::do_get_bandden (void) + { + return m_params(10); + } + + bool sparse_params::do_set_vals (const Array& vals) + { + octave_idx_type len = vals.numel (); -bool -octave_sparse_params::do_set_vals (const NDArray& vals) -{ - octave_idx_type len = vals.numel (); + if (len > OCTAVE_SPARSE_CONTROLS_SIZE) + (*current_liboctave_error_handler) + ("sparse_params::do_set_vals: too many values"); + + for (int i = 0; i < len; i++) + m_params(i) = vals(i); + + return true; + } - if (len > OCTAVE_SPARSE_CONTROLS_SIZE) - (*current_liboctave_error_handler) - ("octave_sparse_params::do_set_vals: too many values"); - - for (int i = 0; i < len; i++) - params(i) = vals(i); - - return true; -} + bool sparse_params::do_set_key (const std::string& key, const double& val) + { + for (int i = 0; i < OCTAVE_SPARSE_CONTROLS_SIZE; i++) + { + if (m_keys (i) == key) + { + m_params(i) = val; + return true; + } + } -bool -octave_sparse_params::do_set_key (const std::string& key, const double& val) -{ - for (int i = 0; i < OCTAVE_SPARSE_CONTROLS_SIZE; i++) - { - if (keys (i) == key) - { - params(i) = val; - return true; - } - } + return false; + } - return false; -} + double sparse_params::do_get_key (const std::string& key) + { + for (int i = 0; i < OCTAVE_SPARSE_CONTROLS_SIZE; i++) + { + if (m_keys (i) == key) + return m_params(i); + } -double -octave_sparse_params::do_get_key (const std::string& key) -{ - for (int i = 0; i < OCTAVE_SPARSE_CONTROLS_SIZE; i++) - { - if (keys (i) == key) - return params(i); - } + return numeric_limits::NaN (); + } - return octave::numeric_limits::NaN (); + void sparse_params::do_print_info (std::ostream& os, + const std::string& prefix) const + { + for (int i = 0; i < OCTAVE_SPARSE_CONTROLS_SIZE; i++) + os << prefix << m_keys(i) << ": " << m_params(i) << "\n"; + } } - -void -octave_sparse_params::do_print_info (std::ostream& os, - const std::string& prefix) const -{ - for (int i = 0; i < OCTAVE_SPARSE_CONTROLS_SIZE; i++) - os << prefix << keys(i) << ": " << params(i) << "\n"; -} diff -r b24567df50ab -r df2cdf42a909 liboctave/numeric/oct-spparms.h --- a/liboctave/numeric/oct-spparms.h Mon Jul 12 23:31:05 2021 -0400 +++ b/liboctave/numeric/oct-spparms.h Tue Jul 13 13:21:52 2021 -0400 @@ -34,91 +34,89 @@ #include "str-vec.h" #include "dColVector.h" -class NDArray; +template class Array; #define OCTAVE_SPARSE_CONTROLS_SIZE 13 -class -OCTAVE_API -octave_sparse_params +namespace octave { -protected: + class OCTAVE_API sparse_params + { + protected: - octave_sparse_params (void) - : params (OCTAVE_SPARSE_CONTROLS_SIZE), - keys (OCTAVE_SPARSE_CONTROLS_SIZE) - { - init_keys (); - do_defaults (); - } + sparse_params (void) + : m_params (OCTAVE_SPARSE_CONTROLS_SIZE), + m_keys (OCTAVE_SPARSE_CONTROLS_SIZE) + { + init_keys (); + do_defaults (); + } -public: + public: - octave_sparse_params (const octave_sparse_params& a) - : params (a.params), keys (a.keys) { } + sparse_params (const sparse_params&) = default; + + sparse_params& operator = (const sparse_params&) = default; - octave_sparse_params& operator = (const octave_sparse_params& a) - { - if (&a != this) - { - params = a.params; - keys = a.keys; - } + ~sparse_params (void) = default; + + static bool instance_ok (void); + + static void defaults (void); + + static void tight (void); + + static string_vector get_keys (void); - return *this; - } + static ColumnVector get_vals (void); - ~octave_sparse_params (void) = default; + static bool set_vals (const Array& vals); - static bool instance_ok (void); - - static void defaults (void); + static bool set_key (const std::string& key, const double& val); - static void tight (void); + static double get_key (const std::string& key); - static string_vector get_keys (void); + static double get_bandden (void); - static ColumnVector get_vals (void); + static void print_info (std::ostream& os, const std::string& prefix); - static bool set_vals (const NDArray& vals); + private: - static bool set_key (const std::string& key, const double& val); + ColumnVector m_params; - static double get_key (const std::string& key); + string_vector m_keys; - static double get_bandden (void); + static sparse_params *s_instance; - static void print_info (std::ostream& os, const std::string& prefix); - -private: + static void cleanup_instance (void) + { + delete s_instance; + s_instance = nullptr; + } - ColumnVector params; + void do_defaults (void); - string_vector keys; - - static octave_sparse_params *instance; + void do_tight (void); - static void cleanup_instance (void) { delete instance; instance = nullptr; } + string_vector do_get_keys (void) const { return m_keys; } - void do_defaults (void); + ColumnVector do_get_vals (void) const { return m_params; } - void do_tight (void); + bool do_set_vals (const Array& vals); - string_vector do_get_keys (void) const { return keys; } + bool do_set_key (const std::string& key, const double& val); - ColumnVector do_get_vals (void) const { return params; } + double do_get_key (const std::string& key); - bool do_set_vals (const NDArray& vals); + double do_get_bandden (void); - bool do_set_key (const std::string& key, const double& val); - - double do_get_key (const std::string& key); + void do_print_info (std::ostream& os, const std::string& prefix) const; - double do_get_bandden (void); + void init_keys (void); + }; +} - void do_print_info (std::ostream& os, const std::string& prefix) const; - - void init_keys (void); -}; +OCTAVE_DEPRECATED (7, "use 'octave::sparse_params' instead") +typedef octave::sparse_params octave_sparse_params; #endif diff -r b24567df50ab -r df2cdf42a909 liboctave/numeric/sparse-chol.cc --- a/liboctave/numeric/sparse-chol.cc Mon Jul 12 23:31:05 2021 -0400 +++ b/liboctave/numeric/sparse-chol.cc Tue Jul 13 13:21:52 2021 -0400 @@ -227,7 +227,7 @@ CHOLMOD_NAME(start) (cm); cm->prefer_zomplex = false; - double spu = octave_sparse_params::get_key ("spumoni"); + double spu = sparse_params::get_key ("spumoni"); if (spu == 0.) { diff -r b24567df50ab -r df2cdf42a909 liboctave/numeric/sparse-lu.cc --- a/liboctave/numeric/sparse-lu.cc Mon Jul 12 23:31:05 2021 -0400 +++ b/liboctave/numeric/sparse-lu.cc Tue Jul 13 13:21:52 2021 -0400 @@ -418,7 +418,7 @@ double *control = Control.fortran_vec (); umfpack_defaults (control); - double tmp = octave_sparse_params::get_key ("spumoni"); + double tmp = sparse_params::get_key ("spumoni"); if (! math::isnan (tmp)) Control (UMFPACK_PRL) = tmp; @@ -434,17 +434,17 @@ } else { - tmp = octave_sparse_params::get_key ("piv_tol"); + tmp = sparse_params::get_key ("piv_tol"); if (! math::isnan (tmp)) Control (UMFPACK_PIVOT_TOLERANCE) = tmp; - tmp = octave_sparse_params::get_key ("sym_tol"); + tmp = sparse_params::get_key ("sym_tol"); if (! math::isnan (tmp)) Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; } // Set whether we are allowed to modify Q or not - tmp = octave_sparse_params::get_key ("autoamd"); + tmp = sparse_params::get_key ("autoamd"); if (! math::isnan (tmp)) Control (UMFPACK_FIXQ) = tmp; @@ -636,7 +636,7 @@ double *control = Control.fortran_vec (); umfpack_defaults (control); - double tmp = octave_sparse_params::get_key ("spumoni"); + double tmp = sparse_params::get_key ("spumoni"); if (! math::isnan (tmp)) Control (UMFPACK_PRL) = tmp; @@ -651,11 +651,11 @@ } else { - tmp = octave_sparse_params::get_key ("piv_tol"); + tmp = sparse_params::get_key ("piv_tol"); if (! math::isnan (tmp)) Control (UMFPACK_PIVOT_TOLERANCE) = tmp; - tmp = octave_sparse_params::get_key ("sym_tol"); + tmp = sparse_params::get_key ("sym_tol"); if (! math::isnan (tmp)) Control (UMFPACK_SYM_PIVOT_TOLERANCE) = tmp; } @@ -668,7 +668,7 @@ Control (UMFPACK_FIXQ) = 1.0; else { - tmp = octave_sparse_params::get_key ("autoamd"); + tmp = sparse_params::get_key ("autoamd"); if (! math::isnan (tmp)) Control (UMFPACK_FIXQ) = tmp; }