SCM

SCM Repository

[matrix] Annotation of /pkg/TODO
ViewVC logotype

Annotation of /pkg/TODO

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1109 - (view) (download)

1 : bates 984 - Migration of lmer from the mer representation to the mer2
2 :     representation and the use of the CHOLMOD code for the sparse
3 :     matrix decomposition. Some of the things that need to be done.
4 :    
5 :     - Matrices in the mer2 representation are classed matrices, in the
6 :     mer representation they were unclassed. Any parts inside the C
7 :     code that would access, for example,
8 :     REAL(GET_SLOT(x, Matrix_RXXSym))
9 :     need to be modified to access
10 :     REAL(GET_SLOT(GET_SLOT(x, Matrix_RXXSym), Matrix_xSym))
11 :     This is especially important for Omega but I think I have done
12 :     those changes already.
13 :    
14 :     - The components named *X* in an mer object refer to an augmented
15 :     design matrix of p+1 columns. In the mer2 object there are
16 :     separate slots for rZy and rXy. The scalar y'y is the first
17 :     element of devComp.
18 :    
19 :     - Presently nc is of length nf+1 and the last element is n, the
20 :     number of observations. This value should be moved to devComp and
21 :     nc made of length nf.
22 :    
23 :     - The slot L is a list of length 1 that contains an ExternalPointer
24 :     to a cholmod_factor object. This contains a permutation which is
25 :     most easily accessible through cholmod_solve(CHOLMOD_P,...) or
26 :     cholmod_solve(CHOLMOD_Pt,...). The ZtX, Zty, RZX and rZy slots actually
27 :     contain P%*%RZX and P%*%rZy
28 :    
29 :     ------
30 : bates 918 - Sparse matrix methods can now be based on the CHOLMOD package. We
31 :     will need to migrate from the current code to CHOLMOD-based code
32 :     using #ifdef USE_CHOLMOD. Some of the things to be done
33 :    
34 :     - Move documentation from subdirectories of src to inst/doc
35 :     - Write utilities to create a cholmod_sparse pointer from a
36 :     dgCMatrix or lgCMatrix (or zgCMatrix) object without copying and
37 :     allocating.
38 :     - Start adding simple S4 methods (rcond, %*%, +, cbind, t).
39 :    
40 : bates 344 - Report the problem in the Linux ldexp manual page. The second and
41 :     third calls in the Synopsis should be to ldexpf and ldexpl.
42 : maechler 472
43 : maechler 868 - [,] indexing: for sparse "works", but not yet for negative indices!
44 : maechler 472
45 : bates 536 - consider moving alloc3Darray from ./src/Mutils.c to
46 : maechler 538 $(RSRC)/src/base/array.c
47 : bates 536
48 : maechler 517 -------
49 :    
50 : maechler 634 - provide methods for "dspMatrix" and "dppMatrix"!
51 :    
52 : maechler 538 - implement (more) methods for supporting "packed" (symmetric / triangular)
53 : maechler 634 matrices; particularly something like pack() and unpack() [to/from our
54 :     classes from/to "numeric"] --- have already man/unpack.Rd but no method yet!
55 : maechler 538
56 : maechler 834 (have some dtr* <-> dtp*)
57 :    
58 : bates 645 ---
59 :    
60 :     - combine the C functions for multiplication by special forms and
61 :     solution wrt special forms by using a 'right' argument and a
62 :     'classed' argument.
63 : maechler 675 [done with dgeMatrix_matrix_mm(); not yet for other classes;
64 :     and for _crossprod()]
65 :    
66 :     - add more comprehensive examples / tests for Schur decomposition
67 : maechler 696
68 :     - arithmetic for sparse matrices:
69 : maechler 935 <sparseMatrix> o <same-dim-sparseMatrix>
70 : maechler 696 should return a sparse matrix for at least "+" and "*" , also %%,
71 :     and "/" and "%/%" at least when the RHS is non-zero a scalar.
72 : maechler 935 Challenge: nice implementation (``common non-0''; but Tsparse* is not uniq).
73 : maechler 696
74 : bates 712 ---
75 :    
76 : bates 881 - Create a Harwell-Boeing version of the matrix mm and the response
77 :     vector y in inst/external and remove them from the data directory.
78 :     Modify any examples that use them and modify the Comparisons vignette.
79 : maechler 935
80 :     - "Math2" , "Math", "Arith":
81 :     keep triangular and symmetric Matrices when appropriate:
82 :     particularly desirable for "Math2": round(), signif()
83 : maechler 956
84 :     - "d" <-> "l" coercion for all "[TCR]" sparse matrices is really trivial:
85 :     "d" -> "l" : drops the 'x' slot
86 :     "l" -> "d" : construct an 'x' slot of all '1'
87 :     We currently have many of these conversions explicitly, e.g.
88 :     setAs("dsTMatrix", "lsTMatrix",
89 :     function(from) new("lsTMatrix", i = from@i, j = from@j, uplo = from@uplo,
90 :     Dim = from@Dim, Dimnames = from@Dimnames))
91 :     but I would rather want to automatically construct all these coercion
92 :     methods at once by a ``method constructor'', i.e.,
93 :     for all "dsparse*" -> "lsparse*" and vice versa.
94 :     How can one do this {in a documented way} ?
95 : maechler 1087
96 : maechler 1097 - tcrossprod(x, y) : do provide methods for y != NULL
97 :     calling Lapack's DGEMM for "dense"
98 : maechler 1109 [2005-12-xx: done for dgeMatrix at least]
99 :    
100 :     - "ltTmatrix" :
101 :     2) new("ltTMatrix", diag = "U", Dim = c(2:2, 2:2)) shows lack of ltTM*_validate

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