diff options
author | 2020-04-20 00:14:13 +1000 | |
---|---|---|
committer | 2020-04-20 00:14:13 +1000 | |
commit | 729f1b42ea880722adfa90e5309f8dabe258d63e (patch) | |
tree | 5f07ac888a37bbf7331b3f94dce00ca9a4d9fba4 /src/lib/netlist/solver/nld_solver.cpp | |
parent | c23a007ea3825d7857e312afb19d601812c1a1bd (diff) | |
parent | 0054862e3c69a23d24387977deb7094c0d79db82 (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.cpp | 18 |
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>(); } |