PR #2355 submitted ;)

On Friday, August 2, 2013 8:12:51 PM UTC+1, Aaron Meurer wrote:
>
> Yes, as Jason said, it's best to just submit a pull request as soon as 
> you have code, so that we can see it and start commenting on it. 
>
> But to answer your actual question, you just need to enable the Travis 
> hook in your GitHub. If you look on the Travis site there are 
> instructions. 
>
> Aaron Meurer 
>
> On Fri, Aug 2, 2013 at 2:00 PM, Ondřej Čertík 
> <[email protected]<javascript:>> 
> wrote: 
> > On Fri, Aug 2, 2013 at 10:48 AM, Cristóvão Sousa 
> > <[email protected]<javascript:>> 
> wrote: 
> >> Hi, 
> >> 
> >> Is it possible to execute the Travis or SymPyBot tests without making a 
> PR? 
> > 
> > You can setup Travis for your own branch at github. 
> > 
> > You can run sympy-bot locally I think. You can also just execute tests 
> > using bin/test. 
> > 
> > Ondrej 
> > 
> >> 
> >> 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] <javascript:>. 
> >> To post to this group, send email to [email protected]<javascript:>. 
>
> >> 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] <javascript:>. 
> > To post to this group, send email to [email protected]<javascript:>. 
>
> > 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.


Reply via email to