What should we add?
Following a discussion with @doichanj, there is a need for qiskit's symbolic engine to expose an option which prevents the automatic simpliciation of parameter expressions.
For example, there may be situations where A and 1/2*(A+A) lead to different algorithmic outcomes, and it would be preferable if both of these could be expressed using qiskit's symbolic engine.
Sympy addresses this by exposing a flag evaluate=False which can be passed into functions such as Add, Mul, etc. Simplification can then be manually performed later by invoking .simplify() or applying a particular simplification pass.
What should we add?
Following a discussion with @doichanj, there is a need for qiskit's symbolic engine to expose an option which prevents the automatic simpliciation of parameter expressions.
For example, there may be situations where
Aand1/2*(A+A)lead to different algorithmic outcomes, and it would be preferable if both of these could be expressed using qiskit's symbolic engine.Sympy addresses this by exposing a flag
evaluate=Falsewhich can be passed into functions such asAdd,Mul, etc. Simplification can then be manually performed later by invoking.simplify()or applying a particular simplification pass.