> I'm not much of a symbolic algebra user myself really (I just got feeling > when I wrote this, really xD) so I'm asking you all what kind of features you > would like to be added for you to consider using this? I need a carrot > (someone else's needs) basically :-D
The #1 problem with symbolic computation is that most of the obvious / easy algorithms suffer from intermediate expression swell, to the order of exponential space and time requirements. I'm not exaggerating; in my field, Gröbner bases, it's been proven that [in general you need *doubly* exponential space and time](https://mathoverflow.net/questions/99114/complexity-of-groebner-bases). Matrix computation is not that bad, but even there the polynomial complexity is enough that people do funny things for sufficiently large matrices, such as black box computation or even Monte Carlo methods. My point is, if you want to implement this in pure Nim, OK, fine, but unless you're willing to engage in cutting edge research, or you decide to re-implement things that already exist in C, C++, LISP, etc., you won't come anywhere near the performance of packages such as Macaulay, Maple, Mathematica, Maxima, etc. Especially Maxima, which comes from research done at MIT's Artificial Intelligence Lab in the 1950s. You would do better to build an interface to pre-existing packages, as someone else pointed out. GMP in particular seems to be a gold standard for arbitrary-size integers in the open-source world. I saw where you said above that you're a little apprehensive about doing that, and I can understand; a PhD student of mine had a devil of a time getting some of these things to compile in Windows 4 or 5 years ago, and the Sage project spent more than a year getting Singular 4.x to work with it. Still, it's doable in principle. Please don't misunderstand; the project is great idea, and if it really interests you I can point you to some PhD programs in Canada, the US, and Europe. :-) I just want you to know what you're getting into before you find yourself drifting away from a project that turned out to be harder than you first thought, and it becomes abandonware. Probably be best to decide in advance what you can implement and what compromises you're willing to settle for, so, inquiring here is a very good idea.