array: Simple Sparse Arrays

Description Usage Arguments Details Note See Also Examples

Description

Data structures and operators for sparse arrays based on a representation by index matrix and value vector.

Usage

1
2
3
4
5
6
7
8

Arguments

i

Integer matrix of array indices.

v

Vector of values.

dim

Integer vector specifying the size of the dimensions.

dimnames

either NULL or the names for the dimensions. This is a list with one component for each dimension, either NULL or a character vector of the length given by dim for that dimension. The list can be named, and the list names will be used as names for the dimensions. If the list is shorter than the number of dimensions, it is extended by NULL's to the length required.

x

An R object; an object of class simple_sparse_array (see Note).

higher

Option to use the dimensions of the values (see Note).

strict

Option to treat violations of sparse representation as error (see Note).

order

Option to reorder elements (see Note).

Details

simple_sparse_array is a generator for a class of “lightweight” sparse arrays, represented by index matrices and value vectors. Currently, only methods for indexing and coercion are implemented.

Note

The zero element is defined as vector(typeof(v), 1L), for example, FALSE for logical values (see vector). Clearly, sparse arrays should not contain zero elements, however, for performance reasons the class generator does not remove them.

If strict = FALSE (default) reduce_simple_sparse_array tries to repair violations of sparse representation (zero, multiple elements), otherwise it stops. If order = TRUE the elements are further reordered (see array).

simplify_simple_sparse_array tries to reduce v. If higher = TRUE (default) augments x by the common dimensions of v (from the left), or the common length. Note that scalar elements are never extended and unused dimensions never dropped.

drop_simple_sparse_array drops unused dimensions.

If prod(dim(x)) > slam_options("max_dense") empty and negative indexing are disabled for [ and [<-. Further, non-negative single (vector) indexing is limited to 52 bits of representation.

See Also

simple_triplet_matrix for sparse matrices.

slam_options for options.

Examples

1
2
3
4
5
x <- array(c(1, 0, 0, 2, 0, 0, 0, 3), dim = c(2, 2, 2))
s <- as.simple_sparse_array(x)
identical(x, as.array(s))

simple_sparse_array(matrix(c(1, 3, 1, 3, 1, 3), nrow = 2), c(1, 2))

Example output

[1] TRUE
A simple sparse array of dimension 3x3x3.

slam documentation built on Jan. 8, 2022, 5:08 p.m.

Related to array in slam...