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 1226, Mon Mar 13 14:07:58 2006 UTC
# Line 1  Line 1 
1    ------
2    - Sparse matrix methods can now be based on the CHOLMOD package.  We
3       will need to migrate from the current code to CHOLMOD-based code
4       using #ifdef USE_CHOLMOD.  Some of the things to be done
5    
6       - Move documentation from subdirectories of src to inst/doc
7       - Write utilities to create a cholmod_sparse pointer from a
8       dgCMatrix or lgCMatrix (or zgCMatrix) object without copying and
9       allocating.
10       - Start adding simple S4 methods (rcond, %*%, +, cbind, t).
11    
12  - Report the problem in the Linux ldexp manual page.  The second and  - Report the problem in the Linux ldexp manual page.  The second and
13    third calls in the Synopsis should be to ldexpf and ldexpl.    third calls in the Synopsis should be to ldexpf and ldexpl.
14    
15  - [,] 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  
16    
17  - man/Matrix.Rd :  has example with dimnames, but we just drop them!  - consider moving alloc3Darray from ./src/Mutils.c to
18                  MM thinks dimnames should be supported (but then ...)    $(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  
   
 - "factors" maybe should move up to "Matrix"  
19    
20  -------  -------
21    
22  We have a (at least one) basic problem :  - provide methods for "dspMatrix" and "dppMatrix"!
23     Currently the show() method fail sometime after coercion:  
24     e.g. 'sy' show()s wrongly, even though it "str()" fine :  - implement (more) methods for supporting "packed" (symmetric / triangular)
25      matrices; particularly something like pack() and unpack()  [to/from our
26        (po <- crossprod(Matrix(0:3, 2))) # ok    classes from/to "numeric"] --- have already man/unpack.Rd but no method yet!
27        (ge <- as(po, "dgeMatrix")) # ok  
28        (sy <- as(po, "dsyMatrix")) # BAD    (have some dtr* <-> dtp*)
29        str(sy) # looks fine  
30    ---
31    or  
32        example(expand) # -> ex$L and ex$U look bad, however  - combine the C functions for multiplication by special forms and
33        as(ex$L, "dgeMatrix") # `works'    solution wrt special forms by using a 'right' argument and a
34      'classed' argument.
35       [done with dgeMatrix_matrix_mm();  not yet for other classes;
36        and for _crossprod()]
37    
38    - add more comprehensive examples / tests for Schur decomposition
39    
40    - arithmetic for sparse matrices:
41                 <sparseMatrix>  o  <same-dim-sparseMatrix>
42      should return a sparse matrix  for at least "+" and "*" , also %%,
43      and "/" and "%/%" at least when the RHS is non-zero a scalar.
44      Challenge: nice implementation (``common non-0''; but Tsparse* is not uniq).
45    
46    ---
47    
48    - Create a Harwell-Boeing version of the matrix mm and the response
49      vector y in inst/external and remove them from the data directory.
50      Modify any examples that use them and modify the Comparisons vignette.
51    
52    - "Math2" , "Math", "Arith":
53       keep triangular and symmetric Matrices when appropriate:
54       particularly desirable for  "Math2": round(), signif()
55    
56    - "d" <-> "l" coercion for all "[TCR]" sparse matrices is really trivial:
57      "d" -> "l" : drops the 'x' slot
58      "l" -> "d" : construct an 'x' slot of all '1'
59      We currently have many of these conversions explicitly, e.g.
60       setAs("dsTMatrix", "lsTMatrix",
61          function(from) new("lsTMatrix", i = from@i, j = from@j, uplo = from@uplo,
62                             Dim = from@Dim, Dimnames = from@Dimnames))
63      but I would rather want to automatically construct all these coercion
64      methods at once by a ``method constructor'', i.e.,
65      for all  "dsparse*" -> "lsparse*" and vice versa.
66      How can one do this {in a documented way} ?
67    
68    - tcrossprod(x, y) : do provide methods for y != NULL
69      calling Lapack's DGEMM for "dense"
70      [2005-12-xx: done for dgeMatrix at least]
71    
72    - "ltTmatrix" :
73      2) new("ltTMatrix", diag = "U", Dim = c(2:2, 2:2)) shows lack of ltTM*_validate
74    
75    - BUGlet:  Shouldn't lose factorization here:
76      h6 <- Hilbert(6); chol(h6) ; str(h6) # has factor
77      str(H6 <- as(h6, "dspMatrix"))       # has lost factor
78      ## and the same in a similar situation involving  "dpo", "dpp"
79    
80    {Of course, we don't need a workaround but must understand  - "Compare" for dgC & dgT  --- want to be able to do  M[M > 10]  etc
    and solve the problem}  

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

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