[Rd] can this happen?

Paul Gilbert pgilbert@bank-banque-canada.ca
Wed Dec 4 19:32:03 2002

Thomas Lumley wrote:
> This is basically a question about where to start looking for a problem.
> I have a program that gives slightly different results on two Windows
> computers.   It is a reasonably complicated numerical optimisation, with
> iterative calls to optim().

I don't test much in Windows, but I've had a far amount of trouble like this
with Linux. Not so much with optim(), but with some numerically ill conditioned
problems I get results that are different in the fourth or fifth significant
digit, whereas I typically expect my tests to be better than nine significant
digits, and are often good to fourteen. In Solaris my test values have much
tighter tolerances and were very stable for years, but changed a bit recently
when I switched from svd and eigen to La.svd and La.eigen. The obvious potential
culprit is nonBLAS/BLAS/ATLAS, but the Linux problem does not seem to be related
to that. It is a bit like problems that used to occur when the lower order bits
of doubles did not get zeroed, but the values from run to run on the same
machine are too consistent for a random problem like that.

If you figure out how to track this down, I would like to know. I was going to
try and keep track of the values I get more automatically, but I'm not sure what
information needs to be recorded. OS and R version are obvious, but I suspect
the issue has more to do with math library versions.

Paul Gilbert