1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
#### Positive-definite Symmetric Packed Matrices -- Coercion and Methods
setAs("dppMatrix", "dpoMatrix",
function(from) as(as(from, "dsyMatrix"), "dpoMatrix"))
to_dpp <- function(from) as(as(from, "dpoMatrix"), "dppMatrix")
setAs("Matrix", "dppMatrix", to_dpp)# some may fail, but this tries
setAs("matrix", "dppMatrix", to_dpp)
setMethod("chol", signature(x = "dppMatrix"),
function(x, pivot, LINPACK) .Call(dppMatrix_chol, x))
setMethod("rcond", signature(x = "dppMatrix", type = "character"),
function(x, type, ...)
.Call(dppMatrix_rcond, x, type),
valueClass = "numeric")
setMethod("rcond", signature(x = "dppMatrix", type = "missing"),
function(x, type, ...)
.Call(dppMatrix_rcond, x, "O"),
valueClass = "numeric")
setMethod("solve", signature(a = "dppMatrix", b = "missing"),
function(a, b, ...)
.Call(dppMatrix_solve, a),
valueClass = "dppMatrix")
setMethod("solve", signature(a = "dppMatrix", b = "dgeMatrix"),
function(a, b, ...)
.Call(dppMatrix_matrix_solve, a, b),
valueClass = "dgeMatrix")
setMethod("solve", signature(a = "dppMatrix", b = "matrix"),
function(a, b, ...)
.Call(dppMatrix_matrix_solve, a, b),
valueClass = "dgeMatrix")
##setMethod("solve", signature(a = "dppMatrix", b = "numeric"),
## function(a, b, ...)
## .Call(dppMatrix_matrix_solve, a, as.matrix(b)),
## valueClass = "dgeMatrix")
setMethod("solve", signature(a = "dppMatrix", b = "integer"),
function(a, b, ...) {
storage.mode(b) <- "double"
.Call(dppMatrix_matrix_solve, a, as.matrix(b))
}, valueClass = "dgeMatrix")
setMethod("t", signature(x = "dppMatrix"),
function(x) as(t(as(x, "dspMatrix")), "dppMatrix"),
valueClass = "dppMatrix")
|