summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/solver
Commit message (Collapse)AuthorAgeFilesLines
* netlist: fix bug recently introduced and some refactoring. (nw) couriersud2019-01-132-44/+39
|
* Fix bug in GMRES solver. (nw) couriersud2019-01-131-2/+2
|
* Reenable LOG_STATS - issue fixed by smf 12 months ago is gone. (nw) couriersud2019-01-132-10/+10
|
* Replace ATTR_UNUSED by c++ template. (nw) couriersud2019-01-132-3/+11
|
* Improve dealing ownership in pstreams. (nw) couriersud2019-01-131-2/+2
| | | | I am not really happy with this. But I am missing some creativity currently.
* Removed most inlines not necessary ... (nw) couriersud2019-01-128-34/+36
| | | | | On some I wasn't entirely sure :-( Thanks Vas: https://github.com/mamedev/mame/commit/0f0e8853f33bef49bc6f5bd8b53444d209699e44#r31909683
* Fix clang-8 warnings. (nw) couriersud2019-01-117-21/+19
|
* Move information where it belongs ... into the drivers. (nw) couriersud2019-01-101-1/+1
|
* Improve type safety on string->numeric conversions. (nw) couriersud2019-01-101-1/+1
| | | | | | | Also fixed an issue with 7497. ./nltool -t 5 -f src/mame/machine/nl_tp1983.cpp -v now runs again.
* More c++ alignment. pstring now behaves like std::string. (nw) couriersud2019-01-061-8/+8
| | | | | This change removes all string extensions like trim, rpad, left, right, ... from pstring and replaces them by function templates. This aligns a lot better with the intentions of the standard library.
* srcclean and other cleanup (nw) Vas Crabb2018-06-242-0/+0
|
* disable netlist statistic logging on shutdown, because it triggers a use ↵ smf-2018-01-311-1/+1
| | | | after free in void device_debug::errorlog_write_line(const char *line) & fixed the copy & pasted comment. (nw)
* Various code alignments across solvers. (nw) couriersud2017-05-277-76/+137
|
* Cleanup of solver code. (nw) couriersud2017-05-279-289/+46
|
* Netlist refactoring: couriersud2017-05-271-1/+1
| | | | | | - OPENMP refactored. All OPENMP operations are now templatized in pomp.h - We don't need thread-safe priority queue. Event code updating analog outputs now runs outside the parallel code. (nw)
* Changed Solver.PARALLEL parameter logic: couriersud2017-05-271-32/+12
| | | | | | | | | | | 0: Parallel processing of solvers disabled 1: One processor parallel processing. Can be used to measure OPENMP overhead >1: Solve n analog subnets in parallel. Previously, all available processors were used which caused performance to degrade on hyperthreading. [Couriersud]
* Fix VS2015 build. (nw) couriersud2017-04-091-1/+1
|
* Netlist code refactoring: couriersud2017-04-093-5/+5
| | | | | | | | | | | | | | | | | | | - more use of c++ features - some CRTP in pfmtlog - demangled code for truthtables - use more constexpr - rewrite main loop - use default constructors and assignment operators were applicable. - optimized 7448 and 9316 All of this has decreased startup time by approx. 25% to 30%. Complex netlists like pong or kidniki are parsed, analyzed and constructed in around 15 ms. Run performance has increased by about 5%. All in all not to bad. A game like pong uses a clock of 7 MHz (after division by 2). Thats 14 MHz clock invocations. Running at over 200%, 28 MHz. On a 3.9 GHz Machine about 140 cycles/clock change. [Couriersud]
* pstring, pdynlib, pfmtlog refactoring : couriersud2017-04-043-6/+16
| | | | | | | | | | | | | | | | | | | | | pstring: - added support for UTF16LE to pstring. - renamed size() to mem_t_size() - renmaed len() to length() - added size() == length() - added empty() - added simple compare() pfmtlog: - Simplified pfmtlog, added more c++ pdynlib: - add a dynproc type to dynlib to wrap dynamic library calls. various: - fix two coverty scan issue. - various clang warnings fixed. (nw)
* Change pstring to use std::string as storage container. couriersud2017-03-301-1/+2
| | | | | | | | This removes all allocation code from pstring. const_iterator is consequently now based on pstring::const_iterator. Removed pstring_buffer. This was class wasn't a good idea. Vas was right: This change did not impact runtime performance. Startup performance (string intensive) increased. (nw)
* Fix openmp compile. (nw) couriersud2017-03-201-4/+4
|
* Fix clang warnings in netlist code. couriersud2017-03-059-12/+12
| | | | | | Fixed -Winconsistent-missing-destructor-override warnings. Made some constructors of template classes and classes with virtual .. = 0 methods protected. Fixed src/lib/netlist/build/makefile (nw)
* More cppcheck fixes. (nw) Couriersud2017-03-053-2/+3
|
* Clean up net_t interface and increase readability. (nw) couriersud2017-02-223-10/+5
|
* srcclean (nw) Vas Crabb2017-02-194-5/+5
|
* Make sure netlist includes are not found directly on include path. couriersud2017-02-1015-40/+40
| | | | Instead, they have to be prefixed by "netlist/". Removed unneeded link librariers for nltool and nlwav along the way. (nw)
* Netlist: It is now possible to have multiple handlers per device ... couriersud2017-02-051-1/+0
| | | | | | | | | | | | | ... for updates. This will make device implementation more flexible and faster. A nice side-effect is that there was some minor (<5%) performance increase already. Each input is now assigned a notification handler. Currently this is update, but going forward this may be a custom handler. In addition - fixed MEMPOOL on OSX - removed dead code - avoid bit-rot - added delegate support for emscripten and arm processors - added delegate support for VS 2015 x64 [Couriersud]
* Fixed a number of issues: couriersud2017-01-318-152/+179
| | | | | | | | | | - Fixed crashes on terminals without nets (i.e. connected to a rail) - Reviewed "FIXMEs" and corrected some minor ones. - Made m_cur_analog protected. - Fixed pmf delegates to work with msvc. - More optimizations to the solver code. - Started work on a better signal pipeline in nlwav - Only generate documentation for entities which are documented. [Couriersud]
* Separate include file usage for netlist. couriersud2017-01-298-25/+15
| | | | | | | | Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build. (nw)
* Solver stuff: couriersud2017-01-297-140/+173
| | | | | | Rewrote mat_cr_t to include data as well. Fixed some bitrot in other parts. Simplified solver creation. (nw)
* Fix a hidden bug in the GMRES solver and more optimization. (nw) couriersud2017-01-2813-232/+273
|
* Remove macro to avoid copying and replace with a struct. (nw) couriersud2017-01-273-4/+5
|
* Cleanup of includes. (nw) couriersud2017-01-273-2/+3
|
* Fix netlist code generation. (nw) couriersud2017-01-264-65/+85
|
* More netlist refactoring: couriersud2017-01-256-28/+25
| | | | | | | | - Remove virtual from some destructors and make them protected. - Various cleanups. - Small performance improvement. - Fixed some inconsistencies. - More c++ refactoring. (nw)
* Netlist: code refactoring couriersud2017-01-203-11/+13
| | | | | | | Make streams provide binary access only. Use putf8_reader and putf8_writer to actually access streams. Replace some char * parameters with pstring where appropriate. Minor code refactoring and move functionality were it belongs. (nw)
* Default argument on plib::environment now optional. (nw) couriersud2017-01-201-1/+1
|
* Converted warnings and fatal log messages to constants. couriersud2017-01-207-33/+24
| | | Also refactored some code to ease the exercise. (nw)
* Netlist: couriersud2017-01-171-1/+1
| | | | | | | | | - refactored reverse polish notation evaluator into own source files. - added function parameter to current and voltage sources VS and CS. You can now use those to e.g. produce a sine wave. - Changed code to allow devices to optionally be treated as dynamic or timestepping devices. [Couriersud]
* Register all devices using NETLIB_DEVICE_IMPL. Fix encoding issue. (nw) couriersud2017-01-161-0/+1
|
* Preparation work for automatically generated include file for devices. couriersud2017-01-161-0/+3
| | | | | | | | | | | | | | | nltool now is able to create all defines from the factory definitions. This will reduce the number of places needed to touch when adding devices and always ensure that the parser and statically compiled netlist code use the same syntax. This will enable us to delete most device include files, e.g. nld_74107.h. Netlist usage to create this header file: ./nltool -c header > src/lib/netlist/devices/nld_devinc.h This is not yet used in production. It will be enabled after additional tests. [Couriersud]
* Core refactoring couriersud2017-01-141-1/+1
| | | | | - connect_late ==> connect - register nets where they are created
* Fix seldom used conditional build options. couriersud2017-01-122-12/+15
| | | | | | | | - Fixed OPENMP compile For congo bongo, using Solver.PARALLEL=1 significantly increases performance from 270% to 380%. However, this has to be taken with a grain of salt. Enabling this on predominantly logic netlists can severly kill performance. - Increased readability of timed queue code.
* Improve readability and remove some trampolines. (nw) couriersud2017-01-126-16/+16
|
* No need for a virtual stop which is needed only by the solver. (nw) couriersud2017-01-082-2/+2
|
* Make stop be called again. Fix METHOD parameter. (nw) couriersud2017-01-081-1/+1
|
* Rename misleading solver parameters. (nw) couriersud2017-01-084-28/+27
|
* Remove parameter GS_THRESHOLD. It is now outdated. (nw) couriersud2017-01-082-48/+49
|
* Minor refactoring with focus on a bit more readability. (nw) couriersud2017-01-077-59/+59
|
* Fix startup when there are no timestep devices present, i.e. Capacitors couriersud2017-01-072-2/+4
| | | or inductors. (nw)