changeset 29872:df2cdf42a909

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.
author John W. Eaton <jwe@octave.org>
date Tue, 13 Jul 2021 13:21:52 -0400
parents b24567df50ab
children 1420d471e942
files libinterp/corefcn/spparms.cc libinterp/corefcn/symbfact.cc liboctave/array/CSparse.cc liboctave/array/MatrixType.cc liboctave/array/dSparse.cc liboctave/numeric/oct-spparms.cc liboctave/numeric/oct-spparms.h liboctave/numeric/sparse-chol.cc liboctave/numeric/sparse-lu.cc
diffstat 9 files changed, 264 insertions(+), 281 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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;
--- 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;
--- 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)
--- 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;
--- 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 <ostream>
 
-#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<double>::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<double>& 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<double>::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<double>& 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<double>::NaN ();
+  }
 
-  return octave::numeric_limits<double>::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";
-}
--- 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 <typename T> 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<double>& 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<double>& 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
--- 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.)
         {
--- 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<lu_elt_type> (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<lu_elt_type> (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;
         }