Tree [ac79f9] master v2.2.4 /
 History



File Date Author Commit
 bin unknown
 inst 2015-12-14 Colin B. Macdonald Colin B. Macdonald [ac79f9] [maint] version bumps for release
 src 2015-12-14 Colin B. Macdonald Colin B. Macdonald [ac79f9] [maint] version bumps for release
 testing 2014-08-27 Colin B. Macdonald Colin B. Macdonald [f9664f] oneline tests
 .gitignore 2015-03-18 Colin B. Macdonald Colin B. Macdonald [7ce7f0] clean up for autoconf temp files
 .travis.yml 2015-12-11 Colin B. Macdonald Colin B. Macdonald [113cd4] CI testing on sympy 0.7.6.1
 CONTRIBUTORS 2015-09-24 Colin B. Macdonald Colin B. Macdonald [94a64b] add Mike Miller to contributors, update NEWS
 COPYING 2014-04-16 Colin B. Macdonald Colin B. Macdonald [801fd8] rename license file
 DESCRIPTION 2015-12-14 Colin B. Macdonald Colin B. Macdonald [ac79f9] [maint] version bumps for release
 HOWTO-release.md 2015-07-02 Colin B. Macdonald Colin B. Macdonald [1456fe] minor fixes, comments
 NEWS 2015-12-14 Colin B. Macdonald Colin B. Macdonald [ac79f9] [maint] version bumps for release
 README.bundled.md 2014-08-27 Colin B. Macdonald Colin B. Macdonald [5379be] a README file for the windows package with bund...
 README.matlab.md 2014-07-14 Colin B. Macdonald Colin B. Macdonald [28d0f1] update matlab comments and texinfo fix noted wh...
 README.md 2015-09-24 Colin B. Macdonald Colin B. Macdonald [4ac0e7] Link readme file to wiki page re: windows insta...
 TODO.md 2015-02-05 Colin B. Macdonald Colin B. Macdonald [55b58d] cleanup comments, minor edits
 convert_comments.m 2015-09-25 Colin B. Macdonald Colin B. Macdonald [a34545] [maint] minor cleanup packaging code
 extract_tests_for_matlab.m 2015-09-24 Colin B. Macdonald Colin B. Macdonald [83e47d] use empty string instead of []
 make_release_packages.sh 2015-11-26 Colin B. Macdonald Colin B. Macdonald [b56d93] [maint] post-release verion bumps
 make_windows_package.sh 2015-12-14 Colin B. Macdonald Colin B. Macdonald [1da968] maint: use sympy 0.7.6.1 in windows package
 matlab_smt_differences.md 2015-06-25 Colin B. Macdonald Colin B. Macdonald [26aa46] Document that Matlab's SMT choses transform var...
 octsympy_tests_matlab.m 2014-10-13 Colin B. Macdonald Colin B. Macdonald [f4a816] matlab: move some utility .m files out of src
 screenshot-install.png 2015-01-23 Colin B. Macdonald Colin B. Macdonald [5126ac] update screenshot, e.g., for website
 screenshot.png 2014-08-27 Colin B. Macdonald Colin B. Macdonald [3916d1] update screenshots

Read Me

OctSymPy

An implementation of a symbolic toolbox using SymPy.

[https://github.com/cbm755/octsympy]

Goals

Feature parity with the other symbolic toolboxes.

Screenshot 1

Screenshot 2

Status

"Beta" quality at best! Contributions welcome.

How to Install

  1. The only dependencies are Python and SymPy. Consult the SymPy
    website (e.g., yum install sympy on Fedora).

  2. Download the latest release, e.g., octsympy-0.1.2.tar.gz.

  3. Run Octave and change to the folder containing the downloaded file.

  4. At Octave prompt, type pkg install octsympy-0.1.2.tar.gz.

  5. At Octave prompt, type pkg load octsympy.

  6. At Octave prompt, type syms x, then f = (sin(x/2))^3,
    diff(f,x), etc.

How to Install on Windows

  1. Get Octave for Windows.

  2. Try the octsympy-windows-0.1.2.zip package. Follow the last three
    steps above using this file instead.

The octsympy-windows package should have no dependencies other than
Octave itself (it includes SymPy and a Python interpreter.)

Alternatively, you can install Python and SymPy yourself and use the
standard octsympy-0.1.2.zip package.

If you encounter any difficulties (even minor ones) please read and
if possible help us improve the
wiki page on Windows Installation.

How to Install on Matlab

Although OctSymPy is designed for GNU Octave, it will work with
Matlab. Currently only the slower system()-based communication is
available.

  1. Download the latest release, e.g., octsympy-matlab-0.1.2.tar.gz.

  2. Unzip is somewhere and add it to your Matlab Path.

The .m files for Matlab have been reformatted for Matlab comment
conventions, but are otherwise the same as the Octave source.

How to Help

We have a list of things to work on tagged help
wanted
.
Some of these should be quite easy to fix and would be a great way to
get involved. Come join us!

How to hack on the code:

  1. Clone the repo with git (preferred, but you can use the "Download
    ZIP" instead of you want).

  2. Go to octsympy/src/ and type "make". (You only need to do this
    again if you change the inst/private/python_header.py or various
    autogeneration scripts in src/.)

  3. Run Octave (or Matlab) in octsympy/inst/.

Implementation

Python code is generated to do the actual work. Each sym objects keep
a text field for display purposes and a string (a SymPy srepr). The
objects are communicated between Python and Octave by passing the
srepr's back-and-forth. Currently pure m-file (and Python)
implementation, no code to be compiled.

Communication

We have two IPC mechanisms between Octave and Python. One option is
calling "system()". The other uses "popen2()". Others could be
implemented.

  • There was a previous "symbolic" package in Octave Forge based on
    GiNaC. Its history has now been merged into octsympy.

  • "SymPy CAS" by Jonathan Lister.
    Calls SymPy commands using system().