# SCM Repository

# Annotation of /pkg/TODO

Parent Directory | 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 |