# matrix: Simple Triplet Matrix In slam: Sparse Lightweight Arrays and Matrices

## Description

Data structures and operators for sparse matrices based on simple triplet representation.

## Usage

 ```1 2 3 4 5 6 7``` ```simple_triplet_matrix(i, j, v, nrow = max(i), ncol = max(j), dimnames = NULL) simple_triplet_zero_matrix(nrow, ncol = nrow, mode = "double") simple_triplet_diag_matrix(v, nrow = length(v)) as.simple_triplet_matrix(x) is.simple_triplet_matrix(x) ```

## Arguments

 `i, j` Integer vectors of row and column indices, respectively. `v` Vector of values. `nrow, ncol` Integer values specifying the number of rows and columns, respectively. Defaults are the maximum row and column indices, respectively. `dimnames` A `dimnames` attribute for the matrix: `NULL` or a `list` of length 2 giving the row and column names respectively. An empty list is treated as `NULL`, and a list of length one as row names. The list can be named, and the list names will be used as names for the dimensions. `mode` Character string specifying the mode of the values. `x` An R object.

## Details

`simple_triplet_matrix` is a generator for a class of “lightweight” sparse matrices, “simply” represented by triplets `(i, j, v)` of row indices `i`, column indices `j`, and values `v`, respectively. `simple_triplet_zero_matrix` and `simple_triplet_diag_matrix` are convenience functions for the creation of empty and diagonal matrices.

Currently implemented operations include the addition, subtraction, multiplication and division of compatible simple triplet matrices, as well as the multiplication and division of a simple triplet matrix and a vector. Comparisons of the elements of a simple triplet matrices with a number are also provided. In addition, methods for indexing, combining by rows (`rbind`) and columns (`cbind`), transposing (`t`), concatenating (`c`), and detecting/extracting duplicated and unique rows are implemented.

`simple_sparse_array` for sparse arrays.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16``` ```x <- matrix(c(1, 0, 0, 2), nrow = 2) s <- as.simple_triplet_matrix(x) identical(x, as.matrix(s)) simple_triplet_matrix(c(1, 4), c(1, 2), c(1, 2)) simple_triplet_zero_matrix(3) simple_triplet_diag_matrix(1:3) cbind(rbind(s, t(s)), rbind(s, s)) ## Not run: ## map to default Matrix class stopifnot(require("Matrix")) sparseMatrix(i = s\$i, j = s\$j, x = s\$v, dims = dim(s), dimnames = dimnames(s)) ## End(Not run) ```

### Example output

```[1] TRUE
A 4x2 simple triplet matrix.
A 3x3 simple triplet matrix.
A 3x3 simple triplet matrix.
A 4x4 simple triplet matrix.
2 x 2 sparse Matrix of class "dgCMatrix"

[1,] 1 .
[2,] . 2
```

slam documentation built on Dec. 26, 2019, 9:07 a.m.