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.


Reply via email to