fastest way to compute the squared Euclidean distance between two vectors in R
Jason Liao <jg_liao at yahoo.com> writes:
I have a program which needs to compute squared Euclidean distance
between two vectors million of times, which the Rprof shows is the
bottleneck. I wondered if there is any faster way than my own simple
function
distance2 = function(x1, x2)
{
temp = x1-x2
sum(temp*temp)
}
You might try: distance2 <- function(x1, x2) crossprod(x1-x2) And if you do not have to pass the distance2 function itself to some other function, you might also spare the indirection trhough the distance2 function and call crossprod directly (replacing the comma by a minus sign :-).
Fran?ois Pinard http://pinard.progiciels-bpi.ca