Sooo... I think the title explains it all. I've been working on some of the underlying routines for a Computer Algebra System for a while now (parsing, multiply, combine, etc.)
But the biggest roadblock I've had was a multivariate factoring algorithm. I hadn't been able to find anything but I ended up creating my own. I'm not sure if someone else has already thought of this, but the idea is to make a multivariable polynomial a single variable polynomial using primes. For example, if we have the polynomial 3 * x ^ 2 * y + 5 * x * y. So, you substitute 7 in for y. Why 7? It's a prime number, so it has no factors. Suddenly we have a single variable polynomial and that's relatively trivial to factor. I use a prime number so it's easy (possible) to pick out y's different exponents after you factor it.
Anyway I probably did a horrible job explaining it but anyway. Here's a list of what I have to do:
Actually write factoring algorithm.
Write a polynomial division algorithm.
Some limited support for polynomial fractions.
Hooking things together.
Anyway I would welcome anyone suggesting a better algorithm, any suggestions or pre made routines or something.
But the biggest roadblock I've had was a multivariate factoring algorithm. I hadn't been able to find anything but I ended up creating my own. I'm not sure if someone else has already thought of this, but the idea is to make a multivariable polynomial a single variable polynomial using primes. For example, if we have the polynomial 3 * x ^ 2 * y + 5 * x * y. So, you substitute 7 in for y. Why 7? It's a prime number, so it has no factors. Suddenly we have a single variable polynomial and that's relatively trivial to factor. I use a prime number so it's easy (possible) to pick out y's different exponents after you factor it.
Anyway I probably did a horrible job explaining it but anyway. Here's a list of what I have to do:
Actually write factoring algorithm.
Write a polynomial division algorithm.
Some limited support for polynomial fractions.
Hooking things together.
Anyway I would welcome anyone suggesting a better algorithm, any suggestions or pre made routines or something.