Skip to contents

Computes x %*% t(y). If y is missing, computes x %*% t(x). Above rank 2 the last two axes are the matrix and the leading ones are batch axes, as in nv_matmul(): only the matrix is transposed.

Usage

nv_tcrossprod(x, y = NULL)

# S3 method for class 'AnvlArray'
tcrossprod(x, y = NULL, ...)

Arguments

x

(arrayish)
An array with at least 2 axes, as for base::tcrossprod(). Can be any numeric data type; x and y are promoted to a common data type.

y

(arrayish | NULL)
Optional second array. If NULL, uses x.

...

No additional arguments.

Value

(arrayish)
Has the operands' common data type, and the shape of x %*% t(y).

Examples

# `x %*% t(x)`, so a 2x3 gives a 2x2
x <- nv_matrix(1:6, nrow = 2, dtype = "f32")
nv_tcrossprod(x)
#> AnvlArray
#>  35 44
#>  44 56
#> [ CPUf32{2,2} ]