Hi,

I wonder whether the following may help a little:

Since $\sum (x_i - y_i)^2 = \sum x_i^2 + \sum y_i^2 - 2 \sum x_i y_i$,

we can modify the function as:

temp.distance<-function(x,y){

sum(x^2) + sum(y^2) - 2* x %*% y

}

I think this may be helpful when you need to compute the bootstrap

distance for vectors from a matrix $X$. We simply need to

pre-calculate sum(x^2) for each vector $x$, and access the resulted

from designated vectors, say $xx$. Then we have:

xx<-RowSum(X^2)

another.distance<-function(i,j){ # i and j are the row index of vector x and y

xx[i] + xx[j] - 2*x[i,] %*% x[j,]

}

On Jan 31, 2008 10:28 AM, Jason Liao <

[hidden email]> wrote:

> 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)

> }

>

> I have searched the R-help archives and can not find anything except

> when the arguments are matrices. Thanks for any lead.

>

> Jason

>

> Jason Liao,

http://www.geocities.com/jg_liao> Associate Professor of Biostatistics

> Drexel University School of Public Health

> 1505 Race Street, Mail Stop 1033

> Bellet Building, 6th Floor

> Philadelphia, PA 19102

> phone 215-762-3934

>

>

> ____________________________________________________________________________________

> Looking for last minute shopping deals?

>

> ______________________________________________

>

[hidden email] mailing list

>

https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide

http://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code.

>

--

彭河森

Hesen Peng

Department of Statistics

Fudan University

Shanghai, P. R. C.

______________________________________________

[hidden email] mailing list

https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide

http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.