1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
int minimum_local(int r1, int r2)
{
int s1, s2;
float dist, dist2;
dist = sqrt((residue[r1].x - residue[r2].x)*(residue[r1].x - residue[r2].x)+(residue[r1].y - residue[r2].y)*(residue[r1].y - residue[r2].y)+(residue[r1].z - residue[r2].z)*(residue[r1].z - residue[r2].z));
for (s1 = r1-1; s1 <= r1+1; s1++)
for (s2 = r2-1; s2 <= r2+1; s2++) {
if (s1 == r1 && r2 == s2)
continue;
if (s1 < 0 || s1 >= nres || s2 < 0 || s2 >= nres)
continue;
if (residue[s1].chain_id != residue[r1].chain_id
|| residue[s2].chain_id != residue[r2].chain_id)
continue;
dist2 = sqrt((residue[s1].x - residue[s2].x)*(residue[s1].x - residue[s2].x) + (residue[s1].y - residue[s2].y)*(residue[s1].y - residue[s2].y) + (residue[s1].z - residue[s2].z)*(residue[s1].z - residue[s2].z));
if (dist2 < dist)
return 0;
}
return 1;
} |