UNPKG

js-math-complex

Version:
86 lines (84 loc) 2.3 kB
<html> <title>Math.Complex</title> <script src="../math-complex.js"></script> <body> <div style="border:outset 1px; padding:0.5em"> <textarea rows="54" style="width:100%;font-family:monospace"> 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); </textarea><br><input type="submit" value="run" onclick="rundom(this)" ><input type="submit" value="clear" onclick="clsdom(this)" ><pre></pre> </div> <script> rundom = function(that){ try{ var out = that.nextSibling.nextSibling; var p = function(s){ out.innerHTML += s, out.appendChild(document.createElement('br')); } var e = that.previousSibling.previousSibling; var f = new Function( 'p', (e.value || e.innerText || e.textContent) ); f(p); }catch(e){ alert(e); } }; clsdom = function(that){ that.nextSibling.innerHTML = ''; }; </script> </body> </html>