source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/lightspeed/sqdist.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 685 bytes
Line 
1function m = sqdist(p, q, A)
2% SQDIST      Squared Euclidean or Mahalanobis distance.
3% SQDIST(p,q)   returns m(i,j) = (p(:,i) - q(:,j))'*(p(:,i) - q(:,j)).
4% SQDIST(p,q,A) returns m(i,j) = (p(:,i) - q(:,j))'*A*(p(:,i) - q(:,j)).
5
6% Written by Tom Minka
7
8[d, pn] = size(p);
9[d, qn] = size(q);
10
11if pn == 0 || qn == 0
12  m = zeros(pn,qn);
13  return
14end
15
16if nargin == 2
17 
18  pmag = col_sum(p .* p);
19  qmag = col_sum(q .* q);
20  m = repmat(qmag, pn, 1) + repmat(pmag', 1, qn) - 2*p'*q;
21  %m = ones(pn,1)*qmag + pmag'*ones(1,qn) - 2*p'*q;
22 
23else
24
25  Ap = A*p;
26  Aq = A*q;
27  pmag = col_sum(p .* Ap);
28  qmag = col_sum(q .* Aq);
29  m = repmat(qmag, pn, 1) + repmat(pmag', 1, qn) - 2*p'*Aq;
30 
31end
Note: See TracBrowser for help on using the repository browser.