Re: R-alpha: Fortran (linpack and eispack are dead!)

Luke Tierney (luke@stat.umn.edu)
Mon, 1 Jul 1996 12:40:45 -0500 (CDT)


From: Luke Tierney <luke@stat.umn.edu>
Message-Id: <9607011740.AA07439@nokomis.stat.umn.edu>
Subject: Re: R-alpha: Fortran (linpack and eispack are dead!)
To: ihaka@stat.auckland.ac.nz (Ross &)
Date: Mon, 1 Jul 1996 12:40:45 -0500 (CDT)
In-Reply-To: <199607010238.OAA28001@stat.auckland.ac.nz> from "Ross &" at Jul 1, 96 02:38:45 pm

> 
> I am currently in the process of removing all traces of fortran from
> the R distribution.  This is mainly to help the porting effort to
> Windows and the Macintosh.  To do this I have recoded the routines we
> actually use from Linpack and Eispack in C (I think I can now
> outperform commercial translation programs!).  The question remains of
> whether and how to provide general functionality.  I see a number of
> options.
> 

I did the same with xlispstat for similar reasons. Overall I am
finding that a bit of a pain. I would be in better shape if I had put
together a clean interface generator system that would take some
library specs and build the interface for me. I would still want to
f2c the code for the Mac and Windows but I would try to resist the
temptation to muck with what f2c does. It's hard to resist since the
quality of the array access code f2c produces is so lousy. Maybe
commercial converters do better -- I haven't tried. on the other hand,
I also haven't checked whether it matters, i.e. whether the C compilers
are good enough to optimize out the apparent inefficiencies f2c
introduces.

> 1)  Provide a subset of LAPACK (which subset?).
> 

It is probably worth keeping in mind that some systems provide native
BLAS implementations which may be a lot faster than the generic ones
(at least that is what the vendors would have you believe -- I havn't
benchmarked the HP one to see if it holds up). But it probably is
worth organizing things so a native BLAS is easy to use if it is
available.

> 2)  Provide all of LAPACK in a statically loaded form.
> 

This is almost certainly a nonstarter on Mac's and PC's. (In a year or
so Netscape and MS Word's executable sizes may even dwarf LAPACK, but
right now they are probably on par).

> 3)  Provide all of LAPACK as an add on in DLL form (this will not
>     work on all platforms).
> 

Are there really that many platforms left where this is not possible?
Almost all UNIX flavors either directly support dlopen and friends
from Sys VR4 (SunOS, DEC OSF/1, IRIX, LINUX/Elf) or have similar
functionalty that can be used to emulate these routines (AIX,
HPUX). Not all systems support all the wrinkles, but there seems to
bee a good common subset. Windows has DLL's, Mac System 7 has Code
Fragments. The only boxes I have access to that don't support these
directly are a wierd CDC Mips box and probably the Cray, though I'm
not sure about that, and some old System 6 Mac's. Having the option of
static linking for these would be nice, but it seems to me that shared
libraries are the way to go.

luke
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
r-testers mailing list -- To (un)subscribe, send
subscribe	or	unsubscribe
(in the "body", not the subject !)  To: r-testers-request@stat.math.ethz.ch
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-