# [R-pkgs] "The Matrix" is approaching version 1.0-0

From: Martin Maechler <maechler_at_stat.math.ethz.ch>
Date: Fri, 28 Mar 2008 15:18:37 +0100

A new version of "the Matrix"
(well, actually the R package named "Matrix") has become
available on the CRAN mirrors.

As some of you have noticed, the version numbers (current is version 0.999375-8) are converging to one, and we feel that we have solved enough of the many (mostly small) problems to announce that release 1.0-0 is imminent.

In the DESCRIPTION of the package we say

Title: A Matrix package for R
Author: Douglas Bates <....> and Martin Maechler <....> Maintainer: Doug and Martin <Matrix-authors_at_R-project.org> Description: Classes and methods for dense and sparse matrices and

operations on them using Lapack, CSparse and CHOLMOD

The Matrix package provides efficient methods for several formal
(i.e. S4) classes of matrices where each of the actual classes are
some combination of the following three categories

1. dense or sparse
2. symmmetric, triangular, diagonal or "general" (or "permutation")
3. numeric ("d"ouble), logical (TRUE/FALSE/NA) or "patter[n]" (0/1) matrices

Interfaces to many efficient algorithms from Lapack (for "dense") and from CHOLMOD / Csparse (for "sparse") are all implemented via method definitions for the customary linear algebra functions   %*%, t(), crossprod(), tcrossprod(), chol(), qr(), solve(),   colSums(), rowSums(), kronecker(), determinant(), ... and for various formal groups of generics, such as   "Math" (sin,exp,gamma,..) "Arith" (+,-,*,...),   "Logic" (>, <=, ..), "Summary" (sum, max, ...) etc;   is.na()

Furthermore, 'indexing' : "A[...]" and "A[..] <- value" of all(!) kinds of S/R indexing and some new generic functions such as

lu() {LU decomposition}
Schur(), BunchKaufman(),

``` norm(), rcond()        {Matrix norms and condition numbers}
expm()   {Matrix exponential},
band(), triu(), tril()  {extract band-diagonal or triangular sub-matrices}
```
symmpart(), skewpart() { (x + t(x))/2 and (x - t(x)) / 2 }

are provided. Further, an extension to the xtabs function   xtabs(*, sparse=TRUE)
for large sparse, two-way contingency tables and coercion of one *factor* (possibly crossed with one <numeric>) to the corresponding (potentially huge) sparse model matrix for sparse least squares and related computations.

Further to the above, "Matrix" objects are also constructed by Matrix(), spMatrix(), bdiag() {block-diagonal}, Diagonal() and many as(., "....Matrix") possibilities.

The Matrix package also provides a C level API (header files of exported C functions providing low-level functionality) to many of its internal algorithms that other packages can link to. Currently, the 'lme4' package makes heavy use of these exported C functions.

One of the things we plan to improve considerably is the documentation for the package. Currently there are four vignettes but all but the

Comparisons: Comparisons of Least Squares calculation speeds

are really not complete in one way or another.

We would appreciate current users of the Matrix package (and also generally interested useRs) exploring the package's capabilities and giving us feedback about problems that they might encounter or missing features, inefficiencies and maybe even "infelicities" (a.k.a. bugs). Fixing problems before the release of the 1.0-0 version of "The Matrix", rather than after its release, is our preferred approach.

Douglas Bates and Martin Maechler
Matrix-authors <at> r-project <.> org

R-packages mailing list
R-packages_at_r-project.org
https://stat.ethz.ch/mailman/listinfo/r-packages Received on Sat 29 Mar 2008 - 01:20:27 EST

This archive was generated by hypermail 2.2.0 : Sat 29 Mar 2008 - 01:30:01 EST