triangularMatrix-class {Matrix} | R Documentation

## Virtual Class of Triangular Matrices in Package Matrix

### Description

The virtual class of triangular matrices,`"triangularMatrix"`, the package Matrix contains square (`nrow == ncol`) numeric and logical, dense and sparse matrices, e.g., see the examples. A main use of the virtual class is in methods (and C functions) that can deal with all triangular matrices.

### Slots

`uplo`:

  String (of class `"character"`). Must be either "U", for upper triangular, and "L", for lower triangular.

`diag`:

  String (of class `"character"`). Must be either `"U"`, for unit triangular (diagonal is all ones), or `"N"` for non-unit. The diagonal elements are not accessed internally when `diag` is `"U"`. For `denseMatrix` classes, they need to be allocated though, i.e., the length of the `x` slot does not depend on `diag`.

`Dim`, `Dimnames`:

  The dimension (a length-2 `"integer"`) and corresponding names (or `NULL`), inherited from the `Matrix`, see there.

### Extends

Class `"Matrix"`, directly.

### Methods

There's a C function `triangularMatrix_validity()` called by the internal validity checking functions.

Currently, `Schur`, `isSymmetric` and `as()` (i.e. `coerce`) have methods with `triangularMatrix` in their signature.

### See Also

`isTriangular()` for testing any matrix for triangularity; classes `symmetricMatrix`, and, e.g., `dtrMatrix` for numeric dense matrices, or `ltCMatrix` for a logical sparse matrix subclass of `"triangularMatrix"`.

### Examples

    showClass("triangularMatrix")

    ## The names of direct subclasses:
    scl <- getClass("triangularMatrix")@subclasses
    directly <- sapply(lapply(scl, slot, "by"), length) == 0
    names(scl)[directly]

    (m <- matrix(c(5,1,0,3), 2))
    as(m, "triangularMatrix")

[Package Matrix version 1.2-6 Index]