isTriangular {Matrix} R Documentation

## isTriangular() and isDiagonal() Methods

### Description

`isTriangular(M)` returns a `logical` indicating if `M` is a triangular matrix. Analogously, `isDiagonal(M)` is true iff `M` is a diagonal matrix.

Contrary to `isSymmetric()`, these two functions are generically from package Matrix, and hence also define methods for traditional (`class` `"matrix"`) matrices.

By our definition, triangular, diagonal and symmetric matrices are all square, i.e. have the same number of rows and columns.

### Usage

```isDiagonal(object)

isTriangular(object, upper = NA, ...)
```

### Arguments

 `object` any R object, typically a matrix (traditional or Matrix package). `upper` logical, one of `NA` (default), `FALSE`, or `TRUE` where the last two cases require a lower or upper triangular `object` to result in `TRUE`. `...` potentially further arguments for other methods.

### Value

a (“scalar”) logical, `TRUE` or `FALSE`, never `NA`. For `isTriangular()`, if the result is `TRUE`, it may contain an attribute (see `attributes` `"kind"`, either `"L"` or `"U"` indicating if it is a lower or upper triangular matrix.

`isSymmetric`; formal class (and subclasses) `"triangularMatrix"` and `"diagonalMatrix"`.

### Examples

```isTriangular(Diagonal(4))
## is TRUE: a diagonal matrix is also (both upper and lower) triangular
(M <- Matrix(c(1,2,0,1), 2,2))
isTriangular(M) # TRUE (*and* of formal class "dtrMatrix")
isTriangular(as(M, "dgeMatrix")) # still triangular, even if not "formally"
isTriangular(crossprod(M)) # FALSE

isDiagonal(matrix(c(2,0,0,1), 2,2)) # TRUE
```

[Package Matrix version 1.2-17 Index]