srecord Complex(double re, double im) { double abs() { ret sqrt(re*re+im*im); } double re() { ret re; } double im() { ret im; } double phase aka angle() { ret Math.atan2(im, re); } toString { if (im != 0) ret re == 0 ? im + "i" : re + "+" + im + "i"; else ret str(re); } }