Rev 2127 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
### Coercion and Methods for Symmetric MatricessetAs("dspMatrix", "dsyMatrix",function(from) .Call("dspMatrix_as_dsyMatrix", from, PACKAGE = "Matrix"))setAs("dspMatrix", "dgeMatrix",function(from) as(as(from, "dsyMatrix"), "dgeMatrix"))setAs("dspMatrix", "matrix",function(from) as(as(from, "dsyMatrix"), "matrix"))setMethod("rcond", signature(x = "dspMatrix", type = "character"),function(x, type, ...).Call("dspMatrix_rcond", x, type, PACKAGE = "Matrix"),valueClass = "numeric")setMethod("rcond", signature(x = "dspMatrix", type = "missing"),function(x, type, ...).Call("dspMatrix_rcond", x, "O", PACKAGE = "Matrix"),valueClass = "numeric")setMethod("%*%", signature(x = "dspMatrix", y = "dgeMatrix"),function(x, y).Call("dspMatrix_matrix_mm", x, y, TRUE, PACKAGE = "Matrix"),valueClass = "dgeMatrix")setMethod("%*%", signature(x = "dspMatrix", y = "matrix"),function(x, y).Call("dspMatrix_matrix_mm", x, y, FALSE, PACKAGE = "Matrix"),valueClass = "dgeMatrix")##setMethod("%*%", signature(x = "dspMatrix", y = "numeric"),## function(x, y)## .Call("dspMatrix_matrix_mm", x, as.matrix(y), FALSE, PACKAGE = "Matrix"),## valueClass = "dgeMatrix")setMethod("%*%", signature(x = "dspMatrix", y = "integer"),function(x, y) {storage.mode(y) <- "double".Call("dspMatrix_matrix_mm", x, as.matrix(y), FALSE, PACKAGE = "Matrix")}, valueClass = "dgeMatrix")setMethod("solve", signature(a = "dspMatrix", b = "missing"),function(a, b, ...) .Call("dspMatrix_solve", a, PACKAGE = "Matrix"),valueClass = "dspMatrix")setMethod("solve", signature(a = "dspMatrix", b = "matrix"),function(a, b, ...).Call("dspMatrix_matrix_solve", a, b, FALSE, PACKAGE = "Matrix"),valueClass = "dgeMatrix")setMethod("solve", signature(a = "dspMatrix", b = "dgeMatrix"),function(a, b, ...).Call("dspMatrix_matrix_solve", a, as(b,"matrix"), TRUE, PACKAGE = "Matrix"),valueClass = "dgeMatrix")##setMethod("solve", signature(a = "dspMatrix", b = "numeric"),## function(a, b, ...)## .Call("dspMatrix_matrix_solve", a, as.matrix(b), FALSE, PACKAGE = "Matrix"),## valueClass = "dgeMatrix")setMethod("solve", signature(a = "dspMatrix", b = "integer"),function(a, b, ...) {storage.mode(b) <- "double".Call("dspMatrix_matrix_solve", a, as.matrix(b), FALSE, PACKAGE = "Matrix")}, valueClass = "dgeMatrix")setMethod("norm", signature(x = "dspMatrix", type = "character"),function(x, type, ...) .Call("dspMatrix_norm", x, type, PACKAGE = "Matrix"),valueClass = "numeric")setMethod("norm", signature(x = "dspMatrix", type = "missing"),function(x, type, ...) .Call("dspMatrix_norm", x, "O", PACKAGE = "Matrix"),valueClass = "numeric")setMethod("t", signature(x = "dspMatrix"),function(x) as(t(as(x, "dsyMatrix")), "dspMatrix"),valueClass = "dspMatrix")setMethod("unpack", signature(x = "dspMatrix"),function(x, ...) as(x, "dsyMatrix"),valueClass = "dsyMatrix")## The following allows as(*, "dppMatrix").## However it *requires* that dppMatrix_chol() gives an error## for non-positive-semi-definite matrices -- which it does since 2005-10-03## FIXME: This gives an error for singular pos.SEMI-def. matrices:setIs("dspMatrix", "dppMatrix",test = function(obj)"try-error" != class(try(.Call("dppMatrix_chol", obj, PACKAGE = "Matrix"), TRUE)),replace = function(obj, value) {obj@uplo <- value@uploobj@rcond <- value@rcondobj@factors <- value@factorsobj@x <- value@xobj@Dim <- value@Dimobj@Dimnames <- value@Dimnamesobj})