X and the vector mu with respect to sigma.Fast computation of squared mahalanobis distance between all rows of X and the vector mu with respect to sigma.
maha(X, mu, sigma, ncores = 1, isChol = FALSE)
| X | matrix n by d where each row is a d dimensional random vector. Alternatively   | 
    
|---|---|
| mu | vector of length d, representing the central position.  | 
    
| sigma | covariance matrix (d x d). Alternatively is can be the cholesky decomposition
of the covariance. In that case   | 
    
| ncores | Number of cores used. The parallelization will take place only if OpenMP is supported.  | 
    
| isChol | boolean set to true is   | 
    
a vector of length n where the i-the entry contains the square mahalanobis distance i-th random vector.
# NOT RUN { N <- 100 d <- 5 mu <- 1:d X <- t(t(matrix(rnorm(N*d), N, d)) + mu) tmp <- matrix(rnorm(d^2), d, d) mcov <- tcrossprod(tmp, tmp) myChol <- chol(mcov) rbind(head(maha(X, mu, mcov), 10), head(maha(X, mu, myChol, isChol = TRUE), 10), head(mahalanobis(X, mu, mcov), 10)) # }# NOT RUN { # Performance comparison library(microbenchmark) a <- cbind( maha(X, mu, mcov), maha(X, mu, myChol, isChol = TRUE), mahalanobis(X, mu, mcov)) # Same output as mahalanobis a[ , 1] / a[, 3] a[ , 2] / a[, 3] microbenchmark(maha(X, mu, mcov), maha(X, mu, myChol, isChol = TRUE), mahalanobis(X, mu, mcov)) # }