# Best pkg for symbolic mathematics at Julia

**URL:** <https://discourse.julialang.org/t/best-pkg-for-symbolic-mathematics-at-julia/55312>\
**Category:** General Usage\
**Created:** [February 15, 2021, 12:20pm UTC](https://discourse.julialang.org/t/best-pkg-for-symbolic-mathematics-at-julia/55312 "2021-02-15T12:20:47Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![fms-1988](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fms-1988/32/20275_2.png) [@fms-1988](https://discourse.julialang.org/u/fms-1988)\
**Post date:** [February 15, 2021, 12:20pm UTC](https://discourse.julialang.org/t/best-pkg-for-symbolic-mathematics-at-julia/55312/1 "2021-02-15T12:20:47Z")

</div>

I am currently using Sympy.  
The problem is that it was developed in Python.  
An alternative is pkg SymEngine, which was developed in C ++.  
My doubt is: is there a better Pkg than Sympy and SymEngine?

---

<div class="post-metadata">

**Author:** ![j2b2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j2b2/32/3387_2.png) [@j2b2](https://discourse.julialang.org/u/j2b2)\
**Post date:** [February 15, 2021, 12:48pm UTC](https://discourse.julialang.org/t/best-pkg-for-symbolic-mathematics-at-julia/55312/2 "2021-02-15T12:48:57Z")

</div>

I use Nemo : [https://nemocas.org/](https://nemocas.org/) This is a CAS (Computer Algebra System), not a “symbolic maths package”, but for _my_ computations it’s always perfect.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [February 15, 2021, 1:31pm UTC](https://discourse.julialang.org/t/best-pkg-for-symbolic-mathematics-at-julia/55312/3 "2021-02-15T13:31:58Z")

</div>

ModelingToolkit.jl is the most similar right now in pure Julia. The CAS portions of it are being pulled out to a Symbolics.jl specifically for the CAS, but if you want to use it today a lot (but not all, not at all) is shown in the tutorial: [https://mtk.sciml.ai/dev/tutorials/symbolic\_functions/](https://mtk.sciml.ai/dev/tutorials/symbolic_functions/). It basically adds to SymbolicUtils.jl a bunch of stuff like differentiation, function building (“lambdify”), sparsity handling, function registering, etc. It has more than SymEngine and less than SymPy (in terms of a CAS. For symbolic-numerics it has a ton of unique stuff)

---

<div class="post-metadata">

**Author:** ![Libbum](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/libbum/32/3935_2.png) [@Libbum](https://discourse.julialang.org/u/Libbum)\
**Post date:** [February 15, 2021, 4:34pm UTC](https://discourse.julialang.org/t/best-pkg-for-symbolic-mathematics-at-julia/55312/4 "2021-02-15T16:34:14Z")

</div>

[Reduce.jl](https://github.com/chakravala/Reduce.jl) and/or [ModelingToolkit.jl](https://github.com/SciML/ModelingToolkit.jl) may be places of interest for you.

> I am currently using Sympy.  
> The problem is that it was developed in Python.

The fact that it’s Python is not the problem. Maybe it’s slow, but it’s also quite feature rich. You may not necessarily find everything you need in other Julia or C++ packages…

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [March 1, 2021, 3:01pm UTC](https://discourse.julialang.org/t/best-pkg-for-symbolic-mathematics-at-julia/55312/5 "2021-03-01T15:01:16Z")

</div>

Symbolics.jl is now released: [[ANN] Symbolics.jl: A Modern Computer Algebra System for a Modern Language](https://discourse.julialang.org/t/ann-symbolics-jl-a-modern-computer-algebra-system-for-a-modern-language/56251)
