Dave Tweed wrote:
> But there's a lot of problems, probably more in the hazy region between
> science & engineering, where `numerically intensive' algorithms are
> developed which don't look anything like existing classical techniques.
> Here the issue is to generate CORRECT results REASONABLY QUICKLY, ie, the
> time has to be within a factor of 3-4 times of a C implementation but this
> slowdown is acceptable if you are more confident your infant algorithm is
> correctly implemented in your infant code.
Let me give an example here that demonstrates a need for speed and one
reason why some people still use FORTRAN.
One of my pervious jobs was developing new receiver techniques for
digital communication systems. Given a description of the communication
channel we were working with (point-to-point mincrowave, cellular, etc)
we could generate our theoretical error rate curves bases on system
parameters. Our job was see how close we could get to the curve; ie.
there isn't a concept of correct results, just degrees of success. We
would develop a solution and then run a simulation of this solution
against a set of system parameters (generally signal to noise ratio).
For a 99% confidence in our results, we would run our simulation until
we got 100 bit-errors. For theoretical errors rates to 1e-5, this would
require about 10000000 input points (I think I did my math right, it's
been a while since I did this...). Needless to say, these would take a
while. Even a 1.5 times slowdown would mean that we could run less
simulations per day. For numerically intensive applications like this
where running time is measure in hours, speed really does matter. A
friend of mine uses FORTRAN just for this reason.
Looking back, I would have really liked to have used Haskell. Infinite
lists map very nicely into DSP and digital comm methods; I was able to
boil down a failrly ugly C funtion to 3 lines of Haskell using infinite
lists.
--
Matt Donadio ([EMAIL PROTECTED]) | 43 Leopard Rd, Suite 102
Sr. Software Engineer | Paoli, PA 19301-1552
Image & Signal Processing, Inc. | Phone: +1 610 407 4391
http://www.isptechinc.com | FAX: +1 610 407 4405