From pgilbert at bank-banque-canada.ca  Wed Apr 11 19:53:12 2007
From: pgilbert at bank-banque-canada.ca (Paul Gilbert)
Date: Wed, 11 Apr 2007 13:53:12 -0400
Subject: [Rd] eigen in beta
In-Reply-To: <461D12E3.5040206@biostat.ku.dk>
References: <461BCE69.2020409@bank-banque-canada.ca>	<Pine.LNX.4.64.0704101854560.32417@gannet.stats.ox.ac.uk>	<461BD7E9.1050200@bank-banque-canada.ca>	<461BEDCB.7090805@biostat.ku.dk>	<Pine.LNX.4.64.0704110734210.1007@gannet.stats.ox.ac.uk>	<461CF5EA.4050001@bank-banque-canada.ca>	<Pine.LNX.4.64.0704111555430.28108@gannet.stats.ox.ac.uk>
	<461D032D.40304@bank-banque-canada.ca>
	<461D12E3.5040206@biostat.ku.dk>
Message-ID: <461D2088.1070802@bank-banque-canada.ca>

Peter Dalgaard wrote:
....
> Well, there's make check-all...
Ok, this is what I should be running.  It reports
....
running tests of LAPACK-based functions
make[3]: Entering directory `/home/mfa/gilp/toolchain/R/src/R-beta/tests'
running code in 'lapack.R' ...make[3]: *** [lapack.Rout] Error 1
make[3]: Leaving directory `/home/mfa/gilp/toolchain/R/src/R-beta/tests'
make[2]: *** [test-Lapack] Error 2
make[2]: Leaving directory `/home/mfa/gilp/toolchain/R/src/R-beta/tests'
make[1]: *** [test-all-devel] Error 1
make[1]: Leaving directory `/home/mfa/gilp/toolchain/R/src/R-beta/tests'
make: *** [check-all] Error 2
~/toolchain/R/src/R-beta:
and   lapack.Rout.fail  reports
....
 > ## failed for some 64bit-Lapack-gcc combinations:
 > sm <- cbind(1, 3:1, 1:3)
 > eigenok(sm, eigen(sm))
Error: abs(A %*% V - V %*% diag(lam)) < Eps is not all TRUE
Execution halted
> That doesn't check everything either, though. The point is that there 
> is a limit to what we can check: We don't check whether the CPU gets 
> floating point operations wrong in the 5th decimal place on rare 
> occasions either.  ...
Well, I'm talking about 3 to 4% in the maximum eigenvalue, in a problem 
that I don't think is especially ill-conditioned.  There are not many 
more fundamental calculations in statistics.  And all I am asking is 
that the problem gets reported, I'm not asking for a work around. I 
clearly need to fix something other than R on the system.

I guess it is difficult to know at what level problems should be 
flagged.  I don't think many people run make check-all.  Some 
calculation errors seem bad enough that plain "make" should catch them 
and not suggest there was a successful build.  It would do R's 
reputation a lot of damage if people used and reported the results of 
such bad calculations.

It might be nice to have an R package (called something like 
integrityCheck) that runs several numerical checks. This would allow end 
users to take some responsibility for ensuring their system is built 
properly.  I'm worried about the situation where a sys-admin installs R 
and does not do any testing.

Paul
====================================================================================

La version fran?aise suit le texte anglais.

------------------------------------------------------------------------------------

This email may contain privileged and/or confidential inform...{{dropped}}



[Rd] eigen in beta
Paul Gilbert