man7.org > Linux > man-pages

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | SEE ALSO | COLOPHONThe Linux Programming Interface

COMPLEX(7)                Linux Programmer's Manual               COMPLEX(7)

NAME         top

       complex - basics of complex mathematics

SYNOPSIS         top

       #include <complex.h>

DESCRIPTION         top

       Complex numbers are numbers of the form z = a+b*i, where a and b are
       real numbers and i = sqrt(-1), so that i*i = -1.
       There are other ways to represent that number.  The pair (a,b) of
       real numbers may be viewed as a point in the plane, given by X- and
       Y-coordinates.  This same point may also be described by giving the
       pair of real numbers (r,phi), where r is the distance to the origin
       O, and phi the angle between the X-axis and the line Oz.  Now z =
       r*exp(i*phi) = r*(cos(phi)+i*sin(phi)).

       The basic operations are defined on z = a+b*i and w = c+d*i as:

       addition: z+w = (a+c) + (b+d)*i

       multiplication: z*w = (a*c - b*d) + (a*d + b*c)*i

       division: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c - a*d)/(c*c +
       d*d))*i

       Nearly all math function have a complex counterpart but there are
       some complex-only functions.

EXAMPLE         top

       Your C-compiler can work with complex numbers if it supports the C99
       standard.  Link with -lm.  The imaginary unit is represented by I.

       /* check that exp(i * pi) == -1 */
       #include <math.h>        /* for atan */
       #include <stdio.h>
       #include <complex.h>

       int
       main(void)
       {
           double pi = 4 * atan(1.0);
           double complex z = cexp(I * pi);
           printf("%f + %f * i\n", creal(z), cimag(z));
       }

SEE ALSO         top

       cabs(3), cacos(3), cacosh(3), carg(3), casin(3), casinh(3), catan(3),
       catanh(3), ccos(3), ccosh(3), cerf(3), cexp(3), cexp2(3), cimag(3),
       clog(3), clog10(3), clog2(3), conj(3), cpow(3), cproj(3), creal(3),
       csin(3), csinh(3), csqrt(3), ctan(3), ctanh(3)

COLOPHON         top

       This page is part of release 3.51 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.

                                 2011-09-16                       COMPLEX(7)

Copyright and license for this page

HTML rendering created 2013-05-17 by Michael Kerrisk, author of The Linux Programming Interface, maintainer of the Linux man-pages project

Hosting by jambit GmbH

free hit counters