/* complex.cpp */ /* Program to test out C++ complex class */ #include <complex.h> #include <stdio.h> /* Define complex double data type */ typedef complex<double> dcomp; int main() { dcomp i, a, b, c, d, e, p, q, r; // Declare complex double variables double x, y; /* Set complex double variable equal to complex double constant */ i = dcomp (0., 1.); printf("\ni = (%6.4f, %6.4f)\n", i); /* Test arithmetic operations with complex double variables */ a = i * i; b = 1. / i; printf("\ni*i = (%6.4f, %6.4f)\n", a); printf("1/i = (%6.4f, %6.4f)\n", b); /* Test mathematical functions using complex double variables */ c = sqrt(i); d = sin(i); e = pow(i, 0.25); printf("\nsqrt(i) = (%6.4f, %6.4f)\n", c); printf("sin(i) = (%6.4f, %6.4f)\n", d); printf("i^0.25 = (%6.4f, %6.4f)\n", e); /* Test complex operations */ p = conj(i); q = real(i); r = imag(i); printf("\nconj(i) = (%6.4f, %6.4f)\n", p); printf("real(i) = %6.4f\n", q); printf("imag(i) = %6.4f\n", r); return 0; }The typical output from this program is as follows:

i = (0.0000, 1.0000) i*i = (-1.0000, 0.0000) 1/i = (0.0000, -1.0000) sqrt(i) = (0.7071, 0.7071) sin(i) = (0.0000, 1.1752) i^0.25 = (0.9239, 0.3827) conj(i) = (0.0000, -1.0000) real(i) = 0.0000 imag(i) = 1.0000 %The program first of all defines the complex double type