MAGMA  2.3.0
Matrix Algebra for GPU and Multicore Architectures
 All Classes Files Functions Friends Groups Pages

In C++, including magma_operators.h defines the usual unary and binary operators for complex numbers: +, +=, -, -=, *, *=, /, /=, ==, !=. More...

Macros

#define MAGMA_Z_MAKE(r, i)
 
#define MAGMA_Z_REAL(a)
 
#define MAGMA_Z_IMAG(a)
 
#define MAGMA_Z_ADD(a, b)
 
#define MAGMA_Z_SUB(a, b)
 
#define MAGMA_Z_MUL(a, b)
 
#define MAGMA_Z_DIV(a, b)
 
#define MAGMA_Z_ABS(a)
 
#define MAGMA_Z_ABS1(a)
 
#define MAGMA_Z_CONJ(a)
 

Functions

__host__ static __device__ double real (const magmaDoubleComplex &x)
 
__host__ static __device__ double imag (const magmaDoubleComplex &x)
 
__host__ static __device__
magmaDoubleComplex 
conj (const magmaDoubleComplex &x)
 
__host__ static __device__ double fabs (const magmaDoubleComplex &x)
 
__host__ static __device__ double abs1 (const magmaDoubleComplex &x)
 

Detailed Description

In C++, including magma_operators.h defines the usual unary and binary operators for complex numbers: +, +=, -, -=, *, *=, /, /=, ==, !=.

Additionally, real(), imag(), conj(), fabs(), and abs1() are defined to apply to both complex and real numbers.

In C, there are equivalent macros: MAGMA_Z_{MAKE, REAL, IMAG, ADD, SUB, MUL, DIV, ABS, ABS1, CONJ} for double-complex, MAGMA_C_{...} for float-complex, MAGMA_D_{...} for double, MAGMA_S_{...} for float.

Just the double-complex versions are documented here.

Macro Definition Documentation

#define MAGMA_Z_MAKE (   r,
 
)
Returns
complex number r + i*sqrt(-1).
#define MAGMA_Z_REAL (   a)
Returns
real component of a.
#define MAGMA_Z_IMAG (   a)
Returns
imaginary component of a.
#define MAGMA_Z_ADD (   a,
 
)
Returns
(a + b).
#define MAGMA_Z_SUB (   a,
 
)
Returns
(a - b).
#define MAGMA_Z_MUL (   a,
 
)
Returns
(a * b).
#define MAGMA_Z_DIV (   a,
 
)
Returns
(a / b).
#define MAGMA_Z_ABS (   a)
Returns
absolute value, |a| = sqrt( real(a)^2 + imag(a)^2 ).
#define MAGMA_Z_ABS1 (   a)
Returns
1-norm absolute value, | real(a) | + | imag(a) |.
#define MAGMA_Z_CONJ (   a)
Returns
conjugate of a.

Function Documentation

__host__ static __device__ double real ( const magmaDoubleComplex &  x)
inlinestatic
Returns
real component of complex number x; x for real number.
__host__ static __device__ double imag ( const magmaDoubleComplex &  x)
inlinestatic
Returns
imaginary component of complex number x; 0 for real number.
__host__ static __device__ magmaDoubleComplex conj ( const magmaDoubleComplex &  x)
inlinestatic
Returns
conjugate of complex number x; x for real number.
__host__ static __device__ double fabs ( const magmaDoubleComplex &  x)
inlinestatic
Returns
2-norm absolute value of complex number x: sqrt( real(x)^2 + imag(x)^2 ). math.h or cmath provide fabs for real numbers.
__host__ static __device__ double abs1 ( const magmaDoubleComplex &  x)
inlinestatic
Returns
1-norm absolute value of complex nmuber x: | real(x) | + | imag(x) |.