Go to the first, previous, next, last section, table of contents.
Complex numbers are represented using the type gsl_complex
. The
internal representation of this type may vary across platforms and
should not be accessed directly. The functions and macros described
below allow complex numbers to be manipulated in a portable way.
For reference, the default form of the gsl_complex
type is
given by the following struct,
typedef struct
{
double dat[2];
} gsl_complex;
The real and imaginary part are stored in contiguous elements of a two
element array. This eliminates any padding between the real and
imaginary parts, dat[0]
and dat[1]
, allowing the struct to
be mapped correctly onto packed complex arrays.
- Function: gsl_complex gsl_complex_rect (double x, double y)
-
This function uses the rectangular cartesian components
(x,y) to return the complex number @math{z = x + i y}.
- Function: gsl_complex gsl_complex_polar (double r, double theta)
-
This function returns the complex number @math{z = r \exp(i \theta) = r
(\cos(\theta) + i \sin(\theta))} from the polar representation
(r,theta).
- Macro: GSL_REAL (z)
-
- Macro: GSL_IMAG (z)
-
These macros return the real and imaginary parts of the complex number
z.
- Macro: GSL_SET_COMPLEX (zp, x, y)
-
This macro uses the cartesian components (x,y) to set the
real and imaginary parts of the complex number pointed to by zp.
For example,
GSL_SET_COMPLEX(&z, 3, 4)
sets z to be @math{3 + 4i}.
- Macro: GSL_SET_REAL (zp,x)
-
- Macro: GSL_SET_IMAG (zp,y)
-
These macros allow the real and imaginary parts of the complex number
pointed to by zp to be set independently.
Go to the first, previous, next, last section, table of contents.