/* The test if(b<0) is inside the loop to avoid anomalies
with the most negative integer */
gcd(a,b)
register a, b;
{
register t;
if(b==0)
return(abs(a));
for(;;) {
if(b<0)
b = -b;
t = a % b;
if(t==0)
return(b);
a = b;
b = t;
}
}