Pyanalog: A pythonic analog computer demonstrator interface =========================================================== .. raw:: latex \section*{Abstract and Summary of PyAnalog} ``pyanalog`` is a `Python3 `_ package and demonstrator/research code for a software stack for analog computers. It empowers users to * manipulate ordinary differential equations in a way suitable for procession with the exemplary `Analog Paradigm Model-1 `_ analog computer or similar *high-level* architectures in terms of OpAmp-Level circuit description (*not* SPICE-level circuit description). * simulate abstract computing circuits made of elements such as *summers, integrators, differentiator and multipliers*. The heart of the code is a :ref:`custom ODE solver (based on C++ codegeneration) `, but also interfaces to :ref:`SciPy ` and :ref:`SymPy ` solvers exist. Notably, the C++ solver can also solve integro-differential equations. * generate and manipulate :ref:`netlists and VHDL-like circuit descriptions ` * compile against machine architectures on a macrocell-level, set digital potentiometer arrays, cross bar switches, digital switches, etc. * :ref:`interface a Model-1 hybrid controller ` in order to run a program, steer the operation, gain and visualize/postprocess output data. The codes are supposed to work well in the `Scientific Python `_ ecosystem. The target audience are clearly software engineers and scientists. The user interface is either command line (bash or python shell) or scripting (Python or C/YAML-like domain specific languages). This code can interface with remote analog computers (AAAS – *analog computing as a service*). The ``pyanalog`` code is open-source and a *research code which is worked actively on*, ie. it is "work in progress". It is authored `Anabrid GmbH `_. The code is currently dual-licensed by `GPL-3 `_ and `a proprietary/commercial use license `_. See http://www.anabrid.com/licensing for further details. .. raw:: latex \chapter{Introduction} .. toctree:: :maxdepth: 2 :caption: Introduction overview installation tips code-testing .. raw:: latex \chapter{PyDDA} .. toctree:: :maxdepth: 2 :caption: PyDDA dda/intro dda/rationale dda/api-reference dda/examples .. raw:: latex \chapter{PyFPAA} .. toctree:: :maxdepth: 2 :caption: FPAA fpaa/fpaa fpaa/examples fpaa/mini-m1 .. raw:: latex \chapter{PyHyCon} .. toctree:: :maxdepth: 2 :caption: Hybrid Controller hycon/hycon hycon/networking hycon/aquisition .. raw:: latex \appendix \chapter{Appendix} % or: Endnotes About this documentation ------------------------ This documentation is written in `ReStructured text `_ (RST) and rendered using the `Sphinx `_. documentation system. Possible output formats are not only web pages (HTML), but also PDF, amongst others. If you have sphinx installed (``pip install sphinx``), you can just go to the ``doc`` directory and type ``make html`` or ``make pdf`` to generate the docs locally. If you have a mixed Python2/Python3 system, call ``make html SPHINXBUILD="python3 -msphinx"`` to ensure using Python3. If you want to start editing/improving this documentation, you might want to read the `ReStructuredText Primer `_. A handy tool for hot reloading (regenerating) the documentation during editing is `Sphinx-Reload `_. After installation, just run ``sphinx-reload doc/`` from the root directory and point your browser to an address such as http://localhost:5500/. This documentation is automatically updated/built at Git commit/push time by our Gitlab Continous Integration infrastructured and uploaded as static files to our `Anabrid Dev Server `_ (formally `Read The Docs `_). you can find the docs at: - https://anabrid.dev/pyanalog/dirhtml/ primary link - https://anabrid.dev/pyanalog/latex/pyanalog.pdf for a +100 page printable/downloadable/searchable PDF version - Various different versions for download at https://anabrid.dev/pyanalog/ Indices and tables ------------------ * :ref:`Python Function/Class index ` * :ref:`Python module index ` .. Linking to search makes no sense since the search box is omnipresent in the RTD theme * :ref:`search`