SCM

SCM Repository

[matrix] Annotation of /pkg/TODO
ViewVC logotype

Annotation of /pkg/TODO

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1326 - (view) (download)

1 : bates 1233 -----
2 : bates 1326 Suitably adjust classes of matrices after subscripting. Currently
3 :     head(Hilbert(9))
4 :     and the equivalent expression
5 :     Hilbert(9)[1:4,]
6 :     throws an error because the result is not symmetric, but the result of
7 :     subscripting a symmetric matrix does not need to be symmetric.
8 :     Perhaps we should try to propagate the class to the subscripted matrix
9 :     but, if that fails its test, fall back on a general matrix class.
10 :     That is, the fallback class for dsyMatrix, etc. is dgeMatrix; the
11 :     fallback class for dsCMatrix is dgCMatrix, etc.
12 :     -----
13 : bates 1243 Modify the one-argument form of the anova method for lmer objects (yet
14 :     again) to calculate the F ratios. It is the df, not the ratio that
15 :     is controversial.
16 :     Should there be an extractor function for the mean square error? If
17 : bates 1322 so, what should it be called?
18 : bates 1243 -----
19 : bates 1236 Check for DimNames propagation in coercion and other operations.
20 :     -----
21 : bates 1233 - Revive the "lmer" and "glmer" classes. Slots like "family" should
22 :     be in "glmer" only. Many methods for "lmer" can be simplified as,
23 :     for example, they will always use the scale factor.
24 :    
25 :     - Add a "pedigree" class and methods for it. Allow a pedigree
26 :     argument in lmer.
27 :    
28 : bates 984 ------
29 : bates 918 - Sparse matrix methods can now be based on the CHOLMOD package. We
30 :     will need to migrate from the current code to CHOLMOD-based code
31 :     using #ifdef USE_CHOLMOD. Some of the things to be done
32 :    
33 :     - Move documentation from subdirectories of src to inst/doc
34 :     - Write utilities to create a cholmod_sparse pointer from a
35 :     dgCMatrix or lgCMatrix (or zgCMatrix) object without copying and
36 :     allocating.
37 :     - Start adding simple S4 methods (rcond, %*%, +, cbind, t).
38 :    
39 : bates 344 - Report the problem in the Linux ldexp manual page. The second and
40 :     third calls in the Synopsis should be to ldexpf and ldexpl.
41 : maechler 472
42 : maechler 868 - [,] indexing: for sparse "works", but not yet for negative indices!
43 : maechler 472
44 : bates 536 - consider moving alloc3Darray from ./src/Mutils.c to
45 : maechler 538 $(RSRC)/src/base/array.c
46 : bates 536
47 : maechler 517 -------
48 :    
49 : maechler 634 - provide methods for "dspMatrix" and "dppMatrix"!
50 :    
51 : maechler 538 - implement (more) methods for supporting "packed" (symmetric / triangular)
52 : maechler 634 matrices; particularly something like pack() and unpack() [to/from our
53 :     classes from/to "numeric"] --- have already man/unpack.Rd but no method yet!
54 : maechler 538
55 : maechler 834 (have some dtr* <-> dtp*)
56 :    
57 : bates 645 ---
58 :    
59 :     - combine the C functions for multiplication by special forms and
60 :     solution wrt special forms by using a 'right' argument and a
61 :     'classed' argument.
62 : maechler 675 [done with dgeMatrix_matrix_mm(); not yet for other classes;
63 :     and for _crossprod()]
64 :    
65 :     - add more comprehensive examples / tests for Schur decomposition
66 : maechler 696
67 :     - arithmetic for sparse matrices:
68 : maechler 935 <sparseMatrix> o <same-dim-sparseMatrix>
69 : maechler 696 should return a sparse matrix for at least "+" and "*" , also %%,
70 :     and "/" and "%/%" at least when the RHS is non-zero a scalar.
71 : maechler 935 Challenge: nice implementation (``common non-0''; but Tsparse* is not uniq).
72 : maechler 696
73 : bates 712 ---
74 :    
75 : maechler 935 - "Math2" , "Math", "Arith":
76 :     keep triangular and symmetric Matrices when appropriate:
77 :     particularly desirable for "Math2": round(), signif()
78 : maechler 956
79 :     - "d" <-> "l" coercion for all "[TCR]" sparse matrices is really trivial:
80 :     "d" -> "l" : drops the 'x' slot
81 :     "l" -> "d" : construct an 'x' slot of all '1'
82 :     We currently have many of these conversions explicitly, e.g.
83 :     setAs("dsTMatrix", "lsTMatrix",
84 :     function(from) new("lsTMatrix", i = from@i, j = from@j, uplo = from@uplo,
85 :     Dim = from@Dim, Dimnames = from@Dimnames))
86 :     but I would rather want to automatically construct all these coercion
87 :     methods at once by a ``method constructor'', i.e.,
88 :     for all "dsparse*" -> "lsparse*" and vice versa.
89 :     How can one do this {in a documented way} ?
90 : maechler 1087
91 : maechler 1097 - tcrossprod(x, y) : do provide methods for y != NULL
92 :     calling Lapack's DGEMM for "dense"
93 : maechler 1109 [2005-12-xx: done for dgeMatrix at least]
94 :    
95 :     - "ltTmatrix" :
96 :     2) new("ltTMatrix", diag = "U", Dim = c(2:2, 2:2)) shows lack of ltTM*_validate
97 : maechler 1201
98 :     - BUGlet: Shouldn't lose factorization here:
99 :     h6 <- Hilbert(6); chol(h6) ; str(h6) # has factor
100 :     str(H6 <- as(h6, "dspMatrix")) # has lost factor
101 :     ## and the same in a similar situation involving "dpo", "dpp"
102 : maechler 1226
103 :     - "Compare" for dgC & dgT --- want to be able to do M[M > 10] etc
104 : maechler 1245
105 :     - Things like M[upper.tri(M)] are not really most useful for sparse
106 :     matrices. --> provide generic functions
107 :     upperTriMatrix(), lowerTriMatrix() both with argument 'diag = TRUE'
108 :     (which can be set to FALSE of course) which are used to extract a
109 :     triangle from an arbitrary sparse matrix and return a "dtCMatrix".
110 :    
111 :     - Factorizations: LU [ -> solve() ] and Schur() for *sparse* Matrices.
112 :     ----------------- LU-sparse is the purpose of all of ./src/UMFPACK/
113 :     --> ./inst/doc/UFsparse/*
114 : maechler 1315 Note that UMFPACK is a bit slow compared to TAUCS etc, according to
115 :     Gould et al.(2005)
116 : maechler 1245 And then, possibly eigen(), svd(), qr(), ... for sparse
117 :     {probably base some on the fast chol() of CHOLMOD}.
118 : maechler 1315 ./man/lu.Rd notes that lu() is not yet available for sparse
119 : maechler 1253
120 :     2006-04-15 : now with 'CSparse' { src/cs.c }, have at least solve( <dtC*> )
121 :    
122 : maechler 1315
123 : maechler 1290 - nicer pedigree examples and tests

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