There is a nice page on the internet called Essential Math that has a nice collection of mathematics topics that are useful for the computational geometry and other hard aspects of computer game programming. It's interesting just to see how the emphasis of mathematical applications is changing the relative importance of various techniques.
One of the topics, which I'd never heard of before is something called dual numbers. Well, "that's something with an air of novelty", I thought, so I read up a little. Turns out, that while it does get some attention currently, it isn't too new an idea. In fact, it's just a special case of Liebnitz, Newton, and Archimede's ideas of infinitessimal arithmetic. I've written about infinitessimals some last year. For dual numbers, one is really just doing arithmetic with numbers of the form
\[ a(x) + b(x) dx \]
using the standard nilpotent infinitessimal product rule that
\[ dx^2 = 0.\]
So, while it seems a bit like magic at first pass, you really aren't getting any farther allong, than you are with standard calculus. Some people have said that this avoids the need for any symbolic differentiation, but any good graduate applied-math student should be able to point out that differentiation of polynomials doesn't require numerical differentation techniques anyway -- it can all be done with matrix operators.
That's not to say that infinitessimal arithmetic isn't going to be a useful trick sometimes -- I think it really is. But dual_numbers are just a new coat of paint on an old reliable work-horse.