HPAC / matchpy

A library for pattern matching on symbolic expressions in Python.
MIT License
164 stars 25 forks source link

ANN: MatchPyCpp port to C++ #53

Open Upabjojr opened 5 years ago

Upabjojr commented 5 years ago

ANNOUNCEMENT:

I have ported parts of MatchPy into C++: https://github.com/symengine/symengine/pull/1497

hbarthels commented 5 years ago

Thank you very much for letting us know! Are you planning to do any experiments to compare the performance of the generated C++ code to the generated Python code? I would be curious about that.

Upabjojr commented 5 years ago

Are you planning to do any experiments to compare the performance of the generated C++ code to the generated Python code? I would be curious about that.

At the moment I'm quite busy, I hope to get a GSoC student to port RUBI into C++.

Currently I'm not sure about the speed-up of C++, as many of the generators are solved (i.e. instead of yield value they return the array of values, performing all combinations). There are some solutions for this problem, but I would like to first wait and see whether coroutines will be added to the C++20 standard. Alternatively there are some tricks to force the usage of generators into C++.

If this problem is solved, I expect C++ to be a lot faster.

MANIKTANEJA3 commented 4 years ago

@Upabjojr if the issue is still persisting and you would want a contributor to work on it I am available please let me know the pre-requisite for the same and i'd be happy to contribute.

Upabjojr commented 4 years ago

Are you willing to port the code to C++20?

MANIKTANEJA3 commented 4 years ago

Sure I’d need guidance on the same and will have to check for the methods but am in for it

MANIKTANEJA3 commented 4 years ago

I’ve opened a thread on the forum should I propose another application or should I start working on it? Please guide me as the deadline is approaching . Thank you

On Sun, 22 Mar 2020 at 2:38 PM, Francesco Bonazzi notifications@github.com wrote:

If you're interested, open an issue in SymEngine or a thread on SymPy's forum: https://groups.google.com/forum/#!forum/sympy

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/HPAC/matchpy/issues/53#issuecomment-602168700, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALW2JZBHQHQCP73DDPFBN4LRIXIRLANCNFSM4G5AYO3Q .

MANIKTANEJA3 commented 4 years ago

Also @Upabjojr I've read through your work and the implementations before starting off to work on the port. I've also read through the following repository https://github.com/luncliff/coroutine/tree/master/interface/coroutine . Correct me if I'm wrong here ; The steps to port the code is to pick any function create a header file for the same and then the implementation? because i saw both (.h) and (.cpp) files in SymEngine's repository.