Annotation of OpenXM/src/k097/debug/complex01.kk, Revision 1.1.1.1
1.1 maekawa 1: class Complex extends Object {
2: local re, /* real part */
3: im; /* imaginary part*/
4: def new2(a,b) {
5: this = new(super.new0());
6: re = a;
7: im = b;
8: return(this);
9: }
10: def real() { return(re); }
11: def imaginary() { return(im); }
12: def operator add(b) {
13: return( new2(re+b.real(), im+b.imaginary()) );
14: }
15: def operator sub(b) {
16: return( new2(re-b.real(), im-b.imaginary()) );
17: }
18: def operator mul(b) {
19: return(new2( re*b.real()-im*b.imaginary(), re*b.imaginary()+im*b.real()));
20: }
21: def operator div(b) {
22: local den,num1,num2;
23: den = (b.real())^2 + (b.imaginary())^2 ;
24: num1 = re*b.real() + im*b.imaginary();
25: num2 = -re*b.imaginary()+im*b.real();
26: return(new2(num1/den, num2/den));
27: }
28:
29: def void show() {
30: Print(re); Print(" +I["); Print(im); Print("]");
31: }
32: def void showln() {
33: this.show(); Ln();
34: }
35: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>