All Projects → symengine → Symengine.py

symengine / Symengine.py

Licence: mit
Python wrappers for SymEngine

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Symengine.py

Sage
Mirror of the Sage source tree -- please do not submit PRs here -- everything must be submitted via https://trac.sagemath.org/
Stars: ✭ 1,656 (+1405.45%)
Mutual labels:  math, computer-algebra, science
Sympy
A computer algebra system written in pure Python
Stars: ✭ 8,688 (+7798.18%)
Mutual labels:  math, computer-algebra, science
Hecke.jl
Computational algebraic number theory
Stars: ✭ 142 (+29.09%)
Mutual labels:  math, computer-algebra
arogozhnikov.github.io
'Brilliantly wrong' blog, Machine Learning visualizations live here
Stars: ✭ 120 (+9.09%)
Mutual labels:  science, math
Angourimath
Open-source symbolic algebra library for C# and F#. One of the most powerful in .NET
Stars: ✭ 266 (+141.82%)
Mutual labels:  math, computer-algebra
Oscar.jl
A comprehensive open source computer algebra system for computations in algebra, geometry, and number theory.
Stars: ✭ 182 (+65.45%)
Mutual labels:  math, computer-algebra
cas
Cellular Automata Simulator
Stars: ✭ 22 (-80%)
Mutual labels:  science, math
Mathnet Symbolics
Math.NET Symbolics
Stars: ✭ 256 (+132.73%)
Mutual labels:  math, computer-algebra
Mppp
Multiprecision for modern C++
Stars: ✭ 196 (+78.18%)
Mutual labels:  math, computer-algebra
Librmath.js
Javascript Pure Implementation of Statistical R "core" numerical libRmath.so
Stars: ✭ 425 (+286.36%)
Mutual labels:  math, science
Calculatex
in progress pretty printing calculator language
Stars: ✭ 302 (+174.55%)
Mutual labels:  math, science
Gap
Main development repository for GAP - Groups, Algorithms, Programming, a System for Computational Discrete Algebra
Stars: ✭ 447 (+306.36%)
Mutual labels:  math, computer-algebra
diofant
A Python CAS library
Stars: ✭ 61 (-44.55%)
Mutual labels:  science, computer-algebra
Stdlib
✨ Standard library for JavaScript and Node.js. ✨
Stars: ✭ 2,749 (+2399.09%)
Mutual labels:  math, science
symengine.rb
Ruby wrappers for SymEngine
Stars: ✭ 26 (-76.36%)
Mutual labels:  math, computer-algebra
Math Science Video Lectures
List of Science courses with video lectures
Stars: ✭ 219 (+99.09%)
Mutual labels:  math, science
mightyscape-1.X
A maintained extension collection for Inkscape 1.0+, working on Windows and Linux
Stars: ✭ 23 (-79.09%)
Mutual labels:  science, math
Symengine.jl
Julia wrappers of SymEngine
Stars: ✭ 139 (+26.36%)
Mutual labels:  math, computer-algebra
Reduce.jl
Symbolic parser generator for Julia language expressions using REDUCE algebra term rewriter
Stars: ✭ 172 (+56.36%)
Mutual labels:  math, computer-algebra
Grassmann.jl
⟨Leibniz-Grassmann-Clifford⟩ differential geometric algebra / multivector simplicial complex
Stars: ✭ 289 (+162.73%)
Mutual labels:  math, computer-algebra

SymEngine Python Wrappers

Python wrappers to the C++ library SymEngine, a fast C++ symbolic manipulation library.

Build Status Build status

Installation

Pip

See License section for information about wheels

pip install symengine --user

Conda package manager

conda install python-symengine -c symengine -c conda-forge

optionally, you may choose to install an early developer preview:

conda install python-symengine -c symengine/label/dev -c conda-forge

Build from source

Install prerequisites.

CMake       >= 2.8.7
Python2     >= 2.7      or Python3 >= 3.4
Cython      >= 0.19.1
SymEngine   >= 0.4.0

For SymEngine, only a specific commit/tag (see symengine_version.txt) is supported. Latest git master branch may not work as there may be breaking changes in SymEngine.

Python wrappers can be installed by,

python setup.py install

Additional options to setup.py are

python setup.py install build_ext
    --symengine-dir=/path/to/symengine/install/dir          # Path to SymEngine install directory or build directory
    --compiler=mingw32|msvc|cygwin                          # Select the compiler for Windows
    --generator=cmake-generator                             # CMake Generator
    --build-type=Release|Debug                              # Set build-type for multi-configuration generators like MSVC
    --define="var1=value1;var2=value2"                      # Give options to CMake
    --inplace                                               # Build the extension in source tree

Standard options to setup.py like --user, --prefix can be used to configure install location. NumPy is used if found by default, if you wish to make your choice of NumPy use explicit: then add e.g. WITH_NUMPY=False to --define.

Use SymEngine from Python as follows:

>>> from symengine import var
>>> var("x y z")
(x, y, z)
>>> e = (x+y+z)**2
>>> e.expand()
2*x*y + 2*x*z + 2*y*z + x**2 + y**2 + z**2

You can read Python tests in symengine/tests to see what features are implemented.

License

symengine.py is MIT licensed and uses several LGPL, BSD-3 and MIT licensed libraries

Licenses for the dependencies of pip wheels are as follows,

pip wheels on Unix use GMP (LGPL-3.0-or-later), MPFR (LGPL-3.0-or-later), MPC (LGPL-3.0-or-later), LLVM (Apache-2.0), zlib (Zlib) and symengine (MIT AND BSD-3-Clause). pip wheels on Windows use MPIR (LGPL-3.0-or-later) instead of GMP above and pthreads-win32 (LGPL-3.0-or-later) additionally. NumPy (BSD-3-Clause) and SymPy (BSD-3-Clause) are optional dependencies. Sources for these binary dependencies can be found on https://github.com/symengine/symengine-wheels/releases

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].