import java.applet.Applet; import java.awt.event.*; import java.awt.*; /**This class does the basic arithmetic of complex numbers */ public class Complex { double x,y; /**constructors **/ public Complex() { this.x=0.0; this.y=0.0; } public Complex(double x,double y) { this.x=x; this.y=y; } public Complex(Complex z) { this.x=z.x; this.y=z.y; } /**printout**/ public void print() { System.out.println("Complex: "+this.x+" "+this.y); } /**basic arithmetic operations used in the proof **/ public static Complex plus(Complex z1,Complex z2) { return new Complex(z1.x+z2.x, z1.y+z2.y); } public static Complex minus(Complex z1,Complex z2) { return new Complex(z1.x-z2.x, z1.y-z2.y); } public static double distMaxNorm(Complex a,Complex b) { Complex z=minus(a,b); double t1=Math.abs(z.x); double t2=Math.abs(z.y); return(Math.max(t1,t2)); } public static Complex average(Complex z1,Complex z2) { return new Complex(.5*z1.x+.5*z2.x, .5*z1.y+.5*z2.y); } /**these are not used in the proof**/ public static Complex times(Complex z1,Complex z2) { return new Complex(z1.x*z2.x-z1.y*z2.y, z1.x*z2.y+z1.y*z2.x); } public static Complex inverse(Complex z) { double d=z.x*z.x+z.y*z.y; return new Complex(z.x/d,-z.y/d); } public static Complex divide(Complex z1,Complex z2) { return times(z1,inverse(z2)); } }