SCM

SCM Repository

[matrix] Diff of /pkg/Matrix/TODO
ViewVC logotype

Diff of /pkg/Matrix/TODO

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2047, Tue Aug 14 13:09:56 2007 UTC revision 2048, Tue Aug 14 15:09:10 2007 UTC
# Line 1  Line 1 
1  Check for DimNames propagation in coercion and other operations.  Check for DimNames propagation in coercion and other operations.
2  ------  ------
 - rcond methods for sparseMatrix classes  
   
3  - Report the problem in the Linux ldexp manual page.  The second and  - Report the problem in the Linux ldexp manual page.  The second and
4    third calls in the Synopsis should be to ldexpf and ldexpl.    third calls in the Synopsis should be to ldexpf and ldexpl.
5    
# Line 52  Line 50 
50    for all  "dsparse*" -> "lsparse*" and vice versa.    for all  "dsparse*" -> "lsparse*" and vice versa.
51    How can one do this {in a documented way} ?    How can one do this {in a documented way} ?
52    
53    - Think of constructing  setAs(...) calls automatically in order to
54      basically enable all ``sensible'' as(fromMatrix, toMatrix)  calls,
55      possibly using canCoerce(.)
56    
57    - setAs(<Mcl>,  "[dln]Matrix") for <Mcl> in {Matrix or denseMatrix + sparseMatrix}
58    
59    - When we have a packed matrix, it's a waste to go through "full" to "sparse":
60      ==> implement
61            setAs("dspMatrix", "sparseMatrix")
62            setAs("dppMatrix", "sparseMatrix")
63            setAs("dtpMatrix", "sparseMatrix")
64      and the same for "lsp" , "ltp"  and  "nsp" , "ntp" !
65    
66  - tcrossprod(x, y) : do provide methods for y != NULL  - tcrossprod(x, y) : do provide methods for y != NULL
67    calling Lapack's DGEMM for "dense"    calling Lapack's DGEMM for "dense"
68    [2005-12-xx: done for dgeMatrix at least]    [2005-12-xx: done for dgeMatrix at least]
# Line 73  Line 84 
84    
85  - is.na() method for all our matrices [ ==> which(*, arr.ind=TRUE) might work ]  - is.na() method for all our matrices [ ==> which(*, arr.ind=TRUE) might work ]
86    
 - When we have a packed matrix, it's a waste to go through "full" to "sparse":  
   ==> implement  
         setAs("dspMatrix", "sparseMatrix")  
         setAs("dppMatrix", "sparseMatrix")  
         setAs("dtpMatrix", "sparseMatrix")  
   and the same for "lsp" , "ltp"  and  "nsp" , "ntp" !  
   
87  - use  .Call(Csparse_drop, M, tol) in more places,  - use  .Call(Csparse_drop, M, tol) in more places,
88    both with 'tol = 0.' to drop "values that happen to be 0" and for    both with 'tol = 0.' to drop "values that happen to be 0" and for
89    zapsmall() methods for Csparse*    zapsmall() methods for Csparse*
# Line 92  Line 96 
96  - chol() and determinant() should ``work'': proper result or "good" error  - chol() and determinant() should ``work'': proper result or "good" error
97    message.    message.
98    
 - Think of constructing  setAs(...) calls automatically in order to  
   basically enable all ``sensible'' as(fromMatrix, toMatrix)  calls,  
   possibly using canCoerce(.)  
   
99  - make sure *all* group methods have (maybe "bail-out") setMethod for "Matrix".  - make sure *all* group methods have (maybe "bail-out") setMethod for "Matrix".
100    e.g. zapsmall(<pMatrix>) fails "badly"    e.g. zapsmall(<pMatrix>) fails "badly"
101    
# Line 109  Line 109 
109    
110  - rbind(<sparse>, <dense>) does not work  (e.g. <dgC>, <dge>)  - rbind(<sparse>, <dense>) does not work  (e.g. <dgC>, <dge>)
111    
 - setAs(<Mcl>,  "[dln]Matrix" )  for <Mcl> in {Matrix or denseMatrix + sparseMatrix}  
   
 - Tell users about the possibility to disable the "S4-generic but somewhat slow"  
   cbind/rbind, e.g. via  
   
   setHook(packageEvent("Matrix", "onLoad"),  
           function(...) methods:::bind_activation(FALSE))  
   
112  - ensure that  M[0], M[FALSE], M[1:2]  works as for traditional Matrices  - ensure that  M[0], M[FALSE], M[1:2]  works as for traditional Matrices
113    
114  - make sure  M[FALSE, FALSE]  works for all Matrices  - make sure  M[FALSE, FALSE]  works for all Matrices
# Line 133  Line 125 
125    --> R/diagMatrix.R ('FIXME')    --> R/diagMatrix.R ('FIXME')
126    but also R/Ops.R  to ensure  sp-sym. + sp-sym. |-> sp-sym.  etc    but also R/Ops.R  to ensure  sp-sym. + sp-sym. |-> sp-sym.  etc
127    
128    - Diagonal(n) %*% A ---  too slow!! --> ~/R/MM/Pkg-ex/Matrix/diag-Tamas-ex.R
129    
130  - For a square sparse matrix 'b' {typically dgCMatrix or dgTMatrix},  - For a square sparse matrix 'b' {typically dgCMatrix or dgTMatrix},
131    we'd want a function  "Mat_plus_t_Mat" <- function(b) {....}    we'd want a function  "Mat_plus_t_Mat" <- function(b) {....}
132    which computes the symmetric sparse matrix   b + t(b)    which computes the symmetric sparse matrix   b + t(b)
# Line 142  Line 136 
136    !M  where M is "sparseMatrix", currently always gives dense. This only    !M  where M is "sparseMatrix", currently always gives dense. This only
137    makes sense when M is ``really sparse''.    makes sense when M is ``really sparse''.
138    
 - log1p(<sparseMatrix>) "should" give <dsparseMatrix>  
   Pretty surely, this would happen automagically, if "log1p" became part of  
   "Math" group generic ---> which is the case from R 2.6.0 on  
   
139  - msy <- as(matrix(c(2:1,1:2),2), "dsyMatrix"); str(msy)  - msy <- as(matrix(c(2:1,1:2),2), "dsyMatrix"); str(msy)
140    
141    shows that the Cholesky factorization is computed ``too quickly''.    shows that the Cholesky factorization is computed ``too quickly''.
# Line 163  Line 153 
153    above currently goes via "matrix" and back instead of using the 'x' slot    above currently goes via "matrix" and back instead of using the 'x' slot
154    directly.    directly.
155    
156  - image(M, aspect= "iso", colorkey = FALSE)  - image(M, ..): Think about an optional smart option which keeps
157    really should be default; {aspect: non-back comptible for users !!}     "0 |-> transparent" and allows colors to differentiate negative and
158    current default colorkey=TRUE is on abs(M[M > 0]).     positive entries.
   Note: Think about an optional smart option which keeps "0 |-> transparent"  
   but allows colors to differentiate negative and positive entries.  
   --- and be documented! Maybe move from man/dgTMatrix-class.Rd to image.Rd ?  
159    
160  - examples for solve( Cholesky(.), b, system = c("A", "LDLt"....))  - examples for solve( Cholesky(.), b, system = c("A", "LDLt"....))
161    probably rather in man/CHMfactor-class.Rd than man/Cholesky.Rd    probably rather in man/CHMfactor-class.Rd than man/Cholesky.Rd

Legend:
Removed from v.2047  
changed lines
  Added in v.2048

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge