Class Complex
is implemented in a way similar to that described by Stroustrup. In keeping with libg++ conventions, the class is named Complex
, not complex
. Complex arithmetic and relational operators are provided (+, -, *, /, +=, -=, *=, /=, ==, !=
). Attempted division by (0, 0) triggers an exception.
Complex numbers may be constructed and used in the following ways:
Complex x;
Complex x = 2; Complex y(2.0);
Complex x(2, 3);
Complex u(x); Complex v = x;
double real(Complex& x);
double imag(Complex& x);
double abs(Complex& x);
double norm(Complex& x);
double arg(Complex& x);
Complex polar(double r, double t = 0.0);
Complex conj(Complex& x);
Complex cos(Complex& x);
Complex sin(Complex& x);
Complex cosh(Complex& x);
Complex sinh(Complex& x);
Complex exp(Complex& x);
Complex log(Complex& x);
Complex pow(Complex& x, long p);
Complex pow(Complex& x, Complex& p);
Complex sqrt(Complex& x);
ostream << x;
istream >> x;