| GNU Scientific Library Reference Manual - Revised Second Edition (v1.8) by M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman, M. Booth, F. Rossi Paperback (6"x9"), 636 pages, 60 figures ISBN 0954161734 RRP £24.99 ($39.99) |
5.1 Complex numbers
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 z = x + i y.
- Function: gsl_complex gsl_complex_polar (double r, double theta)
- This function returns the complex number 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 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.
| ISBN 0954161734 | GNU Scientific Library Reference Manual - Revised Second Edition (v1.8) | See the print edition |