Summer of Code - Getting Started: Difference between revisions
Jump to navigation
Jump to search
m (→Symbolic package: link to Python interface page) |
|||
Line 165: | Line 165: | ||
Octave's [https://github.com/cbm755/octsympy Symbolic package] handles symbolic computing and other CAS tools. The main component of Symbolic is a pure m-file class "@sym" which uses the Python package [https://www.sympy.org SymPy] to do (most of) the actual computations. The package aims to expose the full functionality of SymPy while also providing a high-level of compatibility with the Matlab Symbolic Math Toolbox. Currently, communication between Octave and Python is handled with a pipe (see "help popen2") and parsing text. However, this is fragile when things go wrong: for example, catching exceptions from Python is a bit ad hoc. | Octave's [https://github.com/cbm755/octsympy Symbolic package] handles symbolic computing and other CAS tools. The main component of Symbolic is a pure m-file class "@sym" which uses the Python package [https://www.sympy.org SymPy] to do (most of) the actual computations. The package aims to expose the full functionality of SymPy while also providing a high-level of compatibility with the Matlab Symbolic Math Toolbox. Currently, communication between Octave and Python is handled with a pipe (see "help popen2") and parsing text. However, this is fragile when things go wrong: for example, catching exceptions from Python is a bit ad hoc. | ||
The main aim of this proposed project is to implement (or even better co-opt an existing) C++ oct-file interface that interacts with Python as a library, and e.g., deals gracefully with exceptions. This could either supplement the existing IPC or replace it altogether. | The main aim of this proposed project is to implement (or even better co-opt an existing) C++ oct-file [[Python interface|interface that interacts with Python as a library]], and e.g., deals gracefully with exceptions. This could either supplement the existing IPC or replace it altogether. | ||
* '''Required skills''' | * '''Required skills''' |