Gaussian RNG?, numerics in general...



>>>>> "Liam" == Liam M Healy <Liam.Healy@nrl.navy.mil> writes:

    Ray> Since I'm just converting existing Fortran code to Lisp, I don't see
    Ray> that there's any real work involved, unless f2cl is broken.  All of
    Ray> the Fortran code I've converted has test drivers, and the converted
    Ray> code has produced the expected results.

    Liam> In my experience, conversions of this type end up being a whole lot
    Liam> harder than one would like, but it's good that you've had success.
    Liam> And, there is the ongoing maintenance/synchronization issue.  This
    Liam> requires active knowledgeable participation, lest the different
    Liam> language versions get skewed.

I think this would be true if the Fortran code changes, but based on
netlib, I don't really see any of that happening.  Some of the code
dates back to the 70's and if there are updates, the authors aren't
saying. :-)  I hope that's because the implementations are good and
correct so there's no need to update anything.

    Liam> Also, having looked at some of the GSL code (which is in C not
    Liam> Fortran, by the way, so woudn't be amenable to f2cl - is there a
    Liam> c2cl?), I find it cleanly laid out but using quite a bit of C

No c2cl that I know of.  Probably be virtually impossible with all the
pointer games C code tends to have.  f2cl doesn't support equivalences
and the type punning things old Fortran code did.  Fortunately, most
of the more recent code doesn't do that.

    Liam> abstractions that I find hard to follow (I'm no C expert though).
    Liam> Converting this would be hard. 

I wasn't going to convert the C code, but the original Fortran code
from which they originated.

Even then, I see f2cl conversion as, at worst, a stop gap measure until
someone decides they really need a faster implementation or someone
comes up with a common enough FFI to work.

    Ray> A truly common FFI would be a great service to the Lisp community.

    Liam> Agreed.  Unfortunately, I see no movement from the CL implementations
    Liam> to make this happen.  Maybe something's happening behind the scenes.

Not that I know of.  I think if it happens it will have to be the free
Lisp people, not the commercial vendors who probably don't have an
interest in such a thing.  Maxima would make a great platform for
implementing, testing, and verifying such a common FFI, especially if
we hook up more complicated foreign code that requires all kinds of
complex structures, unions, callbacks, etc.

Ray