Does this math manipulation program exist already?

math, python

Solution

There are several Mac apps that can do this.

The oldest is "Graphing Calculator", which used to come free with the Mac OS and has an interesting genesis story.It still lives on and now and has a Windows version, but for some inexplicable reason the developers seem to have a deliberate campaign to minimise their sales by having an extraordinarily unattractive website and no real free download version - though you can download a free "viewer" app that will show you some of what it can do, and if you stop the rolling demo it will let you manipulate the equations in the way you describe.

You can buy a "lite" version of Graphing Calculator from the Mac App store which will easily do everything you need, as well as a cut down version which looks like it does all the algebraic manipulation stuff with out graphing called "Equation Calculator".

Problem

I do a ton of pencil and paper math for my job, which can get annoying and hard to keep track of. And I haven't had a fun programming project in a while, so I thought of something, and want to know if it exists yet. I want to create an algebra manipulation program, where I can move pieces of the equation around with my mouse, and it displays the change immediately, and the program is intuitive. For example, I if I had (ax^3 + a^2*y^4), I could drag one of the a's outside of the parenthesis and it would know to turn it into a(x^3 + a*y^4). Just to be clear: I'm not trying to make something that solves an equation analytically. I know Mathematica and a million other programs do that. In the thing I'd like to make, you'd still be solving it (often I'm not even "solving" something per se, really just trying to get it into a "pleasing form". Which isn't something a program can really do). I've checked out MathCAD and it seems cool, but still not like what I'm talking about. I've checked out sympy as well (and I may end up using it if I make this) but it still doesn't have what I'm talking about. So, does anyone know if this exists already? I'd like to do it but I don't want to reinvent the wheel. Thank you!!

Original source