summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nltypes.h
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-04-13 21:32:00 +0200
committer couriersud <couriersud@gmx.org>2020-04-13 21:32:00 +0200
commit5b6013caea7999deb8d481fbf67b28969d5e79ff (patch)
treef7185c986ca46533e8e58db6dbad395552f7b349 /src/lib/netlist/nltypes.h
parentd4093c59dbd80bcac916c08dd49278f0b1052c26 (diff)
netlist: improve performance up to 65% on audio netlists. [Couriersud]
This commit introduces precompiled static solver code. Due to additional optimizations the compiler can use because the detail calculation steps for the solution are known e.g. the kidniki netlist sees a 100% speed increase. In all environments (windows/*nix/osx) the source for the static solver code can be created using bash src/lib/netlist/nl_create_mame_solvers.sh This will create src/lib/netlist/generated/static_solvers.cpp which is compiled into the mame binary. The script is just a temporary workaround. The intention is that nltool whill be able to create this file with one call. There are other improvements in this commit speeding up the processing of timestep and dynamic calculations.
Diffstat (limited to 'src/lib/netlist/nltypes.h')
-rw-r--r--src/lib/netlist/nltypes.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/netlist/nltypes.h b/src/lib/netlist/nltypes.h
index b3f6f534978..f5a0791a59f 100644
--- a/src/lib/netlist/nltypes.h
+++ b/src/lib/netlist/nltypes.h
@@ -20,6 +20,7 @@
#include "plib/pstring.h"
#include "plib/ptime.h"
#include "plib/putil.h"
+#include "plib/pdynlib.h"
#include <unordered_map>
@@ -57,6 +58,9 @@ namespace netlist
///
virtual void vlog(const plib::plog_level &l, const pstring &ls) const noexcept = 0;
+ /// \brief provide library with static solver implementations.
+ ///
+ virtual plib::unique_ptr<plib::dynlib_base> static_solver_lib() const;
};
using log_type = plib::plog_base<callbacks_t, NL_DEBUG>;