sample code and/or comparisons to other libraries

83 views
Skip to first unread message

Joe Wezorek

unread,
Jun 10, 2019, 4:39:02 PM6/10/19
to symengine
Hi I understand there is no formal documentation for symengine but was wondering if there is any publically posted examples of usage?

Also how does symengine compare to ViennaMath, SymbolicC++, and GiNaC in terms of features, performance, and robustness?


Joe

Ondřej Čertík

unread,
Jun 10, 2019, 5:17:18 PM6/10/19
to syme...@googlegroups.com
Hi Joe,

On Mon, Jun 10, 2019, at 2:39 PM, Joe Wezorek wrote:
> Hi I understand there is no formal documentation for symengine but was
> wondering if there is any publically posted examples of usage?

There are examples of usage in the benchmarks directory and you can use the tests (symengine/tests) to see how to use the features. Alternatively you can look at the Python wrappers and how they are used, e.g., in SymPy.

>
> Also how does symengine compare to ViennaMath, SymbolicC++, and GiNaC
> in terms of features, performance, and robustness?


It's been a few years I've done a comparison, but from what I remember:

* GiNaC: SymEngine is faster (you can run benchmarks yourself in the benchmarks directory) and BSD licensed (GiNaC is GPL). Regarding the features, I think that's quite comparable, although SymEngine has some nice features such as interfacing other libraries like Piranha for polynomials, or LLVM code generation which I think GiNaC didn't have the last time I checked. I think SymEngine's design is a bit simpler, but that might be my biased opinion.

* SymbolicC++: features were quite limited, the library does not seem to be actively developed, and I think it was very slow when I tried it, but I could be wrong. It's GPL licensed.

* ViennaMath: Does not seem to be developed anymore, and features are limited.

Ondrej

Isuru Fernando

unread,
Jun 10, 2019, 11:33:39 PM6/10/19
to symengine
To add to what Ondrej said, GiNaC has more features like integration, assumptions, simplification, pattern matching, non-commutative objects etc. Performance wise, SymEngine is better than GiNaC.

Isuru
Reply all
Reply to author
Forward
0 new messages