From pauljohn32 at gmail.com  Fri Dec 14 23:31:43 2012
From: pauljohn32 at gmail.com (Paul Johnson)
Date: Fri, 14 Dec 2012 16:31:43 -0600
Subject: [Rd] Found explanation for R-2.15.2 slowdown in one case;
 caution for any users of La_chol
Message-ID: <CAErODj_5cvD78nmC1RBAWGgjKSvPpVwpVsNZMjcQgyjqSraQ3w@mail.gmail.com>

2 days ago, I posted my long message about the observed slowdown in a
package between R-2.15.0 and R-2.15.2.

Uwe Ligges urged me to make a self-contained R example. That was the
encouragement I needed. I tracked the problem down to a failing use of
a LAPACK routine.

R's LAPACK C interface changed one variable in one function. But it
turned out to be an important change.  In case others have code that
is behaving in unexpected says, I'd urge package writers to
double-check their usage of the Cholesky inverse. Here are details:

In R 2.15.0, src/main/lapack.c, we have the prototype:

SEXP La_chol (SEXP A)

BUT in R 2.15.2, the prototype changed:

SEXP La_chol (SEXP A, SEXP pivot)

In the problem case I was studying, the effort to use La_chol was
wrapped in a "try" catch framework, and when Cholesky failed, it fell
back to a singular value decomposition. That's much slower, of course.

Hence the program seemed slower under R-2.15.2, but it was really
failing in a way that I had not noticed.

pj

-- 
Paul E. Johnson
Professor, Political Science      Assoc. Director
1541 Lilac Lane, Room 504      Center for Research Methods
University of Kansas                 University of Kansas
http://pj.freefaculty.org               http://quant.ku.edu



[Rd] Found explanation for R-2.15.2 slowdown in one case; caution for any users of La_chol
Paul Johnson