diff options
Diffstat (limited to 'src/lib/netlist/solver/nld_ms_w.h')
-rw-r--r-- | src/lib/netlist/solver/nld_ms_w.h | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/src/lib/netlist/solver/nld_ms_w.h b/src/lib/netlist/solver/nld_ms_w.h index d6969d4fd8c..33e15db1a49 100644 --- a/src/lib/netlist/solver/nld_ms_w.h +++ b/src/lib/netlist/solver/nld_ms_w.h @@ -63,9 +63,18 @@ public: // FIXME: dirty hack to make this compile static constexpr const std::size_t storage_N = 100; - 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(netlist_state_t &anetlist, const pstring &name, + const analog_net_t::list_t &nets, + const solver_parameters_t *params, const std::size_t size) + : matrix_solver_t(anetlist, name, nets, params) + , m_cnt(0) + , m_dim(size) + { + // FIXME: This shouldn't be necessary, recalculate on each entry ... + for (std::size_t k = 0; k < this->size(); k++) + state().save(*this, RHS(k), this->name(), plib::pfmt("RHS.{1}")(k)); + } - void vsetup(analog_net_t::list_t &nets) override; void reset() override { matrix_solver_t::reset(); } protected: @@ -126,18 +135,6 @@ private: // ---------------------------------------------------------------------------------------- template <typename FT, int SIZE> -void matrix_solver_w_t<FT, SIZE>::vsetup(analog_net_t::list_t &nets) -{ - matrix_solver_t::setup_base(nets); - - // FIXME: This shouldn't be necessary, recalculate on each entry ... - for (std::size_t k = 0; k < size(); k++) - state().save(*this, RHS(k), this->name(), plib::pfmt("RHS.{1}")(k)); -} - - - -template <typename FT, int SIZE> void matrix_solver_w_t<FT, SIZE>::LE_invert() { const std::size_t kN = size(); @@ -369,15 +366,6 @@ unsigned matrix_solver_w_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_raphs return this->solve_non_dynamic(newton_raphson); } -template <typename FT, int SIZE> -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, params) - , m_cnt(0) - , m_dim(size) -{ -} - } //namespace devices } // namespace netlist |