summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/solver/nld_solver.cpp
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2020-04-20 00:14:13 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2020-04-20 00:14:13 +1000
commit729f1b42ea880722adfa90e5309f8dabe258d63e (patch)
tree5f07ac888a37bbf7331b3f94dce00ca9a4d9fba4 /src/lib/netlist/solver/nld_solver.cpp
parentc23a007ea3825d7857e312afb19d601812c1a1bd (diff)
parent0054862e3c69a23d24387977deb7094c0d79db82 (diff)
Merge branch 'master' of https://github.com/mamedev/mame
Diffstat (limited to 'src/lib/netlist/solver/nld_solver.cpp')
-rw-r--r--src/lib/netlist/solver/nld_solver.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp
index f0b6ea9503d..0489311a03d 100644
--- a/src/lib/netlist/solver/nld_solver.cpp
+++ b/src/lib/netlist/solver/nld_solver.cpp
@@ -121,20 +121,26 @@ namespace devices
{
case solver::matrix_type_e::MAT_CR:
return create_it<solver::matrix_solver_GCR_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
- case solver::matrix_type_e::SOR_MAT:
- return create_it<solver::matrix_solver_SOR_mat_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
case solver::matrix_type_e::MAT:
return create_it<solver::matrix_solver_direct_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
+#if (NL_USE_ACADEMIC_SOLVERS)
+ case solver::matrix_type_e::GMRES:
+ return create_it<solver::matrix_solver_GMRES_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
+ case solver::matrix_type_e::SOR:
+ return create_it<solver::matrix_solver_SOR_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
+ case solver::matrix_type_e::SOR_MAT:
+ return create_it<solver::matrix_solver_SOR_mat_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
case solver::matrix_type_e::SM:
// Sherman-Morrison Formula
return create_it<solver::matrix_solver_sm_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
case solver::matrix_type_e::W:
// Woodbury Formula
return create_it<solver::matrix_solver_w_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
- case solver::matrix_type_e::SOR:
- return create_it<solver::matrix_solver_SOR_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
- case solver::matrix_type_e::GMRES:
- return create_it<solver::matrix_solver_GMRES_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
+#else
+ default:
+ state().log().warning(MW_SOLVER_METHOD_NOT_SUPPORTED(m_params.m_method().name(), "MAT_CR"));
+ return create_it<solver::matrix_solver_GCR_t<FT, SIZE>>(state(), solvername, nets, m_params, size);
+#endif
}
return plib::unique_ptr<solver::matrix_solver_t>();
}