- Sparse matrix methods can now be based on the CHOLMOD package. We
will need to migrate from the current code to CHOLMOD-based code
using #ifdef USE_CHOLMOD. Some of the things to be done
- Move documentation from subdirectories of src to inst/doc
- Write utilities to create a cholmod_sparse pointer from a
dgCMatrix or lgCMatrix (or zgCMatrix) object without copying and
allocating.
- Start adding simple S4 methods (rcond, %*%, +, cbind, t).
- Report the problem in the Linux ldexp manual page. The second and
third calls in the Synopsis should be to ldexpf and ldexpl.
- [,] indexing: for sparse "works", but not yet for negative indices!
- group generics: "Arith" (partly done),
but also "Compare", "Math" etc;
see ?Math and the examples in ?SetGeneric
- methods for rbind and cbind where they make sense
(Kurt is particularly interested in dgCMatrix ones, for pkg 'arules')
****> UNFEASIBLE as long cbind is function(..., *) !!!! <*******
--> follow John's proposition cbind(x, ...) via Generic cbind2(x,y)?
- consider moving alloc3Darray from ./src/Mutils.c to
$(RSRC)/src/base/array.c
- slot "factors" maybe should move up to "Matrix"
-------
- provide methods for "dspMatrix" and "dppMatrix"!
- implement (more) methods for supporting "packed" (symmetric / triangular)
matrices; particularly something like pack() and unpack() [to/from our
classes from/to "numeric"] --- have already man/unpack.Rd but no method yet!
(have some dtr* <-> dtp*)
- implement diagonal Matrix class "ddiMatrix" etc
using constructor function Diagonal() or Diag().
BUG: rcond() of a singular dpoMatrix gives a LaPack error instead of just 0:
MM <- crossprod(M <- Matrix(c(1:4,9:6), 2,4)) ; rcond(MM)
##> Error in rcond(MM) : Lapack routine dpotrf returned error code 4
---
- combine the C functions for multiplication by special forms and
solution wrt special forms by using a 'right' argument and a
'classed' argument.
[done with dgeMatrix_matrix_mm(); not yet for other classes;
and for _crossprod()]
- add more comprehensive examples / tests for Schur decomposition
- arithmetic for sparse matrices:
o
should return a sparse matrix for at least "+" and "*" , also %%,
and "/" and "%/%" at least when the RHS is non-zero a scalar.
Challenge: nice implementation (``common non-0''; but Tsparse* is not uniq).
---
- Create a Harwell-Boeing version of the matrix mm and the response
vector y in inst/external and remove them from the data directory.
Modify any examples that use them and modify the Comparisons vignette.
- "Math2" , "Math", "Arith":
keep triangular and symmetric Matrices when appropriate:
particularly desirable for "Math2": round(), signif()