| .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de) |
| .\" |
| .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) |
| .\" Distributed under GPL |
| .\" %%%LICENSE_END |
| .\" |
| .TH COMPLEX 7 2021-03-22 "" "Linux Programmer's Manual" |
| .SH NAME |
| complex \- basics of complex mathematics |
| .SH SYNOPSIS |
| .nf |
| .B #include <complex.h> |
| .fi |
| .SH DESCRIPTION |
| 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. |
| .PP |
| 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)). |
| .PP |
| The basic operations are defined on z = a+b*i and w = c+d*i as: |
| .TP |
| .B addition: z+w = (a+c) + (b+d)*i |
| .TP |
| .B multiplication: z*w = (a*c \- b*d) + (a*d + b*c)*i |
| .TP |
| .B division: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c \- a*d)/(c*c + d*d))*i |
| .PP |
| Nearly all math function have a complex counterpart but there are |
| some complex-only functions. |
| .SH EXAMPLES |
| Your C-compiler can work with complex numbers if it supports the C99 standard. |
| Link with \fI\-lm\fP. |
| The imaginary unit is represented by I. |
| .PP |
| .EX |
| /* 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\en", creal(z), cimag(z)); |
| } |
| .EE |
| .SH SEE ALSO |
| .BR cabs (3), |
| .BR cacos (3), |
| .BR cacosh (3), |
| .BR carg (3), |
| .BR casin (3), |
| .BR casinh (3), |
| .BR catan (3), |
| .BR catanh (3), |
| .BR ccos (3), |
| .BR ccosh (3), |
| .BR cerf (3), |
| .BR cexp (3), |
| .BR cexp2 (3), |
| .BR cimag (3), |
| .BR clog (3), |
| .BR clog10 (3), |
| .BR clog2 (3), |
| .BR conj (3), |
| .BR cpow (3), |
| .BR cproj (3), |
| .BR creal (3), |
| .BR csin (3), |
| .BR csinh (3), |
| .BR csqrt (3), |
| .BR ctan (3), |
| .BR ctanh (3) |