// TestComplex.java needs Complex.java compiled class TestComplex { TestComplex() { Complex a; double val; double dval=3.5; System.out.println("dval="+dval); Complex d = new Complex(1.0); System.out.println("d="+d); Complex i = new Complex(1); // promote to double System.out.println("i="+i); Complex b = new Complex(1.0, 2.0); System.out.println("b="+b); Complex c = new Complex(3.0, 5.0); System.out.println("c="+c); Complex cc = c; System.out.println("cc="+cc+", cc==c is "+(cc==c)); Complex ccc = new Complex(3.0, 5.0); System.out.println("ccc="+ccc+", ccc.equals(c) is "+ccc.equals(c)); System.out.println("ccc="+ccc+", ccc==c is "+(ccc==c)); System.out.println(); System.out.println("b.real()="+b.real()); System.out.println("b.imaginary()="+b.imaginary()); System.out.println("b.magnitude()="+b.magnitude()); System.out.println("b.argument()="+b.argument()); System.out.println("b.polar()="+b.polar()); System.out.println("b.polar().cartesian()="+b.polar().cartesian()); System.out.println(); a=b.add(c); System.out.println("b+c="+a); a=b.add(dval); System.out.println("b+dval="+a); a=b.subtract(c); System.out.println("b-c="+a); a=b.subtract(dval); System.out.println("b-dval="+a); a=b.multiply(c); System.out.println("b*c="+a); a=b.multiply(dval); System.out.println("b*dval="+a); a=b.divide(c); System.out.println("b/dval="+a); a=b.divide(dval); System.out.println("b/c="+a); a=a.multiply(c); System.out.println("(b/c)*c="+a); a=b.multiply(d.divide((b.divide(c)))); System.out.println("b*(1.0/(b/c))="+a); val=b.abs(); System.out.println("conjugate(b)"+b.conjugate()); System.out.println("b.negate()="+b.negate()); System.out.println("b.abs()="+val); val=(b.negate()).abs(); System.out.println("abs(-b)="+val); System.out.println("b.equals(c) is "+b.equals(c)); System.out.println("-(-b)==b is "+b.equals((b.negate().negate()))); a=c.invert(); System.out.println("c.invert()="+a); a=c.negate().invert(); System.out.println("c.negate().invert()="+a); a=c.negate().invert().negate().invert(); System.out.println("c.negate().invert().negate().invert()="+a); System.out.println(); Complex sinb = b.sin(); Complex cosb = b.cos(); System.out.println("sin and cos"); System.out.println("(1.0,0.0) == "+(sinb.multiply(sinb)).add(cosb.multiply(cosb))); Complex sinc = c.sin(); Complex cosc = c.cos(); System.out.println("(1.0,0.0) == "+(sinc.multiply(sinc)).add(cosc.multiply(cosc))); Complex sinhb = b.sinh(); Complex coshb = b.cosh(); System.out.println("sinh and cosh"); System.out.println("(1.0,0.0) == "+(coshb.multiply(coshb)).subtract( sinhb.multiply(sinhb))); Complex sinhc = c.sinh(); Complex coshc = c.cosh(); System.out.println("(1.0,0.0) == "+(coshc.multiply(coshc)).subtract( sinhc.multiply(sinhc))); System.out.println(); Complex expb = b.exp(); System.out.println("b.exp= "+expb); Complex logexpb = expb.log(); System.out.println("log(exp(b) "+logexpb+" == "+b+" b"); Complex expc = c.exp(); System.out.println("c.exp= "+expc); Complex logexpc = expc.log(); System.out.println("log(exp(c) "+logexpc+" == "+c+" c"); Complex logb = b.log(); System.out.println("b.log() "+logb); Complex explogb = logb.exp(); System.out.println("exp(log)b "+explogb+" == "+b+" b"); Complex logc = c.log(); System.out.println("c.log() "+logc); Complex explogc = logc.exp(); System.out.println("exp(log)c "+explogc+" == "+c+" c"); Complex sqrtc = c.sqrt(); System.out.println("sqrt(c)*sqrt(c) "+sqrtc.multiply(sqrtc)+" == "+c+" c"); Complex sqrb = b.multiply(b); System.out.println("sqrt(b*b) "+sqrb.sqrt()+" == "+b+" b"); System.out.println(); Complex tanb = b.tan(); System.out.println("b.tan()="+tanb); System.out.println("b.sin().divide(b.cos)="+b.sin().divide(b.cos())); Complex tanhb = b.tanh(); System.out.println("b.tanh()="+tanhb); System.out.println("b.sinh().divide(b.cosh)="+b.sinh().divide(b.cosh())); System.out.println(); String s = new Complex(3.0,-4.0).toString(); System.out.println("toString says "+s); Complex cs = Complex.parseComplex(s); System.out.println("parseComplex says "+cs); System.out.println(); } public static void main(String args[]) { new TestComplex(); } }