From e26e327ef9abb1d93d9116e6a6de151ddd45adc1 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sun, 8 Jan 2017 15:02:35 +0100 Subject: [PATCH] Rename misleading solver parameters. (nw) --- nl_examples/cdelay.c | 2 +- nl_examples/congo_bongo.c | 4 +-- nl_examples/kidniki.c | 14 +++++------ nl_examples/rl.c | 2 +- src/lib/netlist/solver/nld_matrix_solver.cpp | 2 +- src/lib/netlist/solver/nld_matrix_solver.h | 2 +- src/lib/netlist/solver/nld_solver.cpp | 26 ++++++++++---------- src/lib/netlist/solver/nld_solver.h | 25 +++++++++---------- src/mame/audio/nl_kidniki.cpp | 10 ++++---- src/mame/machine/nl_breakout.cpp | 4 +-- 10 files changed, 45 insertions(+), 46 deletions(-) diff --git a/nl_examples/cdelay.c b/nl_examples/cdelay.c index d6d3f61447..5f4f8d0444 100644 --- a/nl_examples/cdelay.c +++ b/nl_examples/cdelay.c @@ -37,7 +37,7 @@ NETLIST_START(cap_delay) SOLVER(Solver, P_FREQ) PARAM(Solver.ACCURACY, 1e-20) PARAM(Solver.DYNAMIC_TS, P_DTS) - PARAM(Solver.MIN_TIMESTEP, 1e-6) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-6) CLOCK(clk, 5000) TTL_7400_NAND(n1,clk,clk) diff --git a/nl_examples/congo_bongo.c b/nl_examples/congo_bongo.c index 90cc884d0d..030c4c48aa 100644 --- a/nl_examples/congo_bongo.c +++ b/nl_examples/congo_bongo.c @@ -46,7 +46,7 @@ NETLIST_START(dummy) PARAM(Solver.NR_LOOPS, 9000) PARAM(Solver.SOR_FACTOR, 0.001) PARAM(Solver.GS_LOOPS, 1) - PARAM(Solver.ITERATIVE, "MAT_CR") + PARAM(Solver.METHOD, "MAT_CR") #if USE_OPTMIZATIONS SOLVER(Solver, 24000) @@ -55,7 +55,7 @@ NETLIST_START(dummy) SOLVER(Solver, 24000) PARAM(Solver.DYNAMIC_TS, 1) PARAM(Solver.DYNAMIC_LTE, 1e-4) - PARAM(Solver.MIN_TIMESTEP, 5e-7) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 5e-7) PARAM(Solver.PARALLEL, 0) PARAM(Solver.PIVOT, 0) #endif diff --git a/nl_examples/kidniki.c b/nl_examples/kidniki.c index edcae2d58e..edbcf5ce20 100644 --- a/nl_examples/kidniki.c +++ b/nl_examples/kidniki.c @@ -13,14 +13,14 @@ NETLIST_START(dummy) PARAM(Solver.ACCURACY, 1e-8) PARAM(Solver.NR_LOOPS, 300) PARAM(Solver.GS_LOOPS, 1) - //PARAM(Solver.ITERATIVE, "W") - PARAM(Solver.ITERATIVE, "MAT_CR") - //PARAM(Solver.ITERATIVE, "MAT") - //PARAM(Solver.ITERATIVE, "GMRES") - //PARAM(Solver.ITERATIVE, "SOR") + //PARAM(Solver.METHOD, "W") + PARAM(Solver.METHOD, "MAT_CR") + //PARAM(Solver.METHOD, "MAT") + //PARAM(Solver.METHOD, "GMRES") + //PARAM(Solver.METHOD, "SOR") PARAM(Solver.DYNAMIC_TS, 0) PARAM(Solver.DYNAMIC_LTE, 5e-3) - PARAM(Solver.MIN_TIMESTEP, 10e-6) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 10e-6) PARAM(Solver.PARALLEL, 0) PARAM(Solver.SOR_FACTOR, 1.00) PARAM(Solver.PIVOT, 0) @@ -29,7 +29,7 @@ NETLIST_START(dummy) PARAM(Solver.ACCURACY, 1e-8) PARAM(Solver.NR_LOOPS, 300) PARAM(Solver.GS_LOOPS, 20) - PARAM(Solver.ITERATIVE, "GMRES") + PARAM(Solver.METHOD, "GMRES") PARAM(Solver.PARALLEL, 0) #endif //FIXME proper models! diff --git a/nl_examples/rl.c b/nl_examples/rl.c index 3b5056b259..2848348c44 100644 --- a/nl_examples/rl.c +++ b/nl_examples/rl.c @@ -17,7 +17,7 @@ NETLIST_START(lr) SOLVER(Solver, 48000) PARAM(Solver.ACCURACY, 1e-6) CLOCK(clk, 50) - PARAM(Solver.ITERATIVE, "MAT_CR") + PARAM(Solver.METHOD, "MAT_CR") IND(L1, 10) RES(R1, 10000) diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp index 45ab1dfc7b..89d1d1eb22 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.cpp +++ b/src/lib/netlist/solver/nld_matrix_solver.cpp @@ -425,7 +425,7 @@ void matrix_solver_t::solve_base() { log().warning("NEWTON_LOOPS exceeded on net {1}... reschedule", this->name()); m_Q_sync.net().toggle_new_Q(); - m_Q_sync.net().reschedule_in_queue(m_params.m_nt_sync_delay); + m_Q_sync.net().reschedule_in_queue(m_params.m_nr_recalc_delay); } } else diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index 976ba63148..0a88977b23 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -31,7 +31,7 @@ namespace netlist bool m_dynamic; unsigned m_gs_loops; unsigned m_nr_loops; - netlist_time m_nt_sync_delay; + netlist_time m_nr_recalc_delay; bool m_log_stats; }; diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index f8abf9faea..6b8045c5d3 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -147,47 +147,47 @@ std::unique_ptr NETLIB_NAME(solver)::create_solver(unsigned siz return plib::make_unique(netlist(), solvername, &m_params); else { - if (pstring("SOR_MAT").equals(m_iterative_solver())) + if (pstring("SOR_MAT").equals(m_method())) { return create_it>(netlist(), solvername, m_params, size); //typedef matrix_solver_SOR_mat_t solver_sor_mat; //return plib::make_unique(netlist(), solvername, &m_params, size); } - else if (pstring("MAT_CR").equals(m_iterative_solver())) + else if (pstring("MAT_CR").equals(m_method())) { typedef matrix_solver_GCR_t solver_mat; return plib::make_unique(netlist(), solvername, &m_params, size); } - else if (pstring("MAT").equals(m_iterative_solver())) + else if (pstring("MAT").equals(m_method())) { typedef matrix_solver_direct_t solver_mat; return plib::make_unique(netlist(), solvername, &m_params, size); } - else if (pstring("SM").equals(m_iterative_solver())) + else if (pstring("SM").equals(m_method())) { /* Sherman-Morrison Formula */ typedef matrix_solver_sm_t solver_mat; return plib::make_unique(netlist(), solvername, &m_params, size); } - else if (pstring("W").equals(m_iterative_solver())) + else if (pstring("W").equals(m_method())) { /* Woodbury Formula */ typedef matrix_solver_w_t solver_mat; return plib::make_unique(netlist(), solvername, &m_params, size); } - else if (pstring("SOR").equals(m_iterative_solver())) + else if (pstring("SOR").equals(m_method())) { typedef matrix_solver_SOR_t solver_GS; return plib::make_unique(netlist(), solvername, &m_params, size); } - else if (pstring("GMRES").equals(m_iterative_solver())) + else if (pstring("GMRES").equals(m_method())) { typedef matrix_solver_GMRES_t solver_GMRES; return plib::make_unique(netlist(), solvername, &m_params, size); } else { - netlist().log().fatal("Unknown solver type: {1}\n", m_iterative_solver()); + netlist().log().fatal("Unknown solver type: {1}\n", m_method()); return nullptr; } } @@ -255,12 +255,12 @@ void NETLIB_NAME(solver)::post_start() /* FIXME: Throw when negative */ m_params.m_gs_loops = static_cast(m_gs_loops()); m_params.m_nr_loops = static_cast(m_nr_loops()); - m_params.m_nt_sync_delay = netlist_time::from_double(m_sync_delay()); - m_params.m_lte = m_lte(); - m_params.m_sor = m_sor(); + m_params.m_nr_recalc_delay = netlist_time::from_double(m_nr_recalc_delay()); + m_params.m_lte = m_dynamic_lte(); + m_params.m_sor = m_gs_sor(); - m_params.m_min_timestep = m_min_timestep(); - m_params.m_dynamic = (m_dynamic() == 1 ? true : false); + m_params.m_min_timestep = m_dynamic_min_ts(); + m_params.m_dynamic = (m_dynamic_ts() == 1 ? true : false); m_params.m_max_timestep = netlist_time::from_double(1.0 / m_freq()).as_double(); if (m_params.m_dynamic) diff --git a/src/lib/netlist/solver/nld_solver.h b/src/lib/netlist/solver/nld_solver.h index 1d3b27bb1b..0b810d1181 100644 --- a/src/lib/netlist/solver/nld_solver.h +++ b/src/lib/netlist/solver/nld_solver.h @@ -42,12 +42,11 @@ NETLIB_OBJECT(solver) NETLIB_CONSTRUCTOR(solver) , m_fb_step(*this, "FB_step") , m_Q_step(*this, "Q_step") - , m_sync_delay(*this, "SYNC_DELAY", NLTIME_FROM_NS(10).as_double()) , m_freq(*this, "FREQ", 48000.0) /* iteration parameters */ - , m_sor(*this, "SOR_FACTOR", 1.059) - , m_iterative_solver(*this, "ITERATIVE", "SOR") + , m_gs_sor(*this, "SOR_FACTOR", 1.059) + , m_method(*this, "ITERATIVE", "MAT_CR") , m_accuracy(*this, "ACCURACY", 1e-7) , m_gs_loops(*this, "GS_LOOPS",9) // Gauss-Seidel loops @@ -55,12 +54,13 @@ NETLIB_OBJECT(solver) , m_gmin(*this, "GMIN", NETLIST_GMIN_DEFAULT) , m_pivot(*this, "PIVOT", 0) // use pivoting - on supported solvers , m_nr_loops(*this, "NR_LOOPS", 250) // Newton-Raphson loops + , m_nr_recalc_delay(*this, "NR_RECALC_DELAY", NLTIME_FROM_NS(10).as_double()) // Delay to next solve attempt if nr loops exceeded , m_parallel(*this, "PARALLEL", 0) /* automatic time step */ - , m_dynamic(*this, "DYNAMIC_TS", 0) - , m_lte(*this, "DYNAMIC_LTE", 5e-5) // diff/timestep - , m_min_timestep(*this, "MIN_TIMESTEP", 1e-6) // nl_double timestep resolution + , m_dynamic_ts(*this, "DYNAMIC_TS", 0) + , m_dynamic_lte(*this, "DYNAMIC_LTE", 5e-5) // diff/timestep + , m_dynamic_min_ts(*this, "DYNAMIC_MIN_TIMESTEP", 1e-6) // nl_double timestep resolution , m_log_stats(*this, "LOG_STATS", 1) // nl_double timestep resolution { @@ -86,20 +86,19 @@ protected: logic_input_t m_fb_step; logic_output_t m_Q_step; - param_double_t m_sync_delay; param_double_t m_freq; - param_double_t m_sor; - param_str_t m_iterative_solver; + param_double_t m_gs_sor; + param_str_t m_method; param_double_t m_accuracy; param_int_t m_gs_loops; param_double_t m_gmin; param_logic_t m_pivot; param_int_t m_nr_loops; + param_double_t m_nr_recalc_delay; param_int_t m_parallel; - param_logic_t m_dynamic; - param_double_t m_lte; - param_double_t m_min_timestep; - + param_logic_t m_dynamic_ts; + param_double_t m_dynamic_lte; + param_double_t m_dynamic_min_ts; param_logic_t m_log_stats; diff --git a/src/mame/audio/nl_kidniki.cpp b/src/mame/audio/nl_kidniki.cpp index 1c1d9a3df1..a2000b7a44 100644 --- a/src/mame/audio/nl_kidniki.cpp +++ b/src/mame/audio/nl_kidniki.cpp @@ -313,20 +313,20 @@ NETLIST_START(kidniki) PARAM(Solver.ACCURACY, 1e-8) PARAM(Solver.NR_LOOPS, 300) PARAM(Solver.GS_LOOPS, 1) - //PARAM(Solver.ITERATIVE, "SOR") - PARAM(Solver.ITERATIVE, "MAT_CR") - //PARAM(Solver.ITERATIVE, "GMRES") + //PARAM(Solver.METHOD, "SOR") + PARAM(Solver.METHOD, "MAT_CR") + //PARAM(Solver.METHOD, "GMRES") PARAM(Solver.PARALLEL, 0) PARAM(Solver.SOR_FACTOR, 1.00) PARAM(Solver.DYNAMIC_TS, 0) PARAM(Solver.DYNAMIC_LTE, 5e-4) - PARAM(Solver.MIN_TIMESTEP, 20e-6) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 20e-6) #else SOLVER(Solver, 12000) PARAM(Solver.ACCURACY, 1e-8) PARAM(Solver.NR_LOOPS, 300) PARAM(Solver.GS_LOOPS, 20) - PARAM(Solver.ITERATIVE, "GMRES") + PARAM(Solver.METHOD, "GMRES") PARAM(Solver.PARALLEL, 0) #endif diff --git a/src/mame/machine/nl_breakout.cpp b/src/mame/machine/nl_breakout.cpp index e336c0f71a..fd9d4a6387 100644 --- a/src/mame/machine/nl_breakout.cpp +++ b/src/mame/machine/nl_breakout.cpp @@ -96,8 +96,8 @@ CIRCUIT_LAYOUT( breakout ) PARAM(Solver.ACCURACY, 1e-6) PARAM(Solver.DYNAMIC_TS, 0) //PARAM(Solver.LTE, 1e-10) - PARAM(Solver.MIN_TIMESTEP, 1e-8) - PARAM(Solver.ITERATIVE, "MAT_CR") + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-8) + PARAM(Solver.METHOD, "MAT_CR") #endif PARAM(NETLIST.USE_DEACTIVATE, 1)