It looks like you have written a recursive descent parser. And a display.
If you were running Maxima on a Pi, (see sourceforge for download)
you would have a parser and a display without writing it yourself.

  Just looking at the code briefly, I think you have to decide
if you actually meet your own specs.  I don't know what sympy will
provide, so maybe it is really OK.

For example,

a*b*c*d*e = a*g*c*d*f
divide by b*d  do you get

a*c*e = a*g*c*f/b  ?


or more seriously,  (x^2-1)/(x+1)   to get (x-1) ?

I would be surprised if you were the first person to write
a parser like this in Python, but it is a learning experience.

Good luck.





On Monday, May 25, 2020 at 12:49:09 PM UTC-7, Jonathan wrote:
>
> As promised here is a git repository 
> <https://github.com/gutow/Algebra_with_Sympy> with a myBinder 
> demonstration of what I have so far. Once I extend it to handling 
> inequalities, it will more than meet my use case needs.
>
> Some have asked for more specifics. Here is a list of some of the more 
> important requirements:
>
> 1) Can be installed in a plain vanilla python3 virtual environment via pip 
> or simply as a python file to be loaded.
> 2) Does not conflict with SymPy or NumPy.
> 3) Will load and run fast enough to avoid user complaints on a Raspberry 
> Pi. One initial use case is being combined with Pi data acquisition 
> hardware and python tools for controlling them.
> 4) Makes sense to scientists in the fields of Physics, Chemistry and 
> Biology.
>
> Thanks,
> Jonathan
>
> On Thursday, May 21, 2020 at 8:30:42 AM UTC-5, Jonathan wrote:
>>
>> Dear All,
>>
>> I have a use case where I need something lighter weight than the whole of 
>> Sagemath. I think SymPy + the ability to handle math on symbolic equations 
>> as Sagemath does it might be enough. Thus I wanted to see if I could 
>> extract from Sagemath the code supporting math on symbolic expressions and 
>> overlay that on SymPy or at least use that as a template. Can somebody 
>> please point me to the place to start looking in the codebase?
>>
>> To make sure people understand what I am interested in, here is a simple 
>> example of the ability I would like to extract:
>> >>>eq1 = p*V==n*R*T
>> >>>eq1
>> p*V=n*R*T
>> >>>eq2=eq1/V
>> >>>eq2
>> p=n*R*T/V
>>
>> Thanks,
>> Jonathan
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/579775eb-c74a-4dcc-a76c-8a8ebe6a5ca6%40googlegroups.com.

Reply via email to