SCM Repository

[matrix] Diff of /pkg/TODO
 [matrix] / pkg / TODO

Diff of /pkg/TODO

revision 2120, Tue Mar 4 21:44:41 2008 UTC revision 2175, Wed Apr 23 11:23:50 2008 UTC
# Line 25  Line 25
25
26    For triangular matrices, more specifically make sure the four rules of    For triangular matrices, more specifically make sure the four rules of
27    "triangular matrix algebra" (Golub+Van Loan 1996, 3.1.8, p.93) are    "triangular matrix algebra" (Golub+Van Loan 1996, 3.1.8, p.93) are
28    fulfilled;  currently  <dtC> %*% <dtC> --> <dgC>    fulfilled; now(2008-03-06) ok for Csparse; not yet for <dtr> %*% <dtr>
29
30  - "d" <-> "l" coercion for all "[TCR]" sparse matrices is really trivial:  - "d" <-> "l" coercion for all "[TCR]" sparse matrices is really trivial:
31    "d" -> "l" : drops the 'x' slot    "d" -> "l" : drops the 'x' slot
# Line 121  Line 121
121    above currently goes via "matrix" and back instead of using the 'x' slot    above currently goes via "matrix" and back instead of using the 'x' slot
122    directly; in particular, the triangular* "class property" is lost!    directly; in particular, the triangular* "class property" is lost!
123
- image(M, ..): Think about an optional smart option which keeps
"0 |-> transparent" and allows colors to differentiate negative and
positive entries.

124  - examples for solve( Cholesky(.), b, system = c("A", "LDLt"....))  - examples for solve( Cholesky(.), b, system = c("A", "LDLt"....))
125    probably rather in man/CHMfactor-class.Rd than man/Cholesky.Rd    probably rather in man/CHMfactor-class.Rd than man/Cholesky.Rd
126
127    - LDL(<CHMsimpl>) looks relatively easy; via  "tCsparse_diag()"
128       {diagonal entries of *triangular* Csparse}
129      --> see comment in determinant(<dsC>) in R/dsCMatrix.R, will give
130      faster determinant
131
132  - tr(A %*% B) {and even  tr(A %*% B %*% C) ...} are also needed  - tr(A %*% B) {and even  tr(A %*% B %*% C) ...} are also needed
133    frequently in some computations {conditional normal distr. ...}.    frequently in some computations {conditional normal distr. ...}.
134    Since this can be done faster than by    Since this can be done faster than by
# Line 144  Line 145
145
146    This is not really acceptable and currently influences  rcond() as well.    This is not really acceptable and currently influences  rcond() as well.
147
- chol() and qr() generic:  currently have *two* arguments, and give the msg

>  New generic for "chol" does not agree with implicit generic from package
>  "base"; a new generic will be assigned with package "Matrix"

(and ditto for "qr")

It was mentioned by an R-core member that he thought it did not make
sense to also dispatch on 'tol' or 'pivot' ...  --> maybe change that..

148  - eigen() should become generic, and get a method at least for diagonal,  - eigen() should become generic, and get a method at least for diagonal,
149    but also for symmetric -> dsyMatrix  [LAPACK dsyev() uses UPLO !],    but also for symmetric -> dsyMatrix  [LAPACK dsyev() uses UPLO !],
150    but also simply for dgeMatrix (without going via tradition matrices).    but also simply for dgeMatrix (without going via tradition matrices).
# Line 174  Line 165
165    replCmat() uses as_CspClass() and drop0(.) which itself call    replCmat() uses as_CspClass() and drop0(.) which itself call
166    as_CspClass() quite a bit.  --> try to replace these by    as_CspClass() quite a bit.  --> try to replace these by
167    as(*, "CsparseMatrix"); forceSymmetric, etc.    as(*, "CsparseMatrix"); forceSymmetric, etc.
168
169    - implement fast diag(<triangularCsparse>) via calling new
170      src/Csparse.c's diag_tC_ptr()
171
172    - add examples (and tests!) for update(<CHMfactor>, ..) and
173      Cholesky(......, Imult), also tests for hidden {hence no examples}
174      ldetL2up() { R/CHMfactor.R }
175
176    - chol(<nsCMatrix>)  gives "temporarily disabled"
177      but should give the *symbolic* factorization;
178      similarly Cholesky(.) is not enabled
179
180    - writeMM(obj, file=stdout()) creates file "1" since file is silently
181      assumed to be a string, i.e. cannot be a connection.
182      An R (instead of C) version should be pretty simple, and would work with
183      connections automatically ["lsparse" become either "real" or
184      "pattern", "depending if they have NAs or not].

Legend:
 Removed from v.2120 changed lines Added in v.2175