Hello everyone,

I am trying to use SymPy for a mathematical projet, where I need 
expressions to be evaluated step-by-step.
Until now, I have always used, for example, sympify("2+2", evaluate=False) 
and all was fine.

But now I am trying to reconstruct an expression from another object that I 
have created and I sometimes get in trouble with the way the `minus` is 
handled. Let me give an example:

Python 3.8.0a2 (v3.8.0a2:23f4589b4b, Feb 25 2019, 10:59:08) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import *
>>> from sympy.abc import *
>>> 
>>> e1 = Mul(Integer(2), Integer(5), evaluate=False)
>>> e1 # all fine here
2*5
>>> print(srepr(e1)) # what I expected
Mul(Integer(2), Integer(5))
>>> 
>>> e2 = Mul(Integer(-2), Integer(5), evaluate=False) # now with -2 instead 
of 2
>>> e2 # Hoops!
-10
>>> 
>>> # yet e2 has not been evaluated to Integer(-10) but its repr() above is 
wrong
>>> print(srepr(e2))
Mul(Integer(-1), Integer(2), Integer(5))
>>> # I'm trying to use expressions in LaTeX documents and there our e2 is 
still wrong.
... latex(e2)
'- 10'

I'm quite surprised that Mul(Integer(-1), Integer(2), Integer(5))  becomes 
"-10" when passed through repr(). This is even more surprising:

>>> init_printing()
>>> e2
-2⋅5

How can I prevent the expression to be represented by repr()/latex() in a 
single integer but keep the -2*5 form?

Many thanks for your help.
Regards,
Jean Abou Samra.

-- 
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+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/9def856d-48c4-4c3e-86d2-e9d9868e6535%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to