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 1349, Mon Aug 7 09:05:42 2006 UTC
# Line 1  Line 1 
1    -----
2    Modify mcmcsamp to return the deviance in the sample only when the
3    optional argument 'deviance' is TRUE (default FALSE).
4    -----
5    Replace the use of the unexported replacement function LMEoptimize<-
6    in lmer.R by the function LMEopt, which always returns NULL but
7    (in contradiction to the language specification) modifies its first argument.
8    -----
9    Modify the one-argument form of the anova method for lmer objects (yet
10      again) to calculate the F ratios.  It is the df, not the ratio that
11      is controversial.
12    Should there be an extractor function for the mean square error?  If
13      so, what should it be called?
14    -----
15    Check for DimNames propagation in coercion and other operations.
16    -----
17    - Revive the "lmer" and "glmer" classes.  Slots like "family" should
18      be in "glmer" only.  Many methods for "lmer" can be simplified as,
19      for example, they will always use the scale factor.
20    
21    - Add a "pedigree" class and methods for it.  Allow a pedigree
22      argument in lmer.
23    
24    ------
25    - Sparse matrix methods can now be based on the CHOLMOD package.  We
26       will need to migrate from the current code to CHOLMOD-based code
27       using #ifdef USE_CHOLMOD.  Some of the things to be done
28    
29       - Move documentation from subdirectories of src to inst/doc
30       - Write utilities to create a cholmod_sparse pointer from a
31       dgCMatrix or lgCMatrix (or zgCMatrix) object without copying and
32       allocating.
33       - Start adding simple S4 methods (rcond, %*%, +, cbind, t).
34    
35  - Report the problem in the Linux ldexp manual page.  The second and  - Report the problem in the Linux ldexp manual page.  The second and
36    third calls in the Synopsis should be to ldexpf and ldexpl.    third calls in the Synopsis should be to ldexpf and ldexpl.
37    
38  - [,] indexing  - [,] indexing: for sparse "works", but not yet for negative indices!
39    
40    - consider moving alloc3Darray from ./src/Mutils.c to
41      $(RSRC)/src/base/array.c
42    
43    -------
44    
45    - provide methods for "dspMatrix" and "dppMatrix"!
46    
47    - implement (more) methods for supporting "packed" (symmetric / triangular)
48      matrices; particularly something like pack() and unpack()  [to/from our
49      classes from/to "numeric"] --- have already man/unpack.Rd but no method yet!
50    
51      (have some dtr* <-> dtp*)
52    
53    ---
54    
55    - combine the C functions for multiplication by special forms and
56      solution wrt special forms by using a 'right' argument and a
57      'classed' argument.
58       [done with dgeMatrix_matrix_mm();  not yet for other classes;
59        and for _crossprod()]
60    
61    - add more comprehensive examples / tests for Schur decomposition
62    
63    - arithmetic for sparse matrices:
64                 <sparseMatrix>  o  <same-dim-sparseMatrix>
65      should return a sparse matrix  for at least "+" and "*" , also %%,
66      and "/" and "%/%" at least when the RHS is non-zero a scalar.
67      Challenge: nice implementation (``common non-0''; but Tsparse* is not uniq).
68    
69    ---
70    
71    - "Math2" , "Math", "Arith":
72       keep triangular and symmetric Matrices when appropriate:
73       particularly desirable for  "Math2": round(), signif()
74    
75    - "d" <-> "l" coercion for all "[TCR]" sparse matrices is really trivial:
76      "d" -> "l" : drops the 'x' slot
77      "l" -> "d" : construct an 'x' slot of all '1'
78      We currently have many of these conversions explicitly, e.g.
79       setAs("dsTMatrix", "lsTMatrix",
80          function(from) new("lsTMatrix", i = from@i, j = from@j, uplo = from@uplo,
81                             Dim = from@Dim, Dimnames = from@Dimnames))
82      but I would rather want to automatically construct all these coercion
83      methods at once by a ``method constructor'', i.e.,
84      for all  "dsparse*" -> "lsparse*" and vice versa.
85      How can one do this {in a documented way} ?
86    
87  - group generics: "Arith", but also "Ops" and "Math";  see  - tcrossprod(x, y) : do provide methods for y != NULL
88    ?Math.data.frame  and the examples in    calling Lapack's DGEMM for "dense"
89    ?SetGeneric    [2005-12-xx: done for dgeMatrix at least]
90    
91  - check to see if the .onLoad function to require the methods package  - "ltTmatrix" :
92    (in the AllClass.R file) is needed    2) new("ltTMatrix", diag = "U", Dim = c(2:2, 2:2)) shows lack of ltTM*_validate
93    
94  - Should the uplo and diag slots continue to be stored as character?  - BUGlet:  Shouldn't lose factorization here:
95    An alternative is to use a factor as in the enum values for the    h6 <- Hilbert(6); chol(h6) ; str(h6) # has factor
96    cblas.    str(H6 <- as(h6, "dspMatrix"))       # has lost factor
97      ## and the same in a similar situation involving  "dpo", "dpp"
98    
99  - Organization of the source code files - right now they are organized  - "Compare" for dgC & dgT  --- want to be able to do  M[M > 10]  etc
   according to class (e.g. dgeMatrix.R, dgeMatrix.h, dgeMatrix.c).  Is  
   there a better way?  
100    
101  - Fix the calculation of the Dim slot for the crossprod method for  - Things like  M[upper.tri(M)] are not really most useful for  sparse
102    dgCMatrix objects (too tired to do that now).    matrices.  --> provide generic functions
103      upperTriMatrix(), lowerTriMatrix()  both with argument  'diag = TRUE'
104      (which can be set to FALSE of course) which are used to extract a
105      triangle from an arbitrary sparse matrix and  return a  "dtCMatrix".
106    
107  - bCrosstab(): do we really want the diagonal "V:V" crosstabs?  - Factorizations: LU [ -> solve() ] and Schur()  for  *sparse*  Matrices.
108      -----------------  LU-sparse is the purpose of all of ./src/UMFPACK/
109            -->  ./inst/doc/UFsparse/*
110      Note that UMFPACK is a bit slow compared to TAUCS etc, according to
111      Gould et al.(2005)
112      And then, possibly eigen(), svd(), qr(), ... for sparse
113      {probably base some on the fast  chol() of CHOLMOD}.
114      ./man/lu.Rd notes that lu() is not yet available for sparse
115    
116  - src/Metis/ : some Makefile needs fixing, as changing src/Metis/*.c    2006-04-15 : now with 'CSparse' { src/cs.c }, have at least solve( <dtC*> )
              does not lead to recompilation.  
117    
118  - man/Matrix.Rd :  has example with dimnames, but we just drop them!  - nicer pedigree examples and tests
                 MM thinks dimnames should be supported (but then ...)  
119    
120  - data/ : names 'mm' and even more 'y' are  ``too short''.  - band(), triu(), tril() for *all*, not just sparse matrices
         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.1349

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