#include "complex2.h" int operator==(Complex& c1, Complex& c2) { return c1.re()==c2.re() && c1.im()==c2.im(); } Complex operator+(Complex& c1, Complex& c2) { return Complex(c1.re()+c2.re(), c1.im()+c2.im()); } Complex operator-(Complex& c1, Complex& c2) { return Complex(c1.re()-c2.re(), c1.im()-c2.im()); } Complex operator*(Complex& c1, Complex& c2) { // (a+bi).(c+di) = (ac-bd)+(bc+ad)i return Complex(c1.re()*c2.re()-c1.im()*c2.im(), c1.im()*c2.re()+c1.re()*c2.im()); } Complex operator/(Complex& c1, Complex& c2) { Complex num = c1*Complex(c2.re(),-c2.im()); // num = (a+bi).(c-di) float den = c2.re()*c2.re() + c2.im()*c2.im(); // den = (c+di).(c-di) = c^2+d^2 return Complex(num.re()/den, num.im()/den); }