I was also discussing this Nishant in real life, SymEngine **is not**
a C++ clone of SymPy, rather SymEngine aims to be very fast core for
SymPy and hopefully other Computer Algebra Systems. A major reason for
the success of SymPy is that it is written in Python and which makes
it is easy for someone to understand and extend even if she/he is not
an expert programmer. The issue with python is that it is slow.
Programs also follow something like Pareto principle, 10% of the code
takes 90% of the time and it makes sense to **only** optimize that 10%
of code. You should move that 10% of code in SymEngine and leave the
rest in SymPy. Another test of determining if some code belongs to
SymEngine will be asking the following questions:
* Is this code settled? In the sense that there are no major bug
reports for code from a long time and we aren't expecting any api or
structural changes.
* Does this code do a lot of heavy lifting?
* Is there are lot of code which depends on this part of the code?
If the answer is yes for all three questions only then it is strong
candidate for SymEngine. Though I'm involved in the efforts with
SymEngine, hence I request Ondrej to express his thoughts on my
proposed test.
As far as imageset is concerned, though the solveset depends on it, it
doesn't do a lot of heavy lifting and it mainly serves as a
representation for the solutions. Unless you are planning to implement
solveset in SymEngine, having imageset there won't help much.
>
https://groups.google.com/d/msgid/sympy/31bf572d-d301-40da-93b7-5831f9552566%40googlegroups.com.