V10/libj/norm.c
norm(x,y,z)
{
return (sqrt(x*x + y*y + z*z));
}
sqrtryz(x,y,z)
{
register long sumsq;
sumsq = x*x - y*y - z*z;
if (sumsq <= 0)
return 0;
return ( sqrt(sumsq) );
}
#define MAXROOT 0xb504
sqrt(x)
register long x;
{
register long high=MAXROOT;
register long low=0;
register long current=MAXROOT/2;
if(x<=0)
return 0;
if(x>=MAXROOT*MAXROOT)
return(MAXROOT);
while(high>low+1){
if(current*current==x)
return (current);
if(current*current>x)
high=current;
else
low=current;
current=(high+low)>>1;
}
return(current);
}