summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2019-02-09 02:24:09 +0100
committer couriersud <couriersud@gmx.org>2019-02-09 23:07:27 +0100
commit9d8cb783e3477927db622e0eef63c6e2c3e3ace7 (patch)
tree5e6fbb76fe961ddc67dc3668a744080c2a712a4e
parentac124a896b8dff99b6812eabbb8071c98d36a8f9 (diff)
netlist: more core guidelines work. (nw)
-rw-r--r--src/devices/machine/netlist.cpp8
-rw-r--r--src/lib/netlist/analog/nlid_twoterm.h2
-rw-r--r--src/lib/netlist/build/makefile19
-rw-r--r--src/lib/netlist/devices/nlid_proxy.cpp21
-rw-r--r--src/lib/netlist/devices/nlid_proxy.h10
-rw-r--r--src/lib/netlist/devices/nlid_truthtable.cpp6
-rw-r--r--src/lib/netlist/devices/nlid_truthtable.h10
-rw-r--r--src/lib/netlist/nl_base.cpp26
-rw-r--r--src/lib/netlist/nl_base.h33
-rw-r--r--src/lib/netlist/nl_factory.cpp6
-rw-r--r--src/lib/netlist/nl_setup.cpp10
-rw-r--r--src/lib/netlist/plib/gmres.h4
-rw-r--r--src/lib/netlist/plib/mat_cr.h4
-rw-r--r--src/lib/netlist/plib/parray.h12
-rw-r--r--src/lib/netlist/plib/pchrono.h14
-rw-r--r--src/lib/netlist/plib/pfunction.cpp2
-rw-r--r--src/lib/netlist/plib/plists.h4
-rw-r--r--src/lib/netlist/plib/pstate.h5
-rw-r--r--src/lib/netlist/plib/pstream.h8
-rw-r--r--src/lib/netlist/plib/pstring.h62
-rw-r--r--src/lib/netlist/plib/putil.cpp25
-rw-r--r--src/lib/netlist/prg/nlwav.cpp4
-rw-r--r--src/lib/netlist/solver/nld_matrix_solver.cpp6
-rw-r--r--src/lib/netlist/solver/nld_matrix_solver.h6
-rw-r--r--src/lib/netlist/solver/nld_ms_direct.h10
-rw-r--r--src/lib/netlist/solver/nld_ms_direct1.h8
-rw-r--r--src/lib/netlist/solver/nld_ms_direct2.h10
-rw-r--r--src/lib/netlist/solver/nld_ms_gcr.h6
-rw-r--r--src/lib/netlist/solver/nld_ms_gmres.h10
-rw-r--r--src/lib/netlist/solver/nld_ms_sm.h8
-rw-r--r--src/lib/netlist/solver/nld_ms_sor.h4
-rw-r--r--src/lib/netlist/solver/nld_ms_sor_mat.h4
-rw-r--r--src/lib/netlist/solver/nld_ms_w.h8
-rw-r--r--src/lib/netlist/solver/nld_solver.cpp4
-rw-r--r--src/lib/netlist/tools/nl_convert.cpp6
35 files changed, 180 insertions, 205 deletions
diff --git a/src/devices/machine/netlist.cpp b/src/devices/machine/netlist.cpp
index 957d4575672..d702bd5b6b6 100644
--- a/src/devices/machine/netlist.cpp
+++ b/src/devices/machine/netlist.cpp
@@ -117,7 +117,7 @@ namespace {
class NETLIB_NAME(analog_callback) : public netlist::device_t
{
public:
- NETLIB_NAME(analog_callback)(netlist::netlist_base_t &anetlist, const pstring &name)
+ NETLIB_NAME(analog_callback)(netlist::netlist_state_t &anetlist, const pstring &name)
: device_t(anetlist, name)
, m_in(*this, "IN")
, m_cpu_device(nullptr)
@@ -165,7 +165,7 @@ private:
class NETLIB_NAME(logic_callback) : public netlist::device_t
{
public:
- NETLIB_NAME(logic_callback)(netlist::netlist_base_t &anetlist, const pstring &name)
+ NETLIB_NAME(logic_callback)(netlist::netlist_state_t &anetlist, const pstring &name)
: device_t(anetlist, name)
, m_in(*this, "IN")
, m_cpu_device(nullptr)
@@ -273,7 +273,7 @@ std::unique_ptr<plib::pistream> netlist_data_memregions_t::stream(const pstring
class NETLIB_NAME(sound_out) : public netlist::device_t
{
public:
- NETLIB_NAME(sound_out)(netlist::netlist_base_t &anetlist, const pstring &name)
+ NETLIB_NAME(sound_out)(netlist::netlist_state_t &anetlist, const pstring &name)
: netlist::device_t(anetlist, name)
, m_channel(*this, "CHAN", 0)
, m_mult(*this, "MULT", 1000.0)
@@ -355,7 +355,7 @@ public:
static const int MAX_INPUT_CHANNELS = 16;
- NETLIB_NAME(sound_in)(netlist::netlist_base_t &anetlist, const pstring &name)
+ NETLIB_NAME(sound_in)(netlist::netlist_state_t &anetlist, const pstring &name)
: netlist::device_t(anetlist, name)
, m_inc(netlist::netlist_time::from_nsec(1))
, m_feedback(*this, "FB") // clock part
diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h
index 73ea2b92aed..4c48e1a5370 100644
--- a/src/lib/netlist/analog/nlid_twoterm.h
+++ b/src/lib/netlist/analog/nlid_twoterm.h
@@ -56,7 +56,7 @@ namespace netlist
return b ? *h : d2;
}
template<>
- inline core_device_t &bselect(bool b, netlist_base_t &d1, core_device_t &d2)
+ inline core_device_t &bselect(bool b, netlist_state_t &d1, core_device_t &d2)
{
plib::unused_var(d1);
if (b)
diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile
index 495c4ed1316..45512d2beca 100644
--- a/src/lib/netlist/build/makefile
+++ b/src/lib/netlist/build/makefile
@@ -14,18 +14,20 @@ VSBUILD = $(SRC)/buildVS
DOC = $(SRC)/documentation
TIDY_DB = ../compile_commands.json
-TIDY_FLAGSX = -checks=*,-google*,-hicpp*,-readability*,-fuchsia*,-llvm-header-guard,
-TIDY_FLAGSX += -modernize-use-using,-cppcoreguidelines-pro-type-reinterpret-cast,
+TIDY_FLAGSX = -checks=*,-google*,-hicpp*,-readability*,-fuchsia*,-cert-*,
+TIDY_FLAGSX += -llvm-header-guard,-cppcoreguidelines-pro-type-reinterpret-cast,
TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-owning-memory,
-TIDY_FLAGSX += -modernize-use-default-member-init,-cert-*,-cppcoreguidelines-pro-bounds-constant-array-index,
-TIDY_FLAGSX += -modernize-pass-by-value,-misc-macro-parentheses,-cppcoreguidelines-pro-type-static-cast-downcast,
-TIDY_FLAGSX += -cppcoreguidelines-special-member-functions,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
+TIDY_FLAGSX += -modernize-use-default-member-init,-cppcoreguidelines-pro-bounds-constant-array-index,
+TIDY_FLAGSX += -modernize-pass-by-value,-cppcoreguidelines-pro-type-static-cast-downcast,
+//TIDY_FLAGSX += -cppcoreguidelines-special-member-functions,
+TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
TIDY_FLAGSX += -performance-unnecessary-value-param,-android-*,-cppcoreguidelines-avoid-magic-numbers,
-TIDY_FLAGSX += -cppcoreguidelines-macro-usage,-misc-non-private-member-variables-in-classes,
-TIDY_FLAGSX += -cppcoreguidelines-non-private-member-variables-in-classes,
+TIDY_FLAGSX += -cppcoreguidelines-macro-usage,
+TIDY_FLAGSX += -cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes,
#TIDY_FLAGSX += -cppcoreguidelines-avoid-c-arrays,-modernize-avoid-c-arrays,
+#TIDY_FLAGSX += -modernize-use-using,
TIDY_FLAGSX += -performance-unnecessary-copy-initialization,
-TIDY_FLAGSX += -bugprone-macro-parentheses
+TIDY_FLAGSX += -bugprone-macro-parentheses,-misc-macro-parentheses
space :=
space +=
@@ -34,6 +36,7 @@ TIDY_FLAGS = $(subst $(space),,$(TIDY_FLAGSX))
#TIDY_FLAGS = -checks=llvm-include-order -fix
#TIDY_FLAGS = -checks=llvm-namespace-comment -fix
#TIDY_FLAGS = -checks=modernize-use-override -fix
+#TIDY_FLAGS = -checks=modernize-use-using -fix
ifeq ($(subst Windows_NT,windows,$(OS)),windows)
OBJ = obj/mingw
diff --git a/src/lib/netlist/devices/nlid_proxy.cpp b/src/lib/netlist/devices/nlid_proxy.cpp
index 6c4d553abdb..82393e0e595 100644
--- a/src/lib/netlist/devices/nlid_proxy.cpp
+++ b/src/lib/netlist/devices/nlid_proxy.cpp
@@ -20,7 +20,7 @@ namespace netlist
// nld_base_proxy
// -----------------------------------------------------------------------------
- nld_base_proxy::nld_base_proxy(netlist_base_t &anetlist, const pstring &name,
+ nld_base_proxy::nld_base_proxy(netlist_state_t &anetlist, const pstring &name,
logic_t *inout_proxied, detail::core_terminal_t *proxy_inout)
: device_t(anetlist, name)
{
@@ -33,14 +33,14 @@ namespace netlist
// nld_a_to_d_proxy
// ----------------------------------------------------------------------------------------
- nld_base_a_to_d_proxy::nld_base_a_to_d_proxy(netlist_base_t &anetlist, const pstring &name,
+ nld_base_a_to_d_proxy::nld_base_a_to_d_proxy(netlist_state_t &anetlist, const pstring &name,
logic_input_t *in_proxied, detail::core_terminal_t *in_proxy)
: nld_base_proxy(anetlist, name, in_proxied, in_proxy)
, m_Q(*this, "Q")
{
}
- nld_a_to_d_proxy::nld_a_to_d_proxy(netlist_base_t &anetlist, const pstring &name, logic_input_t *in_proxied)
+ nld_a_to_d_proxy::nld_a_to_d_proxy(netlist_state_t &anetlist, const pstring &name, logic_input_t *in_proxied)
: nld_base_a_to_d_proxy(anetlist, name, in_proxied, &m_I)
, m_I(*this, "I")
{
@@ -71,35 +71,32 @@ namespace netlist
// nld_d_to_a_proxy
// ----------------------------------------------------------------------------------------
- nld_base_d_to_a_proxy::nld_base_d_to_a_proxy(netlist_base_t &anetlist, const pstring &name,
+ nld_base_d_to_a_proxy::nld_base_d_to_a_proxy(netlist_state_t &anetlist, const pstring &name,
logic_output_t *out_proxied, detail::core_terminal_t &proxy_out)
: nld_base_proxy(anetlist, name, out_proxied, &proxy_out)
, m_I(*this, "I")
{
}
- nld_d_to_a_proxy::nld_d_to_a_proxy(netlist_base_t &anetlist, const pstring &name, logic_output_t *out_proxied)
+ nld_d_to_a_proxy::nld_d_to_a_proxy(netlist_state_t &anetlist, const pstring &name, logic_output_t *out_proxied)
: nld_base_d_to_a_proxy(anetlist, name, out_proxied, m_RV.m_P)
, m_GNDHack(*this, "_Q")
, m_RV(*this, "RV")
, m_last_state(*this, "m_last_var", -1)
, m_is_timestep(false)
{
- const pstring power_syms[3][2] ={ {"VCC", "VEE"}, {"VCC", "GND"}, {"VDD", "VSS"}};
- //register_sub(m_RV);
- //register_term("1", m_RV.m_P);
- //register_term("2", m_RV.m_N);
+ const std::vector<std::pair<pstring, pstring>> power_syms = { {"VCC", "VEE"}, {"VCC", "GND"}, {"VDD", "VSS"}};
register_subalias("Q", m_RV.m_P);
connect(m_RV.m_N, m_GNDHack);
bool f = false;
- for (int i = 0; i < 3; i++)
+ for (auto & pwr_sym : power_syms)
{
pstring devname = out_proxied->device().name();
- auto tp = setup().find_terminal(devname + "." + power_syms[i][0],
+ auto tp = setup().find_terminal(devname + "." + pwr_sym.first,
detail::terminal_type::INPUT, false);
- auto tn = setup().find_terminal(devname + "." + power_syms[i][1],
+ auto tn = setup().find_terminal(devname + "." + pwr_sym.second,
detail::terminal_type::INPUT, false);
if (tp != nullptr && tn != nullptr)
{
diff --git a/src/lib/netlist/devices/nlid_proxy.h b/src/lib/netlist/devices/nlid_proxy.h
index 034f7c3d9ba..f7eb2d7baa3 100644
--- a/src/lib/netlist/devices/nlid_proxy.h
+++ b/src/lib/netlist/devices/nlid_proxy.h
@@ -26,7 +26,7 @@ namespace netlist
NETLIB_OBJECT(base_proxy)
{
public:
- nld_base_proxy(netlist_base_t &anetlist, const pstring &name,
+ nld_base_proxy(netlist_state_t &anetlist, const pstring &name,
logic_t *inout_proxied, detail::core_terminal_t *proxy_inout);
~nld_base_proxy() override = default;
@@ -55,7 +55,7 @@ namespace netlist
protected:
- nld_base_a_to_d_proxy(netlist_base_t &anetlist, const pstring &name,
+ nld_base_a_to_d_proxy(netlist_state_t &anetlist, const pstring &name,
logic_input_t *in_proxied, detail::core_terminal_t *in_proxy);
private:
@@ -67,7 +67,7 @@ namespace netlist
NETLIB_OBJECT_DERIVED(a_to_d_proxy, base_a_to_d_proxy)
{
public:
- nld_a_to_d_proxy(netlist_base_t &anetlist, const pstring &name, logic_input_t *in_proxied);
+ nld_a_to_d_proxy(netlist_state_t &anetlist, const pstring &name, logic_input_t *in_proxied);
~nld_a_to_d_proxy() override = default;
@@ -93,7 +93,7 @@ namespace netlist
virtual logic_input_t &in() { return m_I; }
protected:
- nld_base_d_to_a_proxy(netlist_base_t &anetlist, const pstring &name,
+ nld_base_d_to_a_proxy(netlist_state_t &anetlist, const pstring &name,
logic_output_t *out_proxied, detail::core_terminal_t &proxy_out);
logic_input_t m_I;
@@ -104,7 +104,7 @@ namespace netlist
NETLIB_OBJECT_DERIVED(d_to_a_proxy, base_d_to_a_proxy)
{
public:
- nld_d_to_a_proxy(netlist_base_t &anetlist, const pstring &name, logic_output_t *out_proxied);
+ nld_d_to_a_proxy(netlist_state_t &anetlist, const pstring &name, logic_output_t *out_proxied);
~nld_d_to_a_proxy() override = default;
protected:
diff --git a/src/lib/netlist/devices/nlid_truthtable.cpp b/src/lib/netlist/devices/nlid_truthtable.cpp
index ffac497d482..fdeeb28b7e1 100644
--- a/src/lib/netlist/devices/nlid_truthtable.cpp
+++ b/src/lib/netlist/devices/nlid_truthtable.cpp
@@ -24,7 +24,7 @@ namespace netlist
template <typename T>
struct sbitset
{
- typedef T type;
+ using type = T;
sbitset() : m_bs(0) { }
/* explicit */ sbitset(T v) : m_bs(v) { }
@@ -224,9 +224,9 @@ namespace netlist
: netlist_base_factory_truthtable_t(name, classname, def_param, sourcefile)
{ }
- plib::owned_ptr<device_t> Create(netlist_base_t &anetlist, const pstring &name) override
+ plib::owned_ptr<device_t> Create(netlist_state_t &anetlist, const pstring &name) override
{
- typedef nld_truthtable_t<m_NI, m_NO> tt_type;
+ using tt_type = nld_truthtable_t<m_NI, m_NO>;
truthtable_parser desc_s(m_NO, m_NI, &m_ttbl.m_initialized,
packed_int(m_ttbl.m_out_state.data(), sizeof(m_ttbl.m_out_state[0]) * 8),
m_ttbl.m_timing_index.data(), m_ttbl.m_timing_nt.data());
diff --git a/src/lib/netlist/devices/nlid_truthtable.h b/src/lib/netlist/devices/nlid_truthtable.h
index 6067a69113b..af0fbcf329a 100644
--- a/src/lib/netlist/devices/nlid_truthtable.h
+++ b/src/lib/netlist/devices/nlid_truthtable.h
@@ -44,10 +44,10 @@ namespace devices
};
template<unsigned bits> struct uint_for_size;
- template<> struct uint_for_size<1> { typedef uint_least8_t type; };
- template<> struct uint_for_size<2> { typedef uint_least16_t type; };
- template<> struct uint_for_size<4> { typedef uint_least32_t type; };
- template<> struct uint_for_size<8> { typedef uint_least64_t type; };
+ template<> struct uint_for_size<1> { using type = uint_least8_t; };
+ template<> struct uint_for_size<2> { using type = uint_least16_t; };
+ template<> struct uint_for_size<4> { using type = uint_least32_t; };
+ template<> struct uint_for_size<8> { using type = uint_least64_t; };
template<std::size_t NUM, typename R>
struct aa
@@ -81,7 +81,7 @@ namespace devices
detail::family_setter_t m_fam;
public:
- typedef typename uint_for_size<need_bytes_for_bits<m_NO + m_NI>::value>::type type_t;
+ using type_t = typename uint_for_size<need_bytes_for_bits<m_NO + m_NI>::value>::type;
static constexpr const std::size_t m_num_bits = m_NI;
static constexpr const std::size_t m_size = (1 << (m_num_bits));
diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp
index c5fa3f57134..d55e75df6fb 100644
--- a/src/lib/netlist/nl_base.cpp
+++ b/src/lib/netlist/nl_base.cpp
@@ -82,15 +82,15 @@ public:
m_R_low = 1.0;
m_R_high = 130.0;
}
- plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_base_t &anetlist, const pstring &name, logic_output_t *proxied) const override;
- plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_base_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
+ plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_state_t &anetlist, const pstring &name, logic_output_t *proxied) const override;
+ plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_state_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
};
-plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_ttl_t::create_d_a_proxy(netlist_base_t &anetlist, const pstring &name, logic_output_t *proxied) const
+plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_ttl_t::create_d_a_proxy(netlist_state_t &anetlist, const pstring &name, logic_output_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
-plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_ttl_t::create_a_d_proxy(netlist_base_t &anetlist, const pstring &name, logic_input_t *proxied) const
+plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_ttl_t::create_a_d_proxy(netlist_state_t &anetlist, const pstring &name, logic_input_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
@@ -109,15 +109,15 @@ public:
m_R_low = 10.0;
m_R_high = 10.0;
}
- plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_base_t &anetlist, const pstring &name, logic_output_t *proxied) const override;
- plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_base_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
+ plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_state_t &anetlist, const pstring &name, logic_output_t *proxied) const override;
+ plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_state_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
};
-plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_cd4xxx_t::create_d_a_proxy(netlist_base_t &anetlist, const pstring &name, logic_output_t *proxied) const
+plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_cd4xxx_t::create_d_a_proxy(netlist_state_t &anetlist, const pstring &name, logic_output_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
-plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_cd4xxx_t::create_a_d_proxy(netlist_base_t &anetlist, const pstring &name, logic_input_t *proxied) const
+plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_cd4xxx_t::create_a_d_proxy(netlist_state_t &anetlist, const pstring &name, logic_input_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
@@ -565,7 +565,7 @@ core_device_t *netlist_state_t::get_single_device(const pstring &classname, bool
// core_device_t
// ----------------------------------------------------------------------------------------
-core_device_t::core_device_t(netlist_base_t &owner, const pstring &name)
+core_device_t::core_device_t(netlist_state_t &owner, const pstring &name)
: object_t(name)
, logic_family_t()
, netlist_ref(owner)
@@ -604,7 +604,7 @@ log_type & core_device_t::log()
// device_t
// ----------------------------------------------------------------------------------------
-device_t::device_t(netlist_base_t &owner, const pstring &name)
+device_t::device_t(netlist_state_t &owner, const pstring &name)
: core_device_t(owner, name)
{
}
@@ -684,7 +684,7 @@ detail::family_setter_t::family_setter_t(core_device_t &dev, const logic_family_
// net_t
// ----------------------------------------------------------------------------------------
-detail::net_t::net_t(netlist_base_t &nl, const pstring &aname, core_terminal_t *mr)
+detail::net_t::net_t(netlist_state_t &nl, const pstring &aname, core_terminal_t *mr)
: object_t(aname)
, netlist_ref(nl)
, m_new_Q(*this, "m_new_Q", 0)
@@ -815,7 +815,7 @@ void detail::net_t::move_connections(detail::net_t &dest_net)
// logic_net_t
// ----------------------------------------------------------------------------------------
-logic_net_t::logic_net_t(netlist_base_t &nl, const pstring &aname, detail::core_terminal_t *mr)
+logic_net_t::logic_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *mr)
: net_t(nl, aname, mr)
{
}
@@ -824,7 +824,7 @@ logic_net_t::logic_net_t(netlist_base_t &nl, const pstring &aname, detail::core_
// analog_net_t
// ----------------------------------------------------------------------------------------
-analog_net_t::analog_net_t(netlist_base_t &nl, const pstring &aname, detail::core_terminal_t *mr)
+analog_net_t::analog_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *mr)
: net_t(nl, aname, mr)
, m_cur_Analog(*this, "m_cur_Analog", 0.0)
, m_solver(nullptr)
diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h
index b1dbd23d931..c2bf42999f3 100644
--- a/src/lib/netlist/nl_base.h
+++ b/src/lib/netlist/nl_base.h
@@ -172,7 +172,7 @@ namespace netlist
/*! Delegate type for device notification.
*
*/
- typedef plib::pmfp<void> nldelegate;
+ using nldelegate = plib::pmfp<void>;
// -----------------------------------------------------------------------------
// forward definitions
@@ -207,7 +207,6 @@ namespace netlist
class setup_t;
class netlist_t;
class netlist_state_t;
- typedef netlist_state_t netlist_base_t;
class core_device_t;
class device_t;
class callbacks_t;
@@ -242,9 +241,9 @@ namespace netlist
logic_family_desc_t();
virtual ~logic_family_desc_t() = default;
- virtual plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_base_t &anetlist, const pstring &name,
+ virtual plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_state_t &anetlist, const pstring &name,
logic_output_t *proxied) const = 0;
- virtual plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_base_t &anetlist, const pstring &name,
+ virtual plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_state_t &anetlist, const pstring &name,
logic_input_t *proxied) const = 0;
double fixed_V() const { return m_fixed_V; }
@@ -472,8 +471,8 @@ namespace netlist
/*! The netlist owning the owner of this object.
* \returns reference to netlist object.
*/
- netlist_base_t &state() NL_NOEXCEPT;
- const netlist_base_t &state() const NL_NOEXCEPT;
+ netlist_state_t &state() NL_NOEXCEPT;
+ const netlist_state_t &state() const NL_NOEXCEPT;
netlist_t &exec() NL_NOEXCEPT;
const netlist_t &exec() const NL_NOEXCEPT;
@@ -713,7 +712,7 @@ namespace netlist
DELIVERED
};
- net_t(netlist_base_t &nl, const pstring &aname, core_terminal_t *mr = nullptr);
+ net_t(netlist_state_t &nl, const pstring &aname, core_terminal_t *mr = nullptr);
virtual ~net_t();
void reset();
@@ -785,7 +784,7 @@ namespace netlist
{
public:
- logic_net_t(netlist_base_t &nl, const pstring &aname, detail::core_terminal_t *mr = nullptr);
+ logic_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *mr = nullptr);
netlist_sig_t Q() const noexcept { return m_cur_Q; }
void initial(const netlist_sig_t val) noexcept
@@ -840,7 +839,7 @@ namespace netlist
friend class detail::net_t;
- analog_net_t(netlist_base_t &nl, const pstring &aname, detail::core_terminal_t *mr = nullptr);
+ analog_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *mr = nullptr);
nl_double Q_Analog() const NL_NOEXCEPT { return m_cur_Analog; }
void set_Q_Analog(const nl_double v) NL_NOEXCEPT { m_cur_Analog = v; }
@@ -954,9 +953,9 @@ namespace netlist
};
/* FIXME: these should go as well */
- typedef param_num_t<bool> param_logic_t;
- typedef param_num_t<int> param_int_t;
- typedef param_num_t<double> param_double_t;
+ using param_logic_t = param_num_t<bool>;
+ using param_int_t = param_num_t<int>;
+ using param_double_t = param_num_t<double>;
// -----------------------------------------------------------------------------
// pointer parameter
@@ -1084,7 +1083,7 @@ namespace netlist
public detail::netlist_ref
{
public:
- core_device_t(netlist_base_t &owner, const pstring &name);
+ core_device_t(netlist_state_t &owner, const pstring &name);
core_device_t(core_device_t &owner, const pstring &name);
virtual ~core_device_t() = default;
@@ -1153,7 +1152,7 @@ namespace netlist
{
public:
- device_t(netlist_base_t &owner, const pstring &name);
+ device_t(netlist_state_t &owner, const pstring &name);
device_t(core_device_t &owner, const pstring &name);
~device_t() override = default;
@@ -1220,7 +1219,7 @@ namespace netlist
public plib::state_manager_t::callback_t
{
public:
- typedef pqentry_t<net_t *, netlist_time> entry_t;
+ using entry_t = pqentry_t<net_t *, netlist_time>;
explicit queue_t(netlist_state_t &nl);
protected:
@@ -1652,12 +1651,12 @@ namespace netlist
}
}
- inline netlist_base_t &detail::device_object_t::state() NL_NOEXCEPT
+ inline netlist_state_t &detail::device_object_t::state() NL_NOEXCEPT
{
return m_device.state();
}
- inline const netlist_base_t &detail::device_object_t::state() const NL_NOEXCEPT
+ inline const netlist_state_t &detail::device_object_t::state() const NL_NOEXCEPT
{
return m_device.state();
}
diff --git a/src/lib/netlist/nl_factory.cpp b/src/lib/netlist/nl_factory.cpp
index 26ee33853e0..d66b61d5154 100644
--- a/src/lib/netlist/nl_factory.cpp
+++ b/src/lib/netlist/nl_factory.cpp
@@ -20,7 +20,7 @@ namespace netlist { namespace factory
class NETLIB_NAME(wrapper) : public device_t
{
public:
- NETLIB_NAME(wrapper)(netlist_base_t &anetlist, const pstring &name)
+ NETLIB_NAME(wrapper)(netlist_state_t &anetlist, const pstring &name)
: device_t(anetlist, name)
{
}
@@ -81,12 +81,12 @@ namespace netlist { namespace factory
// factory_lib_entry_t: factory class to wrap macro based chips/elements
// -----------------------------------------------------------------------------
- plib::owned_ptr<device_t> library_element_t::Create(netlist_base_t &anetlist, const pstring &name)
+ plib::owned_ptr<device_t> library_element_t::Create(netlist_state_t &anetlist, const pstring &name)
{
return plib::owned_ptr<device_t>::Create<NETLIB_NAME(wrapper)>(anetlist, name);
}
- void library_element_t::macro_actions(netlist_base_t &anetlist, const pstring &name)
+ void library_element_t::macro_actions(netlist_state_t &anetlist, const pstring &name)
{
anetlist.setup().namespace_push(name);
anetlist.setup().include(this->name());
diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp
index 2268cb74753..2fad9ea4836 100644
--- a/src/lib/netlist/nl_setup.cpp
+++ b/src/lib/netlist/nl_setup.cpp
@@ -766,7 +766,7 @@ void setup_t::register_dynamic_log_devices()
{
log().debug("Creating dynamic logs ...");
std::vector<pstring> loglist(plib::psplit(env, ":"));
- for (pstring ll : loglist)
+ for (const pstring &ll : loglist)
{
pstring name = "log_" + ll;
auto nc = factory().factory_by_name("LOG")->Create(netlist(), name);
@@ -891,17 +891,17 @@ class logic_family_std_proxy_t : public logic_family_desc_t
{
public:
logic_family_std_proxy_t() = default;
- plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_base_t &anetlist,
+ plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_state_t &anetlist,
const pstring &name, logic_output_t *proxied) const override;
- plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_base_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
+ plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_state_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
};
-plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_std_proxy_t::create_d_a_proxy(netlist_base_t &anetlist,
+plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_std_proxy_t::create_d_a_proxy(netlist_state_t &anetlist,
const pstring &name, logic_output_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
-plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_std_proxy_t::create_a_d_proxy(netlist_base_t &anetlist, const pstring &name, logic_input_t *proxied) const
+plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_std_proxy_t::create_a_d_proxy(netlist_state_t &anetlist, const pstring &name, logic_input_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
diff --git a/src/lib/netlist/plib/gmres.h b/src/lib/netlist/plib/gmres.h
index 4ab77c6dce1..9be0dd99a96 100644
--- a/src/lib/netlist/plib/gmres.h
+++ b/src/lib/netlist/plib/gmres.h
@@ -23,7 +23,7 @@ namespace plib
template <typename FT, int SIZE>
struct mat_precondition_ILU
{
- typedef plib::matrix_compressed_rows_t<FT, SIZE> mat_type;
+ using mat_type = plib::matrix_compressed_rows_t<FT, SIZE>;
mat_precondition_ILU(std::size_t size, int ilu_scale = 4
, std::size_t bw = plib::matrix_compressed_rows_t<FT, SIZE>::FILL_INFINITY)
@@ -138,7 +138,7 @@ namespace plib
{
public:
- typedef FT float_type;
+ using float_type = FT;
// FIXME: dirty hack to make this compile
static constexpr const std::size_t storage_N = plib::sizeabs<FT, SIZE>::ABS();
diff --git a/src/lib/netlist/plib/mat_cr.h b/src/lib/netlist/plib/mat_cr.h
index 7bb81e3c8e4..ff08ce9413d 100644
--- a/src/lib/netlist/plib/mat_cr.h
+++ b/src/lib/netlist/plib/mat_cr.h
@@ -30,8 +30,8 @@ namespace plib
template<typename T, int N, typename C = uint16_t>
struct matrix_compressed_rows_t
{
- typedef C index_type;
- typedef T value_type;
+ using index_type = C;
+ using value_type = T;
enum constants_e
{
diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h
index 6fc9cc430b2..e3e15df5539 100644
--- a/src/lib/netlist/plib/parray.h
+++ b/src/lib/netlist/plib/parray.h
@@ -23,14 +23,14 @@ namespace plib {
struct sizeabs
{
static constexpr std::size_t ABS() { return (SIZE < 0) ? static_cast<std::size_t>(0 - SIZE) : static_cast<std::size_t>(SIZE); }
- typedef typename std::array<FT, ABS()> container;
+ using container = typename std::array<FT, ABS()> ;
};
template <typename FT>
struct sizeabs<FT, 0>
{
static constexpr const std::size_t ABS = 0;
- typedef typename std::vector<FT> container;
+ using container = typename std::vector<FT> ;
};
/**
@@ -55,10 +55,10 @@ namespace plib {
public:
static constexpr std::size_t SIZEABS() { return sizeabs<FT, SIZE>::ABS(); }
- typedef typename sizeabs<FT, SIZE>::container base_type;
- typedef typename base_type::size_type size_type;
- typedef typename base_type::reference reference;
- typedef typename base_type::const_reference const_reference;
+ using base_type = typename sizeabs<FT, SIZE>::container;
+ using size_type = typename base_type::size_type;
+ using reference = typename base_type::reference;
+ using const_reference = typename base_type::const_reference;
template <int X = SIZE >
parray(size_type size, typename std::enable_if<X==0, int>::type = 0)
diff --git a/src/lib/netlist/plib/pchrono.h b/src/lib/netlist/plib/pchrono.h
index 76f18bf4a83..e982dec535b 100644
--- a/src/lib/netlist/plib/pchrono.h
+++ b/src/lib/netlist/plib/pchrono.h
@@ -18,7 +18,7 @@ namespace chrono {
template <typename T>
struct sys_ticks
{
- typedef typename T::rep type;
+ using type = typename T::rep;
static inline type start() { return T::now().time_since_epoch().count(); }
static inline type stop() { return T::now().time_since_epoch().count(); }
static inline constexpr type per_second() { return T::period::den / T::period::num; }
@@ -145,7 +145,7 @@ namespace chrono {
struct counter
{
counter() : m_count(0) { }
- typedef uint_least64_t type;
+ using type = uint_least64_t;
type operator()() const { return m_count; }
void inc() { ++m_count; }
void reset() { m_count = 0; }
@@ -157,7 +157,7 @@ namespace chrono {
template<>
struct counter<false>
{
- typedef uint_least64_t type;
+ using type = uint_least64_t;
constexpr type operator()() const { return 0; }
void inc() const { }
void reset() const { }
@@ -168,8 +168,8 @@ namespace chrono {
template< typename T, bool enabled_ = true>
struct timer
{
- typedef typename T::type type;
- typedef uint_least64_t ctype;
+ using type = typename T::type;
+ using ctype = uint_least64_t;
constexpr static bool enabled = enabled_;
struct guard_t
@@ -206,8 +206,8 @@ namespace chrono {
template<typename T>
struct timer<T, false>
{
- typedef typename T::type type;
- typedef uint_least64_t ctype;
+ using type = typename T::type;
+ using ctype = uint_least64_t;
struct guard_t
{
diff --git a/src/lib/netlist/plib/pfunction.cpp b/src/lib/netlist/plib/pfunction.cpp
index fc8f7248470..c6a6287a8aa 100644
--- a/src/lib/netlist/plib/pfunction.cpp
+++ b/src/lib/netlist/plib/pfunction.cpp
@@ -187,7 +187,7 @@ case OP: \
double pfunction::evaluate(const std::vector<double> &values)
{
- double stack[20];
+ std::array<double, 20> stack = { 0 };
unsigned ptr = 0;
stack[0] = 0.0;
for (auto &rc : m_precompiled)
diff --git a/src/lib/netlist/plib/plists.h b/src/lib/netlist/plib/plists.h
index ee6a5497dd3..9cdca8813a0 100644
--- a/src/lib/netlist/plib/plists.h
+++ b/src/lib/netlist/plib/plists.h
@@ -29,8 +29,8 @@ class uninitialised_array_t
{
public:
- typedef C* iterator;
- typedef const C* const_iterator;
+ using iterator = C *;
+ using const_iterator = const C *;
uninitialised_array_t() = default;
diff --git a/src/lib/netlist/plib/pstate.h b/src/lib/netlist/plib/pstate.h
index 9fdd78a4263..2e6026f355a 100644
--- a/src/lib/netlist/plib/pstate.h
+++ b/src/lib/netlist/plib/pstate.h
@@ -47,17 +47,16 @@ public:
std::is_floating_point<T>::value);
}
- class callback_t
+ class callback_t : nocopyassignmove
{
public:
using list_t = std::vector<callback_t *>;
- virtual ~callback_t() = default;
-
virtual void register_state(state_manager_t &manager, const pstring &module) = 0;
virtual void on_pre_save(state_manager_t &manager) = 0;
virtual void on_post_load(state_manager_t &manager) = 0;
protected:
+ virtual ~callback_t() = default;
};
struct entry_t
diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h
index 3905c8a1525..2492d01d141 100644
--- a/src/lib/netlist/plib/pstream.h
+++ b/src/lib/netlist/plib/pstream.h
@@ -103,7 +103,7 @@ class pistream_base : public pstream
{
public:
- typedef T value_type;
+ using value_type = T;
bool eof() const { return ((flags() & FLAG_EOF) != 0); }
@@ -120,7 +120,7 @@ protected:
virtual size_type vread(T *buf, const size_type n) = 0;
};
-typedef pistream_base<char> pistream;
+using pistream = pistream_base<char>;
// -----------------------------------------------------------------------------
// postream: output stream
@@ -132,7 +132,7 @@ class postream_base : public pstream
{
public:
- typedef T value_type;
+ using value_type = T;
void write(const T *buf, const size_type n)
{
@@ -148,7 +148,7 @@ protected:
private:
};
-typedef postream_base<char> postream;
+using postream = postream_base<char>;
// -----------------------------------------------------------------------------
// pomemstream: output string stream
diff --git a/src/lib/netlist/plib/pstring.h b/src/lib/netlist/plib/pstring.h
index a4c4936cffc..6625ddb11f9 100644
--- a/src/lib/netlist/plib/pstring.h
+++ b/src/lib/netlist/plib/pstring.h
@@ -66,12 +66,12 @@ struct pstring_t
public:
using traits_type = F;
- typedef typename traits_type::mem_t mem_t;
- typedef typename traits_type::code_t code_t;
- typedef typename traits_type::code_t value_type;
- typedef std::size_t size_type;
- typedef std::ptrdiff_t difference_type;
- typedef typename traits_type::string_type string_type;
+ using mem_t = typename traits_type::mem_t;
+ using code_t = typename traits_type::code_t;
+ using value_type = typename traits_type::code_t;
+ using size_type = std::size_t;
+ using difference_type = std::ptrdiff_t;
+ using string_type = typename traits_type::string_type;
// FIXME: this is ugly
class ref_value_type final
@@ -87,8 +87,8 @@ public:
private:
const mem_t m;
};
- typedef const ref_value_type& const_reference;
- typedef const_reference reference;
+ using const_reference = const ref_value_type &;
+ using reference = const_reference;
// simple construction/destruction
pstring_t() = default;
@@ -153,8 +153,8 @@ public:
}
// no non-const const_iterator for now
- typedef pstring_const_iterator<pstring_t> iterator;
- typedef pstring_const_iterator<pstring_t> const_iterator;
+ using iterator = pstring_const_iterator<pstring_t<F> >;
+ using const_iterator = pstring_const_iterator<pstring_t<F> >;
iterator begin() { return iterator(m_str.begin()); }
iterator end() { return iterator(m_str.end()); }
@@ -215,9 +215,9 @@ private:
struct pu8_traits
{
- typedef char mem_t;
- typedef char code_t;
- typedef std::string string_type;
+ using mem_t = char;
+ using code_t = char;
+ using string_type = std::string;
static std::size_t len(const string_type &p) { return p.size(); }
static std::size_t codelen(const mem_t *p) { plib::unused_var(p); return 1; }
static std::size_t codelen(const code_t c) { plib::unused_var(c); return 1; }
@@ -229,9 +229,9 @@ struct pu8_traits
/* No checking, this may deliver invalid codes */
struct putf8_traits
{
- typedef char mem_t;
- typedef char32_t code_t;
- typedef std::string string_type;
+ using mem_t = char;
+ using code_t = char32_t;
+ using string_type = std::string;
static std::size_t len(const string_type &p)
{
std::size_t ret = 0;
@@ -320,9 +320,9 @@ struct putf8_traits
struct putf16_traits
{
- typedef char16_t mem_t;
- typedef char32_t code_t;
- typedef std::u16string string_type;
+ using mem_t = char16_t;
+ using code_t = char32_t;
+ using string_type = std::u16string;
static std::size_t len(const string_type &p)
{
std::size_t ret = 0;
@@ -384,9 +384,9 @@ struct putf16_traits
struct pwchar_traits
{
- typedef wchar_t mem_t;
- typedef char32_t code_t;
- typedef std::wstring string_type;
+ using mem_t = wchar_t;
+ using code_t = char32_t;
+ using string_type = std::wstring;
static std::size_t len(const string_type &p)
{
if (sizeof(wchar_t) == 2)
@@ -481,24 +481,24 @@ extern template struct pstring_t<pwchar_traits>;
#if (PSTRING_USE_STD_STRING)
typedef std::string pstring;
#else
-typedef pstring_t<putf8_traits> pstring;
+using pstring = pstring_t<putf8_traits>;
#endif
-typedef pstring_t<putf8_traits> putf8string;
-typedef pstring_t<putf16_traits> pu16string;
-typedef pstring_t<pwchar_traits> pwstring;
+using putf8string = pstring_t<putf8_traits>;
+using pu16string = pstring_t<putf16_traits>;
+using pwstring = pstring_t<pwchar_traits>;
namespace plib
{
template<class T>
struct string_info
{
- typedef typename T::mem_t mem_t;
+ using mem_t = typename T::mem_t;
};
template<>
struct string_info<std::string>
{
- typedef char mem_t;
+ using mem_t = char;
};
template<typename T>
@@ -554,7 +554,7 @@ namespace plib
decltype(arg.c_str()) cstr = arg.c_str();
std::size_t idx(0);
auto ret = pstonum_helper<T>()(cstr, &idx);
- typedef decltype(ret) ret_type;
+ using ret_type = decltype(ret);
if (ret >= static_cast<ret_type>(std::numeric_limits<T>::lowest())
&& ret <= static_cast<ret_type>(std::numeric_limits<T>::max()))
//&& (ret == T(0) || std::abs(ret) >= std::numeric_limits<T>::min() ))
@@ -741,8 +741,8 @@ namespace std
template<typename T> struct hash<pstring_t<T>>
{
- typedef pstring_t<T> argument_type;
- typedef std::size_t result_type;
+ using argument_type = pstring_t<T>;
+ using result_type = std::size_t;
result_type operator()(argument_type const& s) const
{
const typename argument_type::mem_t *string = s.c_str();
diff --git a/src/lib/netlist/plib/putil.cpp b/src/lib/netlist/plib/putil.cpp
index 03f730f6ba2..b62cbf60865 100644
--- a/src/lib/netlist/plib/putil.cpp
+++ b/src/lib/netlist/plib/putil.cpp
@@ -163,29 +163,6 @@ namespace plib
}
std::string penum_base::nthstr(int n, const char *str)
{
- char buf[64];
- char *bufp = buf;
- int cur = 0;
- while (*str)
- {
- if (cur == n)
- {
- if (*str == ',')
- {
- *bufp = 0;
- return pstring(buf);
- }
- else if (*str != ' ')
- *bufp++ = *str;
- }
- else
- {
- if (*str == ',')
- cur++;
- }
- str++;
- }
- *bufp = 0;
- return std::string(buf);
+ return psplit(str, ",", false)[static_cast<std::size_t>(n)];
}
} // namespace plib
diff --git a/src/lib/netlist/prg/nlwav.cpp b/src/lib/netlist/prg/nlwav.cpp
index 29c6d62d9c5..d48294b6aa9 100644
--- a/src/lib/netlist/prg/nlwav.cpp
+++ b/src/lib/netlist/prg/nlwav.cpp
@@ -125,7 +125,7 @@ private:
class log_processor
{
public:
- typedef plib::pmfp<void, std::size_t, double, double> callback_type;
+ using callback_type = plib::pmfp<void, std::size_t, double, double>;
struct elem
{
@@ -202,7 +202,7 @@ private:
struct aggregator
{
- typedef plib::pmfp<void, std::size_t, double, double> callback_type;
+ using callback_type = plib::pmfp<void, std::size_t, double, double>;
aggregator(std::size_t channels, double quantum, callback_type cb)
: m_channels(channels)
diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp
index f318338b8bf..8039ac84e2a 100644
--- a/src/lib/netlist/solver/nld_matrix_solver.cpp
+++ b/src/lib/netlist/solver/nld_matrix_solver.cpp
@@ -70,7 +70,7 @@ void terms_for_net_t::set_pointers()
// matrix_solver
// ----------------------------------------------------------------------------------------
-matrix_solver_t::matrix_solver_t(netlist_base_t &anetlist, const pstring &name,
+matrix_solver_t::matrix_solver_t(netlist_state_t &anetlist, const pstring &name,
const eSortType sort, const solver_parameters_t *params)
: device_t(anetlist, name)
, m_params(*params)
@@ -374,8 +374,8 @@ void matrix_solver_t::setup_matrix()
for (std::size_t k = 0; k < iN; k++)
{
pstring line = plib::pfmt("{1:3}")(k);
- for (std::size_t j = 0; j < m_terms[k]->m_nzrd.size(); j++)
- line += plib::pfmt(" {1:3}")(m_terms[k]->m_nzrd[j]);
+ for (const auto & nzrd : m_terms[k]->m_nzrd)
+ line += plib::pfmt(" {1:3}")(nzrd);
log().verbose("{1}", line);
}
diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h
index f28f855fa3b..a57ea029140 100644
--- a/src/lib/netlist/solver/nld_matrix_solver.h
+++ b/src/lib/netlist/solver/nld_matrix_solver.h
@@ -181,7 +181,7 @@ public:
protected:
- matrix_solver_t(netlist_base_t &anetlist, const pstring &name,
+ matrix_solver_t(netlist_state_t &anetlist, const pstring &name,
eSortType sort, const solver_parameters_t *params);
void sort_terms(eSortType sort);
@@ -264,7 +264,7 @@ void matrix_solver_t::store(const T & V)
template <typename T>
void matrix_solver_t::build_LE_A(T &child)
{
- typedef typename T::float_type float_type;
+ using float_type = typename T::float_type;
static_assert(std::is_base_of<matrix_solver_t, T>::value, "T must derive from matrix_solver_t");
const std::size_t iN = child.size();
@@ -300,7 +300,7 @@ template <typename T>
void matrix_solver_t::build_LE_RHS(T &child)
{
static_assert(std::is_base_of<matrix_solver_t, T>::value, "T must derive from matrix_solver_t");
- typedef typename T::float_type float_type;
+ using float_type = typename T::float_type;
const std::size_t iN = child.size();
for (std::size_t k = 0; k < iN; k++)
diff --git a/src/lib/netlist/solver/nld_ms_direct.h b/src/lib/netlist/solver/nld_ms_direct.h
index 4faeaee8597..fe4a4e6aada 100644
--- a/src/lib/netlist/solver/nld_ms_direct.h
+++ b/src/lib/netlist/solver/nld_ms_direct.h
@@ -27,10 +27,10 @@ class matrix_solver_direct_t: public matrix_solver_t
friend class matrix_solver_t;
public:
- typedef FT float_type;
+ using float_type = FT;
- matrix_solver_direct_t(netlist_base_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size);
- matrix_solver_direct_t(netlist_base_t &anetlist, const pstring &name, const eSortType sort, const solver_parameters_t *params, const std::size_t size);
+ matrix_solver_direct_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size);
+ matrix_solver_direct_t(netlist_state_t &anetlist, const pstring &name, const eSortType sort, const solver_parameters_t *params, const std::size_t size);
~matrix_solver_direct_t() override = default;
@@ -212,7 +212,7 @@ unsigned matrix_solver_direct_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_
}
template <typename FT, int SIZE>
-matrix_solver_direct_t<FT, SIZE>::matrix_solver_direct_t(netlist_base_t &anetlist, const pstring &name,
+matrix_solver_direct_t<FT, SIZE>::matrix_solver_direct_t(netlist_state_t &anetlist, const pstring &name,
const solver_parameters_t *params, const std::size_t size)
: matrix_solver_t(anetlist, name, ASCENDING, params)
, m_new_V(size)
@@ -223,7 +223,7 @@ matrix_solver_direct_t<FT, SIZE>::matrix_solver_direct_t(netlist_base_t &anetlis
}
template <typename FT, int SIZE>
-matrix_solver_direct_t<FT, SIZE>::matrix_solver_direct_t(netlist_base_t &anetlist, const pstring &name,
+matrix_solver_direct_t<FT, SIZE>::matrix_solver_direct_t(netlist_state_t &anetlist, const pstring &name,
const eSortType sort, const solver_parameters_t *params, const std::size_t size)
: matrix_solver_t(anetlist, name, sort, params)
, m_new_V(size)
diff --git a/src/lib/netlist/solver/nld_ms_direct1.h b/src/lib/netlist/solver/nld_ms_direct1.h
index 6a7ba9540da..fbbb8ecb098 100644
--- a/src/lib/netlist/solver/nld_ms_direct1.h
+++ b/src/lib/netlist/solver/nld_ms_direct1.h
@@ -20,10 +20,10 @@ namespace devices
{
public:
- typedef FT float_type;
- typedef matrix_solver_direct_t<FT, 1> base_type;
+ using float_type = FT;
+ using base_type = matrix_solver_direct_t<FT, 1>;
- matrix_solver_direct1_t(netlist_base_t &anetlist, const pstring &name, const solver_parameters_t *params)
+ matrix_solver_direct1_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params)
: matrix_solver_direct_t<FT, 1>(anetlist, name, params, 1)
{}
@@ -36,7 +36,7 @@ namespace devices
this->build_LE_RHS(*this);
//NL_VERBOSE_OUT(("{1} {2}\n", new_val, m_RHS[0] / m_A[0][0]);
- FT new_V[1] = { this->RHS(0) / this->A(0,0) };
+ std::array<FT, 1> new_V = { this->RHS(0) / this->A(0,0) };
const FT err = (newton_raphson ? this->delta(new_V) : 0.0);
this->store(new_V);
diff --git a/src/lib/netlist/solver/nld_ms_direct2.h b/src/lib/netlist/solver/nld_ms_direct2.h
index 563292c235f..a4ff7e75546 100644
--- a/src/lib/netlist/solver/nld_ms_direct2.h
+++ b/src/lib/netlist/solver/nld_ms_direct2.h
@@ -21,9 +21,9 @@ namespace devices
{
public:
- typedef FT float_type;
+ using float_type = FT;
- matrix_solver_direct2_t(netlist_base_t &anetlist, const pstring &name, const solver_parameters_t *params)
+ matrix_solver_direct2_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params)
: matrix_solver_direct_t<double, 2>(anetlist, name, params, 2)
{}
unsigned vsolve_non_dynamic(const bool newton_raphson) override;
@@ -45,9 +45,9 @@ namespace devices
const float_type c = this->A(1,0);
const float_type d = this->A(1,1);
- float_type new_V[2];
- new_V[1] = (a * this->RHS(1) - c * this->RHS(0)) / (a * d - b * c);
- new_V[0] = (this->RHS(0) - b * new_V[1]) / a;
+ const float_type v1 = (a * this->RHS(1) - c * this->RHS(0)) / (a * d - b * c);
+ const float_type v0 = (this->RHS(0) - b * v1) / a;
+ std::array<float_type, 2> new_V = {v0, v1};
const float_type err = (newton_raphson ? this->delta(new_V) : 0.0);
this->store(new_V);
diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h
index b392a6f30da..8c9d40e9618 100644
--- a/src/lib/netlist/solver/nld_ms_gcr.h
+++ b/src/lib/netlist/solver/nld_ms_gcr.h
@@ -29,11 +29,11 @@ class matrix_solver_GCR_t: public matrix_solver_t
{
public:
- typedef plib::matrix_compressed_rows_t<FT, SIZE> mat_type;
+ using mat_type = plib::matrix_compressed_rows_t<FT, SIZE>;
// FIXME: dirty hack to make this compile
static constexpr const std::size_t storage_N = 100;
- matrix_solver_GCR_t(netlist_base_t &anetlist, const pstring &name,
+ matrix_solver_GCR_t(netlist_state_t &anetlist, const pstring &name,
const solver_parameters_t *params, const std::size_t size)
: matrix_solver_t(anetlist, name, matrix_solver_t::PREFER_IDENTITY_TOP_LEFT, params)
, m_dim(size)
@@ -68,7 +68,7 @@ private:
plib::parray<FT, SIZE> RHS;
plib::parray<FT, SIZE> new_V;
- std::vector<FT *> m_term_cr[storage_N];
+ std::array<std::vector<FT *>, storage_N> m_term_cr;
mat_type mat;
diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h
index 2ffc98756cf..28087b6b0a5 100644
--- a/src/lib/netlist/solver/nld_ms_gmres.h
+++ b/src/lib/netlist/solver/nld_ms_gmres.h
@@ -29,13 +29,13 @@ namespace devices
{
public:
- typedef FT float_type;
+ using float_type = FT;
/* Sort rows in ascending order. This should minimize fill-in and thus
* maximize the efficiency of the incomplete LUT.
* This is already preconditioning.
*/
- matrix_solver_GMRES_t(netlist_base_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size)
+ matrix_solver_GMRES_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size)
: matrix_solver_direct_t<FT, SIZE>(anetlist, name, matrix_solver_t::PREFER_BAND_MATRIX, params, size)
, m_term_cr(size)
//, m_ops(size, 2)
@@ -51,7 +51,7 @@ namespace devices
private:
- typedef typename plib::matrix_compressed_rows_t<FT, SIZE>::index_type mattype;
+ using mattype = typename plib::matrix_compressed_rows_t<FT, SIZE>::index_type;
plib::parray<std::vector<FT *>, SIZE> m_term_cr;
plib::mat_precondition_ILU<FT, SIZE> m_ops;
@@ -76,9 +76,9 @@ namespace devices
{
fill[k].resize(iN, decltype(m_ops.m_mat)::FILL_INFINITY);
terms_for_net_t * row = this->m_terms[k].get();
- for (std::size_t j=0; j < row->m_nz.size(); j++)
+ for (const auto &nz_j : row->m_nz)
{
- fill[k][static_cast<mattype>(row->m_nz[j])] = 0;
+ fill[k][static_cast<mattype>(nz_j)] = 0;
}
}
diff --git a/src/lib/netlist/solver/nld_ms_sm.h b/src/lib/netlist/solver/nld_ms_sm.h
index 59409ab8269..52546210cad 100644
--- a/src/lib/netlist/solver/nld_ms_sm.h
+++ b/src/lib/netlist/solver/nld_ms_sm.h
@@ -51,12 +51,12 @@ class matrix_solver_sm_t: public matrix_solver_t
public:
- typedef FT float_ext_type;
- typedef FT float_type;
+ using float_ext_type = FT;
+ using float_type = FT;
// FIXME: dirty hack to make this compile
static constexpr const std::size_t storage_N = 100;
- matrix_solver_sm_t(netlist_base_t &anetlist, const pstring &name,
+ matrix_solver_sm_t(netlist_state_t &anetlist, const pstring &name,
const solver_parameters_t *params, const std::size_t size);
~matrix_solver_sm_t() override = default;
@@ -298,7 +298,7 @@ unsigned matrix_solver_sm_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_raph
}
template <typename FT, int SIZE>
-matrix_solver_sm_t<FT, SIZE>::matrix_solver_sm_t(netlist_base_t &anetlist, const pstring &name,
+matrix_solver_sm_t<FT, SIZE>::matrix_solver_sm_t(netlist_state_t &anetlist, const pstring &name,
const solver_parameters_t *params, const std::size_t size)
: matrix_solver_t(anetlist, name, NOSORT, params)
, m_dim(size)
diff --git a/src/lib/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h
index 41db7d3e6eb..dd2372dd48f 100644
--- a/src/lib/netlist/solver/nld_ms_sor.h
+++ b/src/lib/netlist/solver/nld_ms_sor.h
@@ -27,9 +27,9 @@ class matrix_solver_SOR_t: public matrix_solver_direct_t<FT, SIZE>
{
public:
- typedef FT float_type;
+ using float_type = FT;
- matrix_solver_SOR_t(netlist_base_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size)
+ matrix_solver_SOR_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size)
: matrix_solver_direct_t<FT, SIZE>(anetlist, name, matrix_solver_t::ASCENDING, params, size)
, m_lp_fact(*this, "m_lp_fact", 0)
, w(size, 0.0)
diff --git a/src/lib/netlist/solver/nld_ms_sor_mat.h b/src/lib/netlist/solver/nld_ms_sor_mat.h
index 31db10c506f..38ce84dfb93 100644
--- a/src/lib/netlist/solver/nld_ms_sor_mat.h
+++ b/src/lib/netlist/solver/nld_ms_sor_mat.h
@@ -30,9 +30,9 @@ class matrix_solver_SOR_mat_t: public matrix_solver_direct_t<FT, SIZE>
public:
- typedef FT float_type;
+ using float_type = FT;
- matrix_solver_SOR_mat_t(netlist_base_t &anetlist, const pstring &name, const solver_parameters_t *params, std::size_t size)
+ matrix_solver_SOR_mat_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params, std::size_t size)
: matrix_solver_direct_t<FT, SIZE>(anetlist, name, matrix_solver_t::ASCENDING, params, size)
, m_Vdelta(*this, "m_Vdelta", std::vector<float_type>(size))
, m_omega(*this, "m_omega", params->m_gs_sor)
diff --git a/src/lib/netlist/solver/nld_ms_w.h b/src/lib/netlist/solver/nld_ms_w.h
index 7be3a81c365..cdfcaf3000f 100644
--- a/src/lib/netlist/solver/nld_ms_w.h
+++ b/src/lib/netlist/solver/nld_ms_w.h
@@ -57,13 +57,13 @@ class matrix_solver_w_t: public matrix_solver_t
friend class matrix_solver_t;
public:
- typedef FT float_ext_type;
- typedef FT float_type;
+ using float_ext_type = FT;
+ using float_type = FT;
// FIXME: dirty hack to make this compile
static constexpr const std::size_t storage_N = 100;
- matrix_solver_w_t(netlist_base_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size);
+ matrix_solver_w_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size);
~matrix_solver_w_t() override = default;
@@ -367,7 +367,7 @@ unsigned matrix_solver_w_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_raphs
}
template <typename FT, int SIZE>
-matrix_solver_w_t<FT, SIZE>::matrix_solver_w_t(netlist_base_t &anetlist, const pstring &name,
+matrix_solver_w_t<FT, SIZE>::matrix_solver_w_t(netlist_state_t &anetlist, const pstring &name,
const solver_parameters_t *params, const std::size_t size)
: matrix_solver_t(anetlist, name, NOSORT, params)
, m_cnt(0)
diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp
index 6b2f3f675b6..45643d88ea5 100644
--- a/src/lib/netlist/solver/nld_solver.cpp
+++ b/src/lib/netlist/solver/nld_solver.cpp
@@ -129,7 +129,7 @@ NETLIB_UPDATE(solver)
}
template <class C>
-matrix_solver_t * create_it(netlist_base_t &nl, pstring name, solver_parameters_t &params, std::size_t size)
+matrix_solver_t * create_it(netlist_state_t &nl, pstring name, solver_parameters_t &params, std::size_t size)
{
return plib::palloc<C>(nl, name, &params, size);
}
@@ -214,7 +214,7 @@ struct net_splitter
}
}
- void run(netlist_base_t &netlist)
+ void run(netlist_state_t &netlist)
{
for (auto & net : netlist.nets())
{
diff --git a/src/lib/netlist/tools/nl_convert.cpp b/src/lib/netlist/tools/nl_convert.cpp
index da2fd681572..fccab6e6df2 100644
--- a/src/lib/netlist/tools/nl_convert.cpp
+++ b/src/lib/netlist/tools/nl_convert.cpp
@@ -129,11 +129,11 @@ void nl_convert_base_t::add_term(pstring netname, pstring termname)
void nl_convert_base_t::dump_nl()
{
- for (std::size_t i=0; i<m_ext_alias.size(); i++)
+ for (auto & alias : m_ext_alias)
{
- net_t *net = m_nets[m_ext_alias[i]].get();
+ net_t *net = m_nets[alias].get();
// use the first terminal ...
- out("ALIAS({}, {})\n", m_ext_alias[i].c_str(), net->terminals()[0].c_str());
+ out("ALIAS({}, {})\n", alias.c_str(), net->terminals()[0].c_str());
// if the aliased net only has this one terminal connected ==> don't dump
if (net->terminals().size() == 1)
net->set_no_export();