> > > > We only need things > >> like multi-pattern unification and AC unification. >> > > I do not know what exactly these are. > I read that AC unification can be polynomial, which sounds like a > potential performance bottleneck; do we really need it?
Given expression (like sin(2*x) + cos(2*x)) we need to match against many possible patterns (like, every known trig identity). It's possible to store all of the patterns in a good data structure so that we can check them all simultaneously (see Trie for something similar). We need to do this matching in a way that is aware of commutative operators (like +). Naive solutions to this are very slow. There exists sophisticated solutions. > > Note that there are mature efficient projects that do this (and lots of >> other things) already. Elan and Stratego/XT come to mind. They're heavy >> dependencies though. >> > > I'm not sure what the consensus on dependencies is, but I myself think > that a dependency is okay if we can either make sure that a specific, > tested version is used, or if we expect the APIs to be stable and the need > to fork for bug fixes or extensions is nonexistent. When I say heavy I mean that these are straight research projects. They're very good but there is virtually no distribution support here. -- 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/CAJ8oX-F%3D2aYDK1KF-%3D2PNwqnKXvUqiaoY88kQrWtD1h-PMhzZA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
