Symbolic mathematics language
The master branch, and tagged versions 0.4.0 and later, support only Julia v0.7 and greater.
The last version to support Julia v0.6.3 is tagged v0.3.0. Three percent of the tests fail.
For Julia v0.5, install branch
The syntax for
PatternTest was changed in Symata v0.4.0.
See "./symata_test/pattern_test.sj" for information on the new syntax.
nbviewer.jupyter.org. These are the same notebooks found in the TutorialNotebooks directory in this repositoy. But the rendering at
? Topic(with completion)
h"word"regular expression search
a language for symbolic computations and mathematics, where, for the most part, "mathematics" means what it typically does for a scientist or engineer.
a language based mostly on expressions, on "evaluating" and rewriting them, like Wolfram, Maple, or Maxima. It is neither a language, nor an extension of a language, that is mostly procedural, or designed around data types and functions, or a hierarchy of classes, etc., like C or Python or Java. Nor is it language like Sage; that is, one meant to provide a unifying interface to a number of mathematics languages with various programming models.
meant to be useful to people who do not like to program computers, as well as those who do. The former includes people who prefer not to think about classes, methods, objects, dispatch, stack traces, etc.
Symata is largely modeled on the pattern matching and evaluation sequence of Mathematica. Evaluation, pattern matching, flow control, etc. are written in Julia. Much of the mathematics and symbolic manipulation is achieved by wrapping SymPy. There are more than 600 functions implemented, including integration, transformation of special functions, expression manipulation, writing and reading expressions to and from a file etc.
You can use Symata with Mathematica syntax in addition to the usual Julia-like syntax. To use Mathematica syntax, install the SymataSyntax.jl package.
Symata is a registered module. It can be installed like this
(v0.7) pkg> add Symata julia> using Symata symata> Help() # type '=' alone on a line to enter symata mode
Symata can be installed on Linux, OSX, and Windows.
Alternatively, you may install SymPy via
When you load
sympy is installed automatically via
PyCall, which uses
Conda. However, to do this,
PyCall must be configured to not use you system version of
If you do not have
PyCall installed, do this
julia> ENV["PYTHON"]="" julia> Pkg.add("PyCall")
If you do have
PyCall installed, but it is configured to use your system
it like this.
julia> ENV["PYTHON"]="" julia> Pkg.build("PyCall")
If you use linux, you may have your distribution's
sympy package installed and it may be
out of date. In this case, try the procedure above, and/or try removing your distribution's
mpmath package for python. This
should be automatically installed when installing
PyCall as described above. This also works on OSX.
However, if you use
pip, you should just be able to run
Three environments for running
Symata are supported: the
Jupyter, and a dumb terminal.
Symata mode is added to the
Julia REPL. Enter the mode by typing
= as the first character. Exit
the mode by typing
backspace as the first character.
julia> using Symata symata 1> # after entering `=`
There is an executable
symata included in top level directory of this distribution. It is a (UNIX
sh) shell script that just starts julia, loads the module, and enters
Symata modes by typing
=, or backspace, as the first character on a line.
You can do tab completion to see a list of functions and symbols.
In : using Symata In : Expand((a+b)^2) Out: a^2 + 2a*b + b^2 In : Julia() # return to Julia mode
Out(n) reevaluate the input and output cells. TAB completion
Jupyter. To see a list of all possible completions, type
If you do
using Symata in a dumb terminal, the
Symata prompt should appear automatically.
From the julia prompt, type
isympy() to enter the sympy shell.
Run the test suite from the
symata prompt with
This runs tests in the symata_test directory
Pkg.test("Symata") runs the same test suite from
some Julia-level unit tests, as well.
3 days ago