Aliases: isTriangular isTriangular-methods isDiagonal isDiagonal-methods isTriangular,diagonalMatrix-method isTriangular,indMatrix-method isTriangular,matrix-method isTriangular,symmetricMatrix-method isTriangular,triangularMatrix-method isDiagonal,CsparseMatrix-method isDiagonal,RsparseMatrix-method isDiagonal,TsparseMatrix-method isDiagonal,diagonalMatrix-method isDiagonal,indMatrix-method isDiagonal,matrix-method isDiagonal,packedMatrix-method isDiagonal,unpackedMatrix-method isTriangular,dgCMatrix-method isTriangular,dgRMatrix-method isTriangular,dgTMatrix-method isTriangular,dgeMatrix-method isTriangular,lgCMatrix-method isTriangular,lgRMatrix-method isTriangular,lgTMatrix-method isTriangular,lgeMatrix-method isTriangular,ngCMatrix-method isTriangular,ngRMatrix-method isTriangular,ngTMatrix-method isTriangular,ngeMatrix-method
Keywords: methods
### ** Examples isTriangular(Diagonal(4))
[1] TRUE attr(,"kind") [1] "U"
## is TRUE: a diagonal matrix is also (both upper and lower) triangular (M <- Matrix(c(1,2,0,1), 2,2))
2 x 2 Matrix of class "dtrMatrix" [,1] [,2] [1,] 1 . [2,] 2 1
isTriangular(M) # TRUE (*and* of formal class "dtrMatrix")
[1] TRUE attr(,"kind") [1] "L"
isTriangular(as(M, "generalMatrix")) # still triangular, even if not "formally"
[1] TRUE attr(,"kind") [1] "L"
isTriangular(crossprod(M)) # FALSE
[1] FALSE
isDiagonal(matrix(c(2,0,0,1), 2,2)) # TRUE
[1] TRUE
## Look at implementations: showMethods("isTriangular", includeDefs = TRUE)
Function: isTriangular (package Matrix) object="dgCMatrix" function (object, upper = NA, ...) .Call(Csparse_is_triangular, object, upper) object="dgeMatrix" function (object, upper = NA, ...) .Call(unpackedMatrix_is_triangular, object, upper) object="dgRMatrix" function (object, upper = NA, ...) .Call(Rsparse_is_triangular, object, upper) object="dgTMatrix" function (object, upper = NA, ...) .Call(Tsparse_is_triangular, object, upper) object="diagonalMatrix" function (object, upper = NA, ...) if (is.na(upper)) `attr<-`(TRUE, "kind", "U") else TRUE object="indMatrix" function (object, upper = NA, ...) { d <- object@Dim if ((n <- d[1L]) != d[2L]) return(FALSE) i <- seq_len(n) j <- object@perm if (is.na(upper)) { if (all(j >= i)) return(`attr<-`(TRUE, "kind", "U")) if (all(i <= j)) return(`attr<-`(TRUE, "kind", "L")) FALSE } else if (upper) { all(j >= i) } else { all(i <= j) } } object="lgCMatrix" function (object, upper = NA, ...) .Call(Csparse_is_triangular, object, upper) object="lgeMatrix" function (object, upper = NA, ...) .Call(unpackedMatrix_is_triangular, object, upper) object="lgRMatrix" function (object, upper = NA, ...) .Call(Rsparse_is_triangular, object, upper) object="lgTMatrix" function (object, upper = NA, ...) .Call(Tsparse_is_triangular, object, upper) object="matrix" function (object, upper = NA, ...) .Call(matrix_is_triangular, object, upper) object="ngCMatrix" function (object, upper = NA, ...) .Call(Csparse_is_triangular, object, upper) object="ngeMatrix" function (object, upper = NA, ...) .Call(unpackedMatrix_is_triangular, object, upper) object="ngRMatrix" function (object, upper = NA, ...) .Call(Rsparse_is_triangular, object, upper) object="ngTMatrix" function (object, upper = NA, ...) .Call(Tsparse_is_triangular, object, upper) object="symmetricMatrix" function (object, upper = NA, ...) { if (!isDiagonal(object)) FALSE else if (is.na(upper)) `attr<-`(TRUE, "kind", "U") else TRUE } object="triangularMatrix" function (object, upper = NA, ...) { if (is.na(upper)) `attr<-`(TRUE, "kind", object@uplo) else object@uplo == (if (upper) "U" else "L") || isDiagonal(object) }
showMethods("isDiagonal", includeDefs = TRUE)
Function: isDiagonal (package Matrix) object="CsparseMatrix" function (object) .Call(Csparse_is_diagonal, object) object="diagonalMatrix" function (object) TRUE object="indMatrix" function (object) { d <- object@Dim if ((n <- d[1L]) != d[2L]) return(FALSE) all(object@perm == seq_len(n)) } object="matrix" function (object) .Call(matrix_is_diagonal, object) object="packedMatrix" function (object) .Call(packedMatrix_is_diagonal, object) object="RsparseMatrix" function (object) .Call(Rsparse_is_diagonal, object) object="TsparseMatrix" function (object) .Call(Tsparse_is_diagonal, object) object="unpackedMatrix" function (object) .Call(unpackedMatrix_is_diagonal, object)