summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/solver/nld_matrix_solver.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/solver/nld_matrix_solver.h')
-rw-r--r--src/lib/netlist/solver/nld_matrix_solver.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h
index 3a9c8386f69..09e650be1a3 100644
--- a/src/lib/netlist/solver/nld_matrix_solver.h
+++ b/src/lib/netlist/solver/nld_matrix_solver.h
@@ -49,20 +49,20 @@ namespace solver
struct solver_parameters_t
{
solver_parameters_t(device_t &parent)
- : m_freq(parent, "FREQ", plib::constants<nl_fptype>::cast(48000.0))
+ : m_freq(parent, "FREQ", nlconst::magic(48000.0))
/* iteration parameters */
- , m_gs_sor(parent, "SOR_FACTOR", plib::constants<nl_fptype>::cast(1.059))
+ , m_gs_sor(parent, "SOR_FACTOR", nlconst::magic(1.059))
, m_method(parent, "METHOD", matrix_type_e::MAT_CR)
, m_fp_type(parent, "FPTYPE", matrix_fp_type_e::DOUBLE)
- , m_reltol(parent, "RELTOL", plib::constants<nl_fptype>::cast(1e-3)) ///< SPICE RELTOL parameter
- , m_vntol(parent, "VNTOL", plib::constants<nl_fptype>::cast(1e-6)) ///< SPICE VNTOL parameter
- , m_accuracy(parent, "ACCURACY", plib::constants<nl_fptype>::cast(1e-7)) ///< Iterative solver accuracy
+ , m_reltol(parent, "RELTOL", nlconst::magic(1e-3)) ///< SPICE RELTOL parameter
+ , m_vntol(parent, "VNTOL", nlconst::magic(1e-6)) ///< SPICE VNTOL parameter
+ , m_accuracy(parent, "ACCURACY", nlconst::magic(1e-7)) ///< Iterative solver accuracy
, m_nr_loops(parent, "NR_LOOPS", 250) ///< Maximum number of Newton-Raphson loops
, m_gs_loops(parent, "GS_LOOPS", 9) ///< Maximum number of Gauss-Seidel loops
/* general parameters */
- , m_gmin(parent, "GMIN", plib::constants<nl_fptype>::cast(1e-9))
+ , m_gmin(parent, "GMIN", nlconst::magic(1e-9))
, m_pivot(parent, "PIVOT", false) ///< use pivoting on supported solvers
, m_nr_recalc_delay(parent, "NR_RECALC_DELAY",
netlist_time::quantum().as_fp<nl_fptype>()) ///< Delay to next solve attempt if nr loops exceeded
@@ -70,8 +70,8 @@ namespace solver
/* automatic time step */
, m_dynamic_ts(parent, "DYNAMIC_TS", false) ///< Use dynamic time stepping
- , m_dynamic_lte(parent, "DYNAMIC_LTE", plib::constants<nl_fptype>::cast(1e-5)) ///< dynamic time stepping slope
- , m_dynamic_min_ts(parent, "DYNAMIC_MIN_TIMESTEP", plib::constants<nl_fptype>::cast(1e-6)) ///< smallest time step allowed
+ , m_dynamic_lte(parent, "DYNAMIC_LTE", nlconst::magic(1e-5)) ///< dynamic time stepping slope
+ , m_dynamic_min_ts(parent, "DYNAMIC_MIN_TIMESTEP", nlconst::magic(1e-6)) ///< smallest time step allowed
/* matrix sorting */
, m_sort_type(parent, "SORT_TYPE", matrix_sort_type_e::PREFER_IDENTITY_TOP_LEFT)
@@ -375,9 +375,9 @@ namespace solver
, m_new_V(size)
, m_RHS(size)
, m_mat_ptr(size, this->max_railstart() + 1)
- , m_last_V(size, plib::constants<nl_fptype>::zero())
- , m_DD_n_m_1(size, plib::constants<nl_fptype>::zero())
- , m_h_n_m_1(size, plib::constants<nl_fptype>::zero())
+ , m_last_V(size, nlconst::zero())
+ , m_DD_n_m_1(size, nlconst::zero())
+ , m_h_n_m_1(size, nlconst::zero())
{
/*
* save states
@@ -468,7 +468,7 @@ namespace solver
m_h_n_m_1[k] = hn;
m_DD_n_m_1[k] = DD_n;
if (std::fabs(DD2) > fp_constants<nl_fptype>::TIMESTEP_MINDIV()) // avoid div-by-zero
- new_net_timestep = std::sqrt(m_params.m_dynamic_lte / std::fabs(plib::constants<nl_fptype>::cast(0.5)*DD2));
+ new_net_timestep = std::sqrt(m_params.m_dynamic_lte / std::fabs(nlconst::magic(0.5)*DD2));
else
new_net_timestep = m_params.m_max_timestep;
@@ -549,8 +549,8 @@ namespace solver
*tcr_r[i] += static_cast<FT>(go[i]);
/* use native floattype for now */
- auto gtot_t(plib::constants<nl_fptype>::zero());
- auto RHS_t (plib::constants<nl_fptype>::zero());
+ auto gtot_t(nlconst::zero());
+ auto RHS_t (nlconst::zero());
for (std::size_t i = 0; i < term_count; i++)
{