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<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<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<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<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<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<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 sympy+un...@**googlegroups.com. >> > To post to this group, send email to [email protected]. >> > Visit this group at >> > http://groups.google.com/**group/sympy<http://groups.google.com/group/sympy>. >> >> > For more options, visit >> > https://groups.google.com/**groups/opt_out<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 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.
