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 1738, Tue Jan 23 17:17:15 2007 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!
9    
10    - consider moving alloc3Darray from ./src/Mutils.c to
11      $(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    - BUGlet:  Shouldn't lose factorization here:
60      h6 <- Hilbert(6); chol(h6) ; str(h6) # has factor
61      str(H6 <- as(h6, "dspMatrix"))       # has lost factor
62      ## and the same in a similar situation involving  "dpo", "dpp"
63    
64    - Things like  M[upper.tri(M)] are not really most useful for  sparse
65      matrices.  --> provide generic functions
66      upperTriMatrix(), lowerTriMatrix()  both with argument  'diag = TRUE'
67      (which can be set to FALSE of course) which are used to extract a
68      triangle from an arbitrary sparse matrix and  return a  "dtCMatrix".
69    
70    - Factorizations: LU done; also Schur()  for  *sparse*  Matrices.
71    
72    - band(), triu(), tril() for *all* including "matrix", not just sparse matrices
73    
74    - is.na() method for all our matrices [ ==> which(*, arr.ind=TRUE) might work ]
75    
76    - When we have a packed matrix, it's a waste to go through "full" to "sparse":
77      ==> implement
78            setAs("dspMatrix", "sparseMatrix")
79            setAs("dppMatrix", "sparseMatrix")
80            setAs("dtpMatrix", "sparseMatrix")
81      and the same for "lsp" , "ltp"  and  "nsp" , "ntp" !
82    
83    - use  .Call(Csparse_drop, M, tol) in more places,
84      both with 'tol = 0.' to drop "values that happen to be 0" and for
85      zapsmall() methods for Csparse*
86    
87  - group generics: "Arith", but also "Ops" and "Math";  see  - implement .Call(Csparse_scale, ....) interfacing to cholmod_scale()
88    ?Math.data.frame  and the examples in    in src/CHOLMOD/Include/cholmod_matrixops.h : for another function
89    ?SetGeneric    specifically for multiplying a cholmod_sparse object by a diagonal matrix.
90      Use it in %*% and [t]crossprod methods.
91    
92  - check to see if the .onLoad function to require the methods package  - chol() and determinant() should ``work'': proper result or "good" error
93    (in the AllClass.R file) is needed    message.
94    
95  - Should the uplo and diag slots continue to be stored as character?  - Fully implement "Logic" methods - now (R 2.4.1) that the group is in S4
   An alternative is to use a factor as in the enum values for the  
   cblas.  
96    
97  - Organization of the source code files - right now they are organized  - Think of constructing  setAs(...) calls automatically in order to
98    according to class (e.g. dgeMatrix.R, dgeMatrix.h, dgeMatrix.c).  Is    basically enable all ``sensible'' as(fromMatrix, toMatrix)  calls,
99    there a better way?    possibly using canCoerce(.)
100    
101  - Fix the calculation of the Dim slot for the crossprod method for  - make sure *all* group methods have (maybe "bail-out") setMethod for "Matrix".
102    dgCMatrix objects (too tired to do that now).    e.g. zapsmall(<pMatrix>) fails "badly"
103    
104  - bCrosstab(): do we really want the diagonal "V:V" crosstabs?  - speedup: pass class definition to non0ind() [check all calls ..]
105    
106  - src/Metis/ : some Makefile needs fixing, as changing src/Metis/*.c  - sum(): implement methods which work for *all* our matrices.
              does not lead to recompilation.  
107    
108  - man/Matrix.Rd :  has example with dimnames, but we just drop them!  - Implement  expand(.) for the Cholesky() results
109                  MM thinks dimnames should be supported (but then ...)    "dCHMsimpl" and  "dCHMsuper"  -- currently have no *decent* way to get at
110      the matrix factors of the corresponding matrix factorization !!
111    
 - 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  

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

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