|
|
1.1 root 1: norm(x,y,z)
2: {
3: return (sqrt(x*x + y*y + z*z));
4: }
5:
6: sqrtryz(x,y,z)
7: {
8: register long sumsq;
9:
10: sumsq = x*x - y*y - z*z;
11: if (sumsq <= 0)
12: return 0;
13: return ( sqrt(sumsq) );
14: }
15:
16: #define MAXROOT 0xb504
17: sqrt(x)
18: register long x;
19: {
20: register long high=MAXROOT;
21: register long low=0;
22: register long current=MAXROOT/2;
23: if(x<=0)
24: return 0;
25: if(x>=MAXROOT*MAXROOT)
26: return(MAXROOT);
27: while(high>low+1){
28: if(current*current==x)
29: return (current);
30: if(current*current>x)
31: high=current;
32: else
33: low=current;
34: current=(high+low)>>1;
35: }
36: return(current);
37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.