#ifndef __COMPLEX__
#define __COMPLEX__
#include <math.h>
#include <stdlib.h>

class Complex 
{
 public:
  Complex();                  //Default constructor
  Complex(double r, double i);
  ~Complex();                 //Default destructor.
  void Set(double new_real, double new_imaginary); //Set data members.
  void Set(double a);         //Set as e^{i*a)
  double Real();              //Return the real part.
  double Imaginary();         //Return the imaginary part.
  Complex operator+(Complex); //Overloaded + operator
  Complex operator-(Complex); //Overloaded - operator
  Complex operator*(Complex); //Overloaded * operator
  Complex operator*(double);  //
  Complex operator=(Complex); //Overloaded = operator
  Complex operator=(double);  //Overloaded = for double
  int operator==(Complex);    //Overloaded == operator
  double abs();               //returns absolute value
  double real;
  double imaginary;
};

#endif
