SCM

SCM Repository

[matrix] Diff of /pkg/TODO
ViewVC logotype

Diff of /pkg/TODO

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

revision 510, Fri Feb 4 23:36:17 2005 UTC revision 1619, Fri Oct 6 21:29:15 2006 UTC
# Line 1  Line 1 
1    Check for DimNames propagation in coercion and other operations.
2    ------
3    - rcond methods for sparseMatrix classes
4    
5  - Report the problem in the Linux ldexp manual page.  The second and  - Report the problem in the Linux ldexp manual page.  The second and
6    third calls in the Synopsis should be to ldexpf and ldexpl.    third calls in the Synopsis should be to ldexpf and ldexpl.
7    
8  - [,] indexing  - [,] indexing: for sparse "works", but not yet for negative indices!
   
 - group generics: "Arith", but also "Ops" and "Math";  see  
   ?Math.data.frame  and the examples in  
   ?SetGeneric  
   
 - check to see if the .onLoad function to require the methods package  
   (in the AllClass.R file) is needed  
   
 - Should the uplo and diag slots continue to be stored as character?  
   An alternative is to use a factor as in the enum values for the  
   cblas.  
   
 - Organization of the source code files - right now they are organized  
   according to class (e.g. dgeMatrix.R, dgeMatrix.h, dgeMatrix.c).  Is  
   there a better way?  
   
 - Fix the calculation of the Dim slot for the crossprod method for  
   dgCMatrix objects (too tired to do that now).  
   
 - bCrosstab(): do we really want the diagonal "V:V" crosstabs?  
   
 - src/Metis/ : some Makefile needs fixing, as changing src/Metis/*.c  
              does not lead to recompilation.  
   
 - man/Matrix.Rd :  has example with dimnames, but we just drop them!  
                 MM thinks dimnames should be supported (but then ...)  
9    
10  - data/ : names 'mm' and even more 'y' are  ``too short''.  - consider moving alloc3Darray from ./src/Mutils.c to
11          If we really want to keep them, don't use "LazyData"    $(RSRC)/src/base/array.c
12          (such that one needs  data(*) explicitly);  ------
13          But MM would rather want something like  ex.mm and ex.y  - provide methods for "dspMatrix" and "dppMatrix"!
14    
15    - implement (more) methods for supporting "packed" (symmetric / triangular)
16      matrices; particularly something like pack() and unpack()  [to/from our
17      classes from/to "numeric"] --- have already man/unpack.Rd but no method yet!
18    
19      (have some dtr* <-> dtp*)
20    
21    -----
22    
23    - combine the C functions for multiplication by special forms and
24      solution wrt special forms by using a 'right' argument and a
25      'classed' argument.
26       [done with dgeMatrix_matrix_mm();  not yet for other classes;
27        and for _crossprod()]
28    
29    - add more comprehensive examples / tests for Schur decomposition
30    
31    - arithmetic for sparse matrices:
32                 <sparseMatrix>  o  <same-dim-sparseMatrix>
33      should return a sparse matrix  for at least "+" and "*" , also %%,
34      and "/" and "%/%" at least when the RHS is non-zero a scalar.
35      Challenge: nice implementation (``common non-0''; but Tsparse* is not uniq).
36    
37    -----
38    
39    - "Math2" , "Math", "Arith":
40       keep triangular and symmetric Matrices when appropriate:
41       particularly desirable for  "Math2": round(), signif()
42    
43    - "d" <-> "l" coercion for all "[TCR]" sparse matrices is really trivial:
44      "d" -> "l" : drops the 'x' slot
45      "l" -> "d" : construct an 'x' slot of all '1'
46      We currently have many of these conversions explicitly, e.g.
47       setAs("dsTMatrix", "lsTMatrix",
48          function(from) new("lsTMatrix", i = from@i, j = from@j, uplo = from@uplo,
49                             Dim = from@Dim, Dimnames = from@Dimnames))
50      but I would rather want to automatically construct all these coercion
51      methods at once by a ``method constructor'', i.e.,
52      for all  "dsparse*" -> "lsparse*" and vice versa.
53      How can one do this {in a documented way} ?
54    
55    - tcrossprod(x, y) : do provide methods for y != NULL
56      calling Lapack's DGEMM for "dense"
57      [2005-12-xx: done for dgeMatrix at least]
58    
59    - "ltTmatrix" :
60      2) new("ltTMatrix", diag = "U", Dim = c(2:2, 2:2)) shows lack of ltTM*_validate
61    
62    - BUGlet:  Shouldn't lose factorization here:
63      h6 <- Hilbert(6); chol(h6) ; str(h6) # has factor
64      str(H6 <- as(h6, "dspMatrix"))       # has lost factor
65      ## and the same in a similar situation involving  "dpo", "dpp"
66    
67    - "Compare" for dgC & dgT  --- want to be able to do  M[M > 10]  etc
68    
69    - Things like  M[upper.tri(M)] are not really most useful for  sparse
70      matrices.  --> provide generic functions
71      upperTriMatrix(), lowerTriMatrix()  both with argument  'diag = TRUE'
72      (which can be set to FALSE of course) which are used to extract a
73      triangle from an arbitrary sparse matrix and  return a  "dtCMatrix".
74    
75    - Factorizations: LU done; also Schur()  for  *sparse*  Matrices.
76    
77    - band(), triu(), tril() for *all*, not just sparse matrices
78    
79    - is.na() method for all our matrices [ ==> which(*, arr.ind=TRUE) might work ]
80    
81    - When we have a packed matrix, it's a waste to go through "full" to "sparse":
82      ==> implement
83            setAs("dspMatrix", "sparseMatrix")
84            setAs("dppMatrix", "sparseMatrix")
85            setAs("dtpMatrix", "sparseMatrix")
86      and the same for "lsp" , "ltp"  and  "nsp" , "ntp" !
87    
88    - use  .Call(Csparse_drop, M, tol) in more places,
89      both with 'tol = 0.' to drop "values that happen to be 0" and for
90      zapsmall() methods for Csparse*

Legend:
Removed from v.510  
changed lines
  Added in v.1619

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