Ok, nice! On Fri, Aug 2, 2013 at 7:39 PM, Jason Moore <[email protected]> wrote: > There isn't any reason not to make a pull request. You can always close it > after the tests run. > > > Jason > moorepants.info > +01 530-601-9791 > > > On Fri, Aug 2, 2013 at 12:48 PM, Cristóvão Sousa <[email protected]> wrote: >> >> Hi, >> >> Is it possible to execute the Travis or SymPyBot tests without making a >> PR? >> >> I would like to run the whole test set prior to make a PR, however, tests >> are too slow my poor laptop (and they seem to burn it :/ ). >> >> On Friday, July 12, 2013 8:36:48 PM UTC+1, Ondřej Čertík wrote: >>> >>> Hi Cristóvão, >>> >>> Excellent. Let us know if you need help with submitting a PR. >>> >>> Ondrej >>> >>> On Fri, Jul 12, 2013 at 1:32 PM, Cristóvão Sousa <[email protected]> >>> wrote: >>> > Ok, I've added CSE of Add and Mul arguments (only commutative terms): >>> > http://nbviewer.ipython.org/5986996 >>> > >>> > It runs faster compared to current sympy.cse, even more if applying it >>> > to >>> > large expressions. >>> > However, it still lacks a lot of features, which I'll try to address >>> > using >>> > sympy.cse unit tests. >>> > >>> > >>> > On Wednesday, July 3, 2013 2:52:13 PM UTC+1, Cristóvão Sousa wrote: >>> >> >>> >> Forwarded from PyDy mailing list, >>> >> https://groups.google.com/forum/#!topic/pydy/PjZ9SP8PYDA . >>> >> >>> >> >>> >> >>> >> Hi, >>> >> >>> >> I'm posting here because of one of GSoC 2013 ideas, "Efficient Code >>> >> Generation". >>> >> >>> >> You stated that "Common subexpression elimination (cse) takes a long >>> >> time >>> >> (>1 hour) to run on systems of equations that are derived in a very >>> >> short >>> >> period of time (< 1 minute). This needs to be improved." >>> >> [https://pydy.org/gsoc_2013_ideas#efficient_code_generation] >>> >> >>> >> Indeed, I've verified that myself on my work on SymPyBotics >>> >> (https://github.com/cdsousa/sympybotics), a tool I'm developing to >>> >> help me >>> >> on my PhD studies. >>> >> So, I've developed a kind of CSE, faster than SymPy CSE though less >>> >> general and with some quirks. >>> >> Such CSE functionality is implemented in SymCode package >>> >> (https://github.com/cdsousa/symcode). >>> >> >>> >> Be aware that both SymPyBotics and SymCode are badly documented and >>> >> probably reimplement some functionalities which could be taken from >>> >> SymPy/PyDy (and I probably implement them in worse ways :) >>> >> >>> >> The cse core function is "fast_cse()" which can be found in >>> >> symcode/subexprs.py >>> >> (https://github.com/cdsousa/symcode/blob/master/symcode/subexprs.py.) >>> >> (It uses Subexprs class, which can be used alone to store intermediate >>> >> variables in recursive computations). >>> >> >>> >> I've profiled SymPy cse and noticed that the main time consumption is >>> >> due >>> >> to "count" and "subs" functions, so I tried a different approach. >>> >> First, fast_cse function reversely parses the expression tree and >>> >> recreate >>> >> each unique operation with non-atom arguments substituted by temporary >>> >> symbols (this is the "collect" phase). >>> >> Each unique operation is stored on an "unique_op:tmp_symbol" >>> >> dictionary. >>> >> For example, >>> >> a + b*c + cos(b*c) >>> >> is transformed into >>> >> t2 >>> >> while the dictionary holds >>> >> a + t0 + t1 : t2 >>> >> cos(t0) : t1 >>> >> b * c : t0 >>> >> Additional, match of multiple argument Mul and Add operations is made, >>> >> in >>> >> a similar way to SymPy cse, although argument commutativity is always >>> >> assumed. >>> >> Then, in the "get" phase, the expression tree is recreated from the >>> >> dictionary while temporary "used more than once" symbols are >>> >> maintained. >>> >> The example output will be >>> >> ( [(t0, b*c)], a + t0 + cos(t0) ) >>> >> This is much faster than SymPy CSE although output is generally >>> >> different. >>> >> Also, it still doesn't work with "iterable" arguments, and, as said, >>> >> non-commutativity is not respected . >>> >> >>> >> >>> >> I would love to have time to work on this, or to work on SymPy CSE >>> >> optimization directly, but I'm currently in work overload. >>> >> Nevertheless, I'm showing you this since some ideas can be useful. >>> >> >>> >> Best regards, >>> >> Cristóvão Sousa >>> >> >>> > -- >>> > 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. >>> > For more options, visit https://groups.google.com/groups/opt_out. >>> > >>> > >> >> -- >> 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. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> > > > -- > You received this message because you are subscribed to a topic in the > Google Groups "sympy" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/sympy/mNsEVVLFVGU/unsubscribe. > To unsubscribe from this group and all its topics, 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. > For more options, visit https://groups.google.com/groups/opt_out. > >
-- 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. For more options, visit https://groups.google.com/groups/opt_out.
