The search for polynomials
First, some exciting news that I’ve added the Pola project as my first project. There is a Subversion repository for it as well. We’ve been talking about getting a site set up around Pola, with examples and user’s guides and maybe some interactive features, so this is a very small first step towards that.
Code-wise, what I’ve been working on lately is finally trying to do bounds inference properly in the implementation. The bounds inference still isn’t entirely done and what’s there still isn’t working entirely perfectly, but it is excitingly close! Type in any well-typed function which relies only on inductive data types and it will give you polynomial bound on the running time! Coinductive data types will come soon.
In an effort to making my “boring” research blog more interesting, I’ve now even got a screenshot! Is code any more exciting when it’s in screenshot form?
The biggest problem I’ve had so far is writing my own Polynomial data type in Haskell. I don’t even need anything fancy: I need addition, subtraction and multiplication of polynomials over arbitrary variables. Sadly I haven’t found anything suitable and had to build my own. I’m a little out of my depth here: it would be a pretty big understatement to say that I’m ignorant when it comes to computer algebra. It’s a virtual certainty that I’m doing my data representations and arithmetic operations in the least efficient way possible. But I can’t worry too much about; this isn’t really what my research is about.
If I find time today I think I’ll go through some computer algebra systems to find one which has a suitably free licence and has a reasonable Foreign Function Interface (so that I can use it painlessly from Haskell). Does such a thing exist?
Have you considered taking a look at Aldor for your polynomial requirements?
I’ve considered it, but I haven’t been able to look at in depth (Stephen forced Aldor on us surprisingly little in his course). If it’s got a nice cross-language interface I’m all over it, though.
[…] for the problem I mentioned last time about having to implement my own polynomial arithmetic: I just rewrote it myself and I’m […]