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 530, Mon Feb 7 10:58:27 2005 UTC revision 1592, Thu Sep 28 15:31:17 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  
   
 - bCrosstab(): do we really want the diagonal "V:V" crosstabs?  
                (if so or in any case: add to  man/bCrosstab.Rd )  
   
 - src/Metis/ : one of the two Makefiles needs fixing, as changing  
              src/Metis/*.c  does not lead to recompilation.  
   --DB - it seems both Makefiles need fixing.  I think I have the  
              src/Metis/Makefile fixed but not src/Makefile  
   
 - man/Matrix.Rd :  has example with dimnames, but we just drop them!  
                 MM thinks dimnames should be supported (but then ...)  
   
 - 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  
   
 - "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'  
9    
10    {Of course, we don't need a workaround but must understand  - consider moving alloc3Darray from ./src/Mutils.c to
11     and solve the problem}    $(RSRC)/src/base/array.c
12    ------
13    - 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" !

Legend:
Removed from v.530  
changed lines
  Added in v.1592

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