|
|
1.1 root 1: //////////
2: / libm 8087
3: / cabs(z), hypot(x, y)
4: //////////
5:
6: #include "larges.h"
7: #include "ifno8087.h"
8:
9: .globl cabs_
10: .globl hypot_
11:
12: //////////
13: / double
14: / cabs(z)
15: / CPX z;
16: /
17: / hypot(x, y)
18: / double x, y;
19: //////////
20:
21: x = RASIZE / x arg offset
22: y = RASIZE+8 / y arg offset
23:
24: cabs_:
25: hypot_:
26: ifno8087(_cabs_)
27: mov bx, sp
28:
29: fdld Pss x(bx) / x
30: fmul st, st / x*x
31: fdld Pss y(bx) / y, x*x
32: fmul st, st / y*y, x*x
33: fadd / x*x + y*y
34: fsqrt / result = sqrt(x*x + y*y)
35:
36: Gret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.