Menu

Tree [1c1080] main /
 History

HTTPS access


File Date Author Commit
 .github 2025-07-10 Colin B. Macdonald Colin B. Macdonald [f1ef51] CI: update Octave and SymPy
 inst 2025-09-11 Colin B. Macdonald Colin B. Macdonald [1c1080] Post-release version bump
 misc 2022-07-23 Colin B. Macdonald Colin B. Macdonald [5af40e] Add .oct-config to indicate source is in utf-8
 util 2024-05-16 Colin B. Macdonald Colin B. Macdonald [736cd4] Fix spelling mistakes
 .codespell-ignorelines 2024-05-16 Colin B. Macdonald Colin B. Macdonald [d89c19] CI: run codespell and fix a few spelling mistakes
 .codespell-ignorewords 2024-08-26 Colin B. Macdonald Colin B. Macdonald [056b59] CI: special case 'assignin' for codespell
 .gitignore 2024-05-16 Colin B. Macdonald Colin B. Macdonald [736cd4] Fix spelling mistakes
 .mailmap 2024-11-11 Colin B. Macdonald Colin B. Macdonald [d32a44] update mailmap
 CONTRIBUTORS 2024-11-11 Colin B. Macdonald Colin B. Macdonald [42f457] update contributors, re-order copyright notice
 COPYING 2014-04-16 Colin B. Macdonald Colin B. Macdonald [801fd8] rename license file
 DESCRIPTION 2025-09-11 Colin B. Macdonald Colin B. Macdonald [1c1080] Post-release version bump
 HOWTO-release.md 2025-09-11 Colin B. Macdonald Colin B. Macdonald [1c1080] Post-release version bump
 INDEX 2025-04-26 Swayam Shah Swayam Shah [da2904] add cart2sph & sph2cart
 Makefile 2024-11-30 Swayam Shah Swayam Shah [91e9c8] modified copyright header
 NEWS 2025-09-11 Colin B. Macdonald Colin B. Macdonald [1c1080] Post-release version bump
 README.matlab.md 2014-07-14 Colin B. Macdonald Colin B. Macdonald [28d0f1] update matlab comments and texinfo fix noted wh...
 README.md 2024-01-29 Colin B. Macdonald Colin B. Macdonald [52deb6] Fix install instructions on Ubuntu
 TODO.md 2024-05-16 Colin B. Macdonald Colin B. Macdonald [736cd4] Fix spelling mistakes
 icon.png 2024-01-29 Colin B. Macdonald Colin B. Macdonald [b3e70c] Add icon from source forge
 io.github.gnu_octave.symbolic.metainfo.xml 2024-03-05 Colin B. Macdonald Colin B. Macdonald [f4a14c] metainfo: validator says the summary is too long
 matlab_smt_differences.md 2015-06-25 Colin B. Macdonald Colin B. Macdonald [26aa46] Document that Matlab's SMT choses transform var...
 screenshot-install.png 2018-08-16 Colin B. Macdonald Colin B. Macdonald [80f540] update screenshot
 screenshot.png 2014-08-27 Colin B. Macdonald Colin B. Macdonald [3916d1] update screenshots

Read Me

Symbolic Package for GNU Octave

An implementation of a symbolic toolbox using SymPy.

https://octave.sourceforge.io/symbolic

https://github.com/gnu-octave/symbolic

Goals

Feature parity with the other symbolic toolboxes.

Screenshot 1

Screenshot 2

How to Install

  1. The dependencies are Octave, Python, and SymPy. Consult the SymPy
    website for details on how to install SymPy.

  2. Start Octave.

  3. At Octave prompt type pkg install -forge symbolic.

  4. At Octave prompt, type pkg load symbolic.

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

How to install on Ubuntu

  1. Install the dependencies with
    sudo apt install octave python3-sympy.
  2. Follow steps 2--5 above.

How to Install on Windows

  1. Get Octave for Windows.

  2. At the Octave prompt, type pkg install -forge symbolic.

  3. At the Octave prompt, type pkg load symbolic.

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

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 this package 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-2.7.0.tar.gz.

  2. Unzip it 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 if you want).

  2. Run Octave in the inst/ directory. It should be safe
    to do this even if you have the released version of the package
    installed (but not loaded).

Implementation

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

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

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

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.