I think there might be some issues with MatchPy when a constraint object is shared across patterns. Probably every pattern needs to have its own CustomConstraint objects even if they share the same constraints.
How do you create a new repo? How do you split the subfolder a keep the git history? On Tuesday, February 1, 2022 at 12:12:40 a.m. UTC+1 Aaron Meurer wrote: > On Mon, Jan 31, 2022 at 2:01 PM Oscar Benjamin > <oscar.j....@gmail.com> wrote: > > > > On Mon, 31 Jan 2022 at 20:53, Aaron Meurer <asme...@gmail.com> wrote: > > > > > > On Mon, Jan 31, 2022 at 2:16 AM Oscar Gustafsson > > > <oscar.gu...@gmail.com> wrote: > > > > > > > > Dear all, > > > > > > > > two issues that I've been thinking about that are maybe related. > > > > > > > > 1. It seems like the maintenance of mpmath is a bit on hold. I seem > to recall that it has been discussed for SymPy to take over the maintenance > of it. Is this correct? Is now the time? (I assume that maybe we do not > have the competence to actually develop it further, but more sorting out > the few bugs that emerge etc.) > > > > Taking over maintenance of mpmath has been discussed and it is agreed > > to do that. It just needs someone with the bandwidth to figure out > > exactly how transferring a repo works. Ideally we preserve all issues > > and other things in the migration. > > > > > > 2. It has been discussed adding matchplay as a dependency. Related > to that: would it make sense to move the rubi code out to its own > repository? The code seems highly useful if/when it works and this can > maybe spark some interest in it (or at least reduce the size of SymPy...). > Then, matchpy can easily be made a dependency there. (And possibly for the > remaining sympy as well, as it is sort of independent, but definitely the > largest direct benefit is currently with rubi.) > > > > > > > > Both these require that "someone" (at least Aaron I assume) creates > repos and are willing to assist in setting up deployment chains etc. I may > personally not be willing to take on a larger role for any of these repos, > but can definitely be part of them and assist in moving rubi. > > > > > > I'm in favor of moving RUBI out. IMO it should have been developed > > > that way in the first place. We should move it back in once it is in a > > > functioning state, but right now it mostly doesn't work and just adds > > > unnecessary bloat to the library. > > > > I'm also in favour of moving RUBI out. More importantly than bloat I > > think it reflects badly on SymPy in general if the main project ships > > with things that don't work yet. > > > > I would like it to be developed but it isn't being developed currently > > and I don't think having it in the sympy codebase helps it to get > > developed. If it was clearly outside then maybe even someone would > > fork it and work on it independently more easily. > > My question is just how (dis)functional is RUBI in SymPy right now? Is > there any way someone could be using the RUBI part of SymPy in its > current state? Removing it would break such code if they were. > > I just tried > > from sympy.integrals.rubi.rubimain import * > rubi_integrate(sin(x), x) > > and it took 8 minutes (no joke) to produce -cos(x). I then tried > > rubi_integrate(sin(x)*cos(x), x) > > and it immediately produced an error "AttributeError: 'NoneType' > object has no attribute 'is_Relational'" > > I then did > > rubi_integrate(x, x) > > it also took 8 minutes, then it produced Integral(0, x), which is > obviously completely wrong! > > So based just on that, parts of it don't work at all, and other parts > "work" but are so slow that it's almost unusable (to be fair, the > existing integrators in SymPy can also sometimes be slow, although > generally for much more complicated integrals). The wrong answer is > the most worrying to me. Even if someone is willing to wait 8 minutes, > the integrator shouldn't be producing results that are incorrect. > > I'm obviously not really exercising the true capabilities of the > integrator here, but if very simple integrals don't work, that isn't a > good sign for more complicated ones. And given that RUBI is basically > a huge lookup table, how can we be sure of correctness, unless there > is extremely extensive testing. It looks like there are a lot of tests > which are copied from the main RUBI test suite. But are they passing? > Is it even physically possible to tell if every integral takes 8 > minutes to run? Is the above integrate(x) example tested, or were > integrals that are "too trivial" overlooked? > > If anyone is actually using sympy.integrals.rubi, or even part of it, > please let us know. For now, I can't see how removing it would break > too much user code. > > Aaron Meurer > > > > > -- > > Oscar > > > > -- > > 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 sympy+un...@googlegroups.com. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/CAHVvXxSvxpTq6r4yfoy5P5nsFtMtXcq2j3n1s_2mFOoRPDw%3DRw%40mail.gmail.com > . > -- 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 sympy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/cb62b0cf-cc2b-489a-99cf-68777a18bb0cn%40googlegroups.com.