Hi Ondrej, On Monday, 16 November 2015, Ondřej Čertík <[email protected]> wrote: > > > On Sun, Nov 15, 2015 at 1:21 PM, Dibyendu Majumdar > <[email protected] <javascript:;>> wrote: > > > > > > On Sunday, November 15, 2015 at 3:17:14 PM UTC, Ondřej Čertík wrote: > >> > >> On Fri, Nov 13, 2015 at 5:50 PM, Dibyendu Majumdar > >> > I am keen to develop a Lua/Ravi binding for symengine. I would like to > >> > understand a) how symengine compares to sympy with regards to > >> > functionality, > >> > and b) whether the C API of symengine is complete, i.e. does it expose > >> > all > >> > of the features of symengine. > >> > >> Thanks for your interest. To answer your questions: > >> > >> a) currently the functionality is limited to roughly sympy.core and > >> matrices. We are developing series expansion now. If there is > >> particular functionality that you would like, let us know. > >> > > > > Ok thanks, I don't have a specific need right now, but can I assume that > > over time symengine will support all of the sympy capabilities? I would > like > > to be able to provide the same to Lua users. > > It is my goal to eventually have all the core symbolic capabilities, > to be specific, the scope of the C++ SymEngine repository is roughly > along the lines of sympy.core, sympy.functions, sympy.polys, > sympy.series, sympy.matrices, sympy.assumptions, sympy.integrals, > sympy.solvers. SymPy's strength is in having the "batteries included" > (like physics, tensors, geometry, ...), i.e. having modules for all > kinds of useful things, and it all works together. My goal is to > figure out how SymPy can eventually use SymEngine, or work with > SymEngine. Either way, those modules would probably best live as > separate repositories, depending on (a particular version of) > SymEngine. Right now I am concentrating on subsets of the above scope, > things that people use the most and that has benefits of the speedup > that one gets with SymEngine, as well as things that people might want > to use from other languages (like Lua in your case), since that > increases the community of users and developers, but even in that case > we are trying to have one of the fastest implementations in there. > > That sounds great!
> > > >> > >> b) The C API is doesn't yet expose all the features of symengine. You > >> can, or we can easily expand it as needed. > >> > > > > I can also directly use the C++ API if that is stable enough. > > We are not intentionally breaking anything, but until we hit the > version 1.0, things can change. But typically changes are not > difficult to fix. I would chose either C++ or C, depending on what is > easier to wrap. For Python we use C++, since Cython support for it is > good. For Julia we use C, since that's what makes the wrappers simple > (C++ support for Julia is still a bit tricky). > > C API would be easier but from what I can see the C wrapper is not complete, so I will use the C++ api. > > > >> > >> Your Lua repository can then be hosted at: > >> > >> https://github.com/symengine > >> > >> probably as "symengine.lua" or something like that. > >> > > > > That would be great. Please let me know the best way to proceed. My plan > is > > to start building out the bindings and keep expanding as symengine > > implementatin grows. > > Just create a repository under your name first, get it tested by > Travis etc. Once you have something that works and would like to have > it hosted by us, just ping us, and we can move it to the `symengine` > organization. The Python bindings are the most developed, so you can > look there for inspiration how to test things on Travis robustly (e.g. > we test against Sage, which is pretty big to install, etc.). Cool, will get in touch when I am ready (will be a few months I think). > > Let me know if you need any help. You can also ask on Gitter > (https://gitter.im/symengine/symengine), we have a pretty active > channel there. > > Thank you! regards Dibyendu -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CACXZuxfMcmxeY3rzuiP-Ui1ZquR5xct3YUomwXm7qPsPBpRtiQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
