diff options
author | couriersud <couriersud@gmx.org> | 2020-05-14 11:58:42 +0200 |
---|---|---|
committer | couriersud <couriersud@gmx.org> | 2020-05-15 13:09:22 +0200 |
commit | 88edd7c665358de5c23d42637e4c17f878c1e275 (patch) | |
tree | 836d3f2d3c71850019522f98341948e8de43e7f5 /src/lib/netlist/solver | |
parent | d01c23cdc8f0291d7f65ca9f55c927d80836b313 (diff) |
netlist: code cleanup and development stage tristate [Couriersud]
Code cleanup to better separate the following stages:
- parsing
- setup
- run
In addition preliminary native tristate support was added. Not yet
production ready, please don't use it.
Diffstat (limited to 'src/lib/netlist/solver')
-rw-r--r-- | src/lib/netlist/solver/nld_matrix_solver.cpp | 8 | ||||
-rw-r--r-- | src/lib/netlist/solver/nld_matrix_solver.h | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp index 291f56100a8..11c8a60df60 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.cpp +++ b/src/lib/netlist/solver/nld_matrix_solver.cpp @@ -56,7 +56,7 @@ namespace solver log().fatal(MF_ERROR_CONNECTING_1_TO_2(m_fb_sync.name(), m_Q_sync.name())); throw nl_exception(MF_ERROR_CONNECTING_1_TO_2(m_fb_sync.name(), m_Q_sync.name())); } - setup_base(nets); + setup_base(anetlist.setup(), nets); // now setup the matrix setup_matrix(); @@ -67,7 +67,7 @@ namespace solver return &state().setup().get_connected_terminal(*term)->net(); } - void matrix_solver_t::setup_base(const analog_net_t::list_t &nets) + void matrix_solver_t::setup_base(setup_t &setup, const analog_net_t::list_t &nets) { log().debug("New solver setup\n"); std::vector<core_device_t *> step_devices; @@ -125,7 +125,7 @@ namespace solver net_proxy_output = net_proxy_output_u.get(); m_inps.emplace_back(std::move(net_proxy_output_u)); } - net_proxy_output->net().add_terminal(*p); + setup.add_terminal(net_proxy_output->net(), *p); // FIXME: repeated calling - kind of brute force net_proxy_output->net().rebuild_list(); log().debug("Added input {1}", net_proxy_output->name()); @@ -581,7 +581,7 @@ namespace solver { log().verbose("=============================================="); log().verbose("Solver {1}", this->name()); - log().verbose(" ==> {1} nets", this->m_terms.size()); //, (*(*groups[i].first())->m_core_terms.first())->name()); + log().verbose(" ==> {1} nets", this->m_terms.size()); log().verbose(" has {1} dynamic elements", this->dynamic_device_count()); log().verbose(" has {1} timestep elements", this->timestep_device_count()); log().verbose(" {1:6.3} average newton raphson loops", diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index 4d9dcbbd9af..ffecbfbe72c 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -304,7 +304,7 @@ namespace solver std::size_t m_ops; // base setup - called from constructor - void setup_base(const analog_net_t::list_t &nets) noexcept(false); + void setup_base(setup_t &setup, const analog_net_t::list_t &nets) noexcept(false); void sort_terms(matrix_sort_type_e sort); |