[Rd] random NaN in dpotri result

From: Andrew Finley <afinley_at_stat.umn.edu>
Date: Fri 28 Apr 2006 - 22:32:07 GMT


Hello all,
In a piece of c++ code (part of a future R package), I'm inverting a relatively large covariance matrix many times using:

F77_CALL(dpotrf)(&upper, &xnrow, R, &xnrow, &info); F77_CALL(dpotri)(&upper, &xnrow, R, &xnrow, &info);

I am sure that the input matrix is PD and inverts just fine. However, I have found that dpotri gives one or more NaNs from time-to-time in the upper (or lower depending on the specification) triangle. When I say, from time-to-time, I mean without warning in perhaps 1 in ~25 runs (but is highly variable). Also, when the NaNs occur, dpotri does not return an error in info. I have spent many many hours trying to get this error to reproduce predictably, but cannot. Even with the same input matrix, sometimes I get a NaN but most of the time I do not, and their occurrence seems to be random and random in the matrix. When dpotri, does not produce the NaN, the solution is correct.

To assure myself that I was not totally nuts, I tried both Linpack's dpodi and a chol2inv routine from Numerical Recipes in place of dpotri. Both of these routines never produce the nan and provide the correct result.

I hesitate to post this problem, as I cannot get it to reproduce on a regular basis. Valgrind didn't report any memory access problems on my code.

Has anybody seen this before, or might point out some stupid mistakes I could be making?

Thanks for your time,

Andrew

R Version 2.3.0 (2006-04-24)
Debian Linux 2.6.15-1-686  

Research Fellow
Department of Forest Resources
University of Minnesota
Office: 305 Green Hall
Phone: (612) 624-1714
Fax: (612) 625-5212
web: http://blue.fr.umn.edu



R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat Apr 29 08:35:08 2006

This archive was generated by hypermail 2.1.8 : Sat 29 Apr 2006 - 18:17:47 GMT