
function C = k2ct_loc(loc,bins,index)

% This program computes k-counts for k2_local

% Written by: TONY E. SMITH, 6/18/99

% INPUTS:
%     (i)   loc    = file of locations (xi,yi), i=1..m
%     (ii)  bins   = vector of distance values (ordered low to high)
%     (iii) index  = 0 for initial population k-counts
%                    1 for simulated counts (using only first point)

% OUTPUTS: DAT = (bins x 1) vector of counts

%compiling initializations

%mbrealvector(bins);
%mbintscalar(index);

m = length(loc(:,1)) ;


if index == 0 %k-counts for all pop1 points

	%Compute pairwise distances

	D = zeros(m*(m-1)/2, 3) ; %Matrix of loc-dist pairs

	i = 1 ;

	k = 1 ;  %counter for D.

	while i < m
   
   	j = i + 1 ;
   
   	while j <= m
      
      	D(k,1) = sqrt((loc(i,1) - loc(j,1))^2 + ...
         	(loc(i,2) - loc(j,2))^2);

	    D(k,2) = i ;
      
   	    D(k,3) = j ;  
                
      	j = j + 1 ;
      
      	k = k + 1 ;
      
   	end
   
   	i = i + 1 ;
   
	end

	%Count point frequencies

	B = length(bins);

	C = zeros(m,B) ;

	[M,junk] = size(D) ;

	Dmax = max(bins); %maximum relevant distance

	%mbrealscalar(Dmax);

	Dmin = min(bins); %minimum relevant distance

	%mbrealscalar(Dmin);

	
	k = 1 ;

	while k <= M 
   
  
  	 if D(k,1) <= Dmax
                        
   	   i = D(k,2) ;
      
      	j = D(k,3) ; 
      
      	if D(k,1) <= Dmin
         
         	C(i,:) = C(i,:) + 1;
         
         	C(j,:) = C(j,:) + 1;
         
      	else
         
         	dist = max([D(k,1),Dmin]);
         
         	%mbrealscalar(dist);
         
         	b = B ;
         
         	while bins(b) >= dist
         
         		C(i,b) = C(i,b) + 1 ;
         
         		C(j,b) = C(j,b) + 1 ; %add to both i and j 
         
         		b = b - 1 ;
         
         	end
         
      	end %end if >=
      
   	end %end if <=
   
   	k = k + 1 ;
   
	end

	   
   
else  %k-count for only first point in each simulation
   
   %Compute pairwise distances

	D = zeros(m-1) ; %Matrix of loc-dist pairs

	   
	for j = 2:m
   
      	D(j) = sqrt((loc(1,1) - loc(j,1))^2 + ...
         	(loc(1,2) - loc(j,2))^2);
	            
   end
   
   
	%Count point frequencies

	B = length(bins);

	C = zeros(1,B) ;

	Dmax = max(bins); %maximum relevant distance

	%mbrealscalar(Dmax);

	Dmin = min(bins); %minimum relevant distance

	%mbrealscalar(Dmin);

	%Now compute k-counts
	
	for j = 2:m    
  
  	 if D(j) <= Dmax
                        
   	        
      	if D(j) <= Dmin
         
         	C = C + 1;         
                  
      	else
         
         	dist = max([D(j),Dmin]);
         
         	%mbrealscalar(dist);
         
         	b = B ;
         
         	while bins(b) >= dist
         
         		C(b) = C(b) + 1 ;         
         	        
         		b = b - 1 ;
         
         	end
         
      	end %end if >=
      
   	end %end if <=
      	   
	end %end main loop

end %end outer 'if' loop

 

