Learn R Programming

calculus (version 1.0.1)

contraction: Numerical and Symbolic Tensor Contraction

Description

Sums over repeated indices in an array.

Usage

contraction(x, i = NULL, drop = TRUE)

Value

array.

Arguments

x

indexed array. See index.

i

subset of repeated indices to sum up. If NULL, the summation takes place on all the repeated indices.

drop

logical. Drop summation indices? If FALSE, keep dummy dimensions.

References

Guidotti E (2022). "calculus: High-Dimensional Numerical and Symbolic Calculus in R." Journal of Statistical Software, 104(5), 1-37. tools:::Rd_expr_doi("10.18637/jss.v104.i05")

See Also

Other tensor algebra: delta(), diagonal(), einstein(), epsilon(), index()

Examples

Run this code
### matrix trace
x <- matrix(letters[1:4], nrow = 2)
contraction(x)

### tensor trace
x <- array(1:27, dim = c(3,3,3))
contraction(x)

#### tensor contraction over repeated indices
x <- array(1:27, dim = c(3,3,3))
index(x) <- c("i","i","j")
contraction(x)

#### tensor contraction over specific repeated indices only
x <- array(1:16, dim = c(2,2,2,2))
index(x) <- c("i","i","k","k")
contraction(x, i = "k")

#### tensor contraction keeping dummy dimensions
x <- array(letters[1:16], dim = c(2,2,2,2))
index(x) <- c("i","i","k","k")
contraction(x, drop = FALSE)

Run the code above in your browser using DataLab