Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration of MatchPy's algorithms #28

Open
Upabjojr opened this issue Oct 19, 2019 · 0 comments
Open

Integration of MatchPy's algorithms #28

Upabjojr opened this issue Oct 19, 2019 · 0 comments

Comments

@Upabjojr
Copy link

Upabjojr commented Oct 19, 2019

MatchPy is a library claiming to implement state-of-the-art associative-commutative pattern matching in Python.

In particular, they claim:

We use the Hopcroft-Karp algorithm [HK73] to find an initial maximum
matching. However, since we are also interested in all matches
and the initial matching might have incompatible substitutions, we
use the algorithm described by Uno, Fukuda and Matsui [FM94],
[Uno97] to enumerate all maximum matchings.

MatchPy has been integrated into SymPy. MatchPy is also able to generate Python decision tree. See the generated RUBI decision tree. It would be nice to see how it would work with Julia's metaprogramming.

MatchPy's code generator has been ported into C++ as part of SymEngine (see the matchPyCpp subfolder on github).

The Hopcroft-Karp and Uno-Fukuda-Matsui algorithms have been ported into C++ (although the current lack of support for coroutines makes the code pretty slow). See the Hopcroft-Karp implementation and the Uno-Fukuda-Matsui implementation in SymEngine, which are translations of MatchPy's Python code.

Is there the possibility of integrating these algorithms into Rewrite.jl?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant