require(tensorEVD)
# Generate rectangular matrices A (nrowA x ncolA) and B (nrowB x ncolB)
nA = c(10,15)
nB = c(12,8)
A = matrix(rnorm(nA[1]*nA[2]), nrow=nA[1])
B = matrix(rnorm(nB[1]*nB[2]), nrow=nB[1])
# Define IDs for a Hadamard of size n1 x n2
n = c(1000,500)
IDrowA = sample(nA[1], n[1], replace=TRUE)
IDrowB = sample(nB[1], n[1], replace=TRUE)
IDcolA = sample(nA[2], n[2], replace=TRUE)
IDcolB = sample(nB[2], n[2], replace=TRUE)
a = rnorm(1)
b = rnorm(1)
K1 = Sum(a, A, b, B, IDrowA, IDrowB, IDcolA, IDcolB)
# (it must equal to:)
K2 = a*A[IDrowA,IDcolA] + b*B[IDrowB,IDcolB]
all.equal(K1,K2)
Run the code above in your browser using DataLab