Avoid sorting args in Python module Sympy

后端 未结 1 749
旧时难觅i
旧时难觅i 2020-12-21 09:49

I am currently developing a differential operator for sympy that can be placed in matricial form. In this case the order of the args list when creating a

1条回答
  •  礼貌的吻别
    2020-12-21 10:32

    Why is the arg ordering important for it to be correct?

    The only way to prevent this is to set your symbols to be non-commutative (x = Symbol('x', commutative=False)). SymPy objects compare by comparing the args, so for x*y*z == y*x*z to work, the args have to be sorted canonically. There have been some attempts to get this working without explicit sorting (mainly for performance reasons), but note that even if we did that, there would be no guarantee at all about the arg order, especially if you perform any kind of operation on the expression. It is very common for functions to rebuild expressions in SymPy, which would in general use some other unrelated order from the original.

    0 讨论(0)
提交回复
热议问题