SCM

SCM Repository

[matrix] Annotation of /pkg/TODO
ViewVC logotype

Annotation of /pkg/TODO

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1655 - (view) (download)

1 : bates 1236 Check for DimNames propagation in coercion and other operations.
2 : bates 984 ------
3 : bates 1578 - rcond methods for sparseMatrix classes
4 : bates 918
5 : bates 344 - Report the problem in the Linux ldexp manual page. The second and
6 :     third calls in the Synopsis should be to ldexpf and ldexpl.
7 : maechler 472
8 : maechler 868 - [,] indexing: for sparse "works", but not yet for negative indices!
9 : maechler 472
10 : bates 536 - consider moving alloc3Darray from ./src/Mutils.c to
11 : maechler 538 $(RSRC)/src/base/array.c
12 : bates 1578 ------
13 : maechler 634 - provide methods for "dspMatrix" and "dppMatrix"!
14 :    
15 : maechler 538 - implement (more) methods for supporting "packed" (symmetric / triangular)
16 : maechler 634 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 : maechler 538
19 : maechler 834 (have some dtr* <-> dtp*)
20 :    
21 : bates 1578 -----
22 : bates 645
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 : maechler 675 [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 : maechler 696
31 :     - arithmetic for sparse matrices:
32 : maechler 935 <sparseMatrix> o <same-dim-sparseMatrix>
33 : maechler 696 should return a sparse matrix for at least "+" and "*" , also %%,
34 :     and "/" and "%/%" at least when the RHS is non-zero a scalar.
35 : maechler 935 Challenge: nice implementation (``common non-0''; but Tsparse* is not uniq).
36 : maechler 696
37 : bates 1578 -----
38 : bates 712
39 : maechler 935 - "Math2" , "Math", "Arith":
40 :     keep triangular and symmetric Matrices when appropriate:
41 :     particularly desirable for "Math2": round(), signif()
42 : maechler 956
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 : maechler 1087
55 : maechler 1097 - tcrossprod(x, y) : do provide methods for y != NULL
56 :     calling Lapack's DGEMM for "dense"
57 : maechler 1109 [2005-12-xx: done for dgeMatrix at least]
58 :    
59 : maechler 1201 - 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 : maechler 1226
64 : maechler 1245 - 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 : maechler 1592 - Factorizations: LU done; also Schur() for *sparse* Matrices.
71 : maechler 1253
72 : maechler 1655 - band(), triu(), tril() for *all* including "matrix", not just sparse matrices
73 : maechler 1575
74 :     - is.na() method for all our matrices [ ==> which(*, arr.ind=TRUE) might work ]
75 : maechler 1592
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 : maechler 1619
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 : maechler 1654
87 :     - implement .Call(Csparse_scale, ....) interfacing to cholmod_scale()
88 :     in src/CHOLMOD/Include/cholmod_matrixops.h : for another function
89 :     specifically for multiplying a cholmod_sparse object by a diagonal matrix.
90 :     Use it in %*% and [t]crossprod methods.
91 :    
92 :     - chol() and determinant() should ``work'': proper result or "good" error
93 :     message.

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