Re: [Rd] Matrix / SparseM conflict (PR#8618)

From: Prof Brian Ripley <>
Date: Mon 20 Feb 2006 - 14:29:10 GMT

On Mon, 20 Feb 2006, Duncan Murdoch wrote:

> On 2/20/2006 8:54 AM, wrote:
>> Full_Name: David Pleydell
>> Version: 2.2.1
>> OS: Debian Etch
>> Submission from: (NULL) (
>> There appears to be a conflict between the chol functions from the Matrix and
>> the SparseM packages. chol() can only be applied to a matrix of class dspMatrix
>> if SparseM is not in the path.
> This isn't a bug, it's simply that both Matrix and SparseM define a
> generic for chol (though Matrix actually gets it by converting the
> function in base).

The problem appears to be that SparseM first redefines chol as an S3 generic and then defines S4 methods on it. As no new S3 methods are then defined the S3 step would seem unnecessary, but it is used to allow the package to define S4 methods on a different signature from R's chol(). (That seems to me to be asking for trouble.)

Only the package maintainer of SparseM can do anything about this.

Beyond, that I guess it is a consequence of namespaces that Matrix defines methods via a derived generic on base::chol and not on the generic chol in SparseM. That needs further thought by someone (JMC?) who understands the S4 internals.

> If you want access to the version in Matrix after attaching SparseM
> ahead of it in the search path, use Matrix::chol.

But the whole point of generic functions is to allow one to write generic code.

Brian D. Ripley,        
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________ mailing list
Received on Tue Feb 21 01:37:08 2006

This archive was generated by hypermail 2.1.8 : Tue 21 Feb 2006 - 03:44:41 GMT