typedef struct {
      double real, imaginary;
    } complex;

    #define Re(x) ((x).real)
    #define Im(x) ((x).imaginary)

    complex ComplexMultiply (complex a, complex b)
    {
	complex product;
	Re(product) = Re(a)*Re(b) - Im(a)*Im(b);
	Im(product) = Re(a)*Im(b) + Im(a)*Re(b);
	return product;
    }

    

next slide