.. _cas:
Computer Algebra Interfaces
---------------------------
DDA implements a few parts of computer algebra system (CAS), especially with it's :ref:`abstract-syntax-tree`.
Since we don't want to reinvent the wheel, we interface with common computer algebra systems.
There are at least two popular for the Python ecosystem available:
- `SymPy `_, bundled within the `SciPy `_ package,
can be easily used as a pure python library.
- `Sagemath `_, which is more of a monolithic software.
The symbolic foundation of sage is provided by `Ginac `_ and
`Pynac `_, respectively. Many open source computer algebra systems are bundled
with sage, such as `Maxima `_ and
`Octave `_. Furthermore, interfaces to many others such as
`Maple `_, `Mupad `_ or
`Mathematica `_ are part of sage.
So far, we had quick success with adopting SymPy (see next section).
SymPy module API reference
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. automodule:: dda.sympy
:members: