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

Ross & (ihaka@stat.auckland.ac.nz)
Mon, 1 Jul 1996 16:28:17 +1200


Date: Mon, 1 Jul 1996 16:28:17 +1200
Message-Id: <199607010428.QAA28500@stat.auckland.ac.nz>
From: Ross & <ihaka@stat.auckland.ac.nz>
To: R-testers@stat.math.ethz.ch
Subject: Re: R-alpha: Fortran (linpack and eispack are dead!)
In-Reply-To: <9607010344.AA08317@attunga.stats.adelaide.edu.au>
 <9607010344.AA08317@attunga.stats.adelaide.edu.au>

Bill Venables writes:

 > Hallelujah!  What an excellent move!  Somehow Fortran about the
 > place always makes it presence felt: there's a certain odor...
 > 
 >  > 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'm not sure what you mean by this.  I would have thought general
 > functionality would be provided through front end functions
 > written in R like eigen, solve, qr, chol, &c. and leave it at
 > that.  The range of things in S+ is probably about where to stop.

I just mean that dumping the packs will leave some gaps.  I don't know
if anyone uses them and would be inconvenienced.  In an f77 to C
conversion frenzy I converted:

     1.	Choleski + friends
	This is new.  We now have a "chol" function.
	
     2.	QR via Householder
	This is a modified version of the linpack code which is the
	basis of "qr", "lsfit", "lm", "glm" ...

     3. SVD
	The Linpack one.

     4. Eigenvalues/vectors for symmetric matrices.

In addition, we have a general mixed radix fft which is pretty
flexible.

I do take your point about fixing interfaces in place.  I think what I
will do is to write interface wrappers with names like "choleski",
"qrdecomp", "svdecomp" and "symeigen" which hide the calls to the
underlying routines.  This will mean that we can replace the
underlying code at any time and yet still keep the same interfaces.
	Ross
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
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
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-