Skip to contents

Multiply by eclairs matrix using special structure to achieve linear instead of cubic time complexity.

Usage

mult_eclairs(X, U1, dSq1, lambda, nu, alpha, sigma, transpose = FALSE)

Arguments

X

matrix to be transformed so *columns* are independent

U1

orthonormal matrix with k columns representing the low rank component

dSq1

eigen values so that \(U_1 diag(d_1^2) U_1^T\) is the low rank component

lambda

shrinkage parameter for the convex combination.

nu

diagonal value of target matrix in shrinkage

alpha

exponent to be evaluated

sigma

standard deviation of each feature

transpose

logical, (default FALSE) indicating if X should be transposed first

Value

a matrix product

Details

Let \(\Sigma = U_1 diag(d_1^2) U_1^T * (1-\lambda) + diag(\nu\lambda, p)\), where \(\lambda\) shrinkage parameter for the convex combination between a low rank matrix and the diagonal matrix with values \(\nu\).

Evaluate \(X \Sigma^\alpha\) using special structure of the eclairs decomposition in \(O(k^2p)\) when there are \(k\) components in the decomposition.