Obviously, math has never been perl's strong point, though it is quite capable of doing just the same mathematics calculations as other languages; however it cannot benefit from the high optimizations typically assoicated with, say, FORTRAN. There's been a few modules in the Math:: tree of benefit, but I noticed several lacking areas, such as advanced matrix manipulation, optimization, etc. For example, I needed a matrix decomposition routine that would have been great to have had in perl since I was smoozing data from other sources already in perl, but instead I had to import the data to another program to get results in a timely manner.
I've been thinking of possibly writing a ground-up mathematics library for perl piece by piece, but with two specific goals in mind:
- First, the library should be as drop-in as possible. Need a fast way to multiple two matrices together? You should only need to use one module, and you should be all set. With perl, this isn't a large concern, but it is important later.
- Second, a bit more trickier, each function of the library should have a native perl codebase as well as
a version that uses library hooks to use pre-compiled routines. For example, a matrix multiplication library "Math2::MatrixMultiply" may have subclasses "Math2::MatrixMultiply::Native" and "Math2::MatrixMultiply::MATHLIB", where MATHLIB is one of the numerous free FORTRAN and C math that are around. This allows one that might start by using the native perl features to develop quick programs, but then easily switch to a compiled base to gain speed benefits if the program becomes heavily used. By default, if you only "use Math2::MatrixMultiply", you'd get the perl native version, thus keeping in step with item 1 above.
Certainly there's a lot to consider here, and I've only just prodded at the idea myself. But do people think there might be enough interest into developing this type of library?
-----------------------------------------------------
Dr. Michael K. Neylon - mneylon-pm@masemware.com
||
"You've left the lens cap of your mind on again, Pinky" - The Brain
It's not what you know, but knowing how to find it if you don't know that's important