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
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.