|
|
1.1 root 1: record complex(rpart,ipart)
2:
3: procedure strcpx(s)
4: i := upto('+-',s,2)
5: return complex(+s[1:i],+s[i:-1])
6: end
7:
8: procedure cpxstr(x)
9: if x.ipart < 0 then return x.rpart || x.ipart || "i"
10: else return x.rpart || "+" || x.ipart || "i"
11: end
12:
13: procedure cpxadd(x1,x2)
14: return complex(x1.rpart + x2.rpart,x1.ipart + x2.ipart)
15: end
16:
17: procedure cpxsub(x1,x2)
18: return complex(x1.rpart - x2.rpart,x1.ipart - x2.ipart)
19: end
20:
21: procedure cpxmul(x1,x2)
22: return complex(x1.rpart * x2.rpart - x1.ipart * x2.ipart,
23: x1.rpart * x2.ipart + x1.ipart * x2.rpart)
24: end
25:
26: procedure cpxdiv(x1,x2)
27: denom := x2.rpart ^ 2 + x2.ipart ^ 2
28: return complex((x1.rpart * x2.rpart + x1.ipart * x2.ipart) /
29: denom,(x1.ipart * x2.rpart - x1.rpart * x2.ipart) /
30: denom)
31: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.