- 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
- data/ : names 'mm' and even more 'y' are ``too short''.
If we really want to keep them, don't use "LazyData"
(such that one needs data(*) explicitly);
But MM would rather want something like ex.mm and ex.y
- slot "factors" maybe should move up to "Matrix"
-------
We have a (at least one) basic problem :
Currently the show() method fail sometime after coercion:
e.g. 'sy' show()s wrongly, even though it "str()" fine :
(po <- crossprod(Matrix(0:3, 2))) # ok
(ge <- as(po, "dgeMatrix")) # ok
(sy <- as(po, "dsyMatrix")) # BAD
str(sy) # looks fine
or
example(expand) # -> ex$L and ex$U look bad, however
as(ex$L, "dgeMatrix") # `works'
{Of course, we don't need a workaround but must understand
and solve the problem}
---
- 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.
---
- 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.