This is dist.m in view mode; [Download] [Up]
#include "math.h" #include "stdio.h" #include "tspheaders.h" #include "TwoDView.h" #include "TwoDTSP.h" #include "prototypes.h" /************************************************************************/ /* This function calculates the distance between every pair of cities in the problem. The distance between city i and city j where i < j is stored only once as k = i*NumberOfCities - i*(i+1)/2 + (j-i+1). Hence, the length of the distance array is NumberOfCities*(NumberOfCities - 1)/2. */ /************************************************************************/ /* Parameters: float *Data: Pointer to area that contains coordinates of cities. float *Distance: Pointer to area that will contain the distances between each pair of cities. int NumberOfCities: Number of cities in this tour. */ /************************************************************************/ /************************************************************************/ void CalculateDistance(float *Data,float *Distance,int NumberOfCities) { int i,j,k; /* calculate distance between every pair of points */ for(i=0;i<NumberOfCities;i++) { for(j=(i+1);j<NumberOfCities;j++) { k = kfrom(i,j,NumberOfCities); Distance[k] = (double)(square(x(i) - x(j)) + square(y(i) - y(j))); Distance[k] = sqrt((double)Distance[k]); } } }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.