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, such that 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.5-1

Index]