> 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.

Reply via email to