var cplx = Math.Complex, cplxe = Math.Complex.polar; p(new Math.Complex(1, 1) instanceof Math.Complex); p(Math.Complex(1, 1) instanceof Math.Complex); /* new can be omitted */ p(cplx(Math.SQRT1_2, Math.SQRT1_2)); p(cplxe(1,Math.PI/4)); var c1 = cplx(1,2); var c2 = cplx(3,4); p(c1); p('neg: ' + c1.neg()); p('con: ' + c1.con()); p('add: ' + c1.add(c2)); p('add: ' + c1.add(2)); p('sub: ' + c1.sub(c2)); p('sub: ' + c1.sub(2)); p('mul: ' + c1.mul(c2)); p('mul: ' + c1.mul(2)); p('div: ' + c1.div(c2)); p('div: ' + c1.div(2)); p('/0: ' + c1.div(cplx(0,0))); p('/0: ' + c1.div(0)); p('arg: ' + c1.arg()); p('abs: ' + c1.abs()); p(cplxe(c1.abs(),c1.arg())); p('exp: ' + c1.exp()); p('log: ' + c1.log()); p('pow: ' + c1.pow(c2)); p('pow: ' + c1.pow(2)); p('pow: ' + cplx(-2.5).pow(-2.5)); p('eq: ' + c1.eq(c1)); p('eq: ' + c1.eq(c2)); p('ne: ' + c1.ne(c1)); p('ne: ' + c1.ne(c2)); p('sqrt:' + cplx(2).sqrt()); p('sqrt:' + cplx(0, 2).sqrt()); p('cos:' + cplx(Math.PI/6).cos()); p('sin:' + cplx(Math.PI/6).sin()); p('tan:' + cplx(Math.PI/6).tan()); p('acos:' + cplx(Math.SQRT1_2).acos()); p('asin:' + cplx(Math.SQRT1_2).asin()); p('atan:' + cplx(Math.SQRT1_2).atan()); p('atan2:' + cplx(1).atan2(1)); p('atan2:' + cplx(1).atan2(0)); p('atan2:' + cplx(-1).atan2(0)); p('atan2:' + cplx(0).atan2(0)); with(Math.Complex){ p( exp(mul(Math.PI, cplx(0,1))) ); p([I, J]); } var c3 = new Math.Complex(c1); p(c3); p(c3.eq(c1)); p(c1 === c3);