On Fri, Jun 29, 2012 at 1:06 PM, Sergiu Ivanov <[email protected]> wrote: > On Sun, Jun 24, 2012 at 10:41 AM, Sergiu Ivanov > <[email protected]> wrote: >> >> On Sun, Jun 24, 2012 at 8:32 AM, Aaron Meurer <[email protected]> wrote: >>> >>> And lastly, if anyone has any thoughts on how we could canonically >>> order the arguments of Add and Mul independent of hash values, but is >>> still just as fast as hash values, I would love to hear it. If we >>> could do that, it would make fixing these errors a lot easier (on the >>> other hand, maybe we would be better off design-wise if we made >>> everything .arg ordering agnostic). >> >> From my recent experience, using sympy.utilities.misc.default_sort_key >> is a nice way to canonically order things. As far as I can see in the >> code, it doesn't seem to rely on hashes for sorting; instead, it >> provides sort keys which are tuples often (not sure how often) >> including native numbers and strings. I *think* it's not going to be >> just as fast as hash-based ordering, but, I guess, it's going to be >> one of the fastest approaches, because, eventually, simple native >> types will be compared. > > So, what is the official position as far as sorting the arguments of > Mul and Arg is concerned? I have seen you say that things should be > made to work independently of the ordering; is that the current > strategy?
I think that there is a huge speed penalty for sorting the actual arguments. So I think that the only solution really is to not sort the argument, but make all results hash independent, by sorting the printing (which we do) and fixing other bugs. Ondrej -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
