cmplx(x [, [, kind]]): Convert to Complex¶
Conversion to complex type.
Declaration¶
Syntax¶
retval = cmplx(x, y)
#define CMPLX(x, y)
cmplx(x, y)
is one of the intrinsic present in ASR.
Arguments¶
x
the input value must be of integer, real, or complex.
y
the optional input value must be of type integer or real. It should be only
present in case x
is not complex.
kind
the optional input value of integer expression type for initialisation
indicating the kind parameter of the result.
Return values¶
The return value is of complex type, with a kind defined by input kind
type
specified. If the kind
is not specified, the return value is of default kind
complex
type.
Description¶
cmplx(x, [, y [, kind]]) converts the input value to complex representation:
x
to real component of complex number.
if y
is present, it is converted to the imaginary component.
If y
is not present, the imaginary component is set to 0.0.
If x
is complex then y
must not be present.
For x
complex input value, the result is calculated using mathematical formula:
\(x + iy\)
\(i\) the imaginary part is the result.
Types¶
Supported argument types are integer, real, or complex.
#define _Imaginary_I (I)
#define CMPLX(x, y) ((double complex)((double)(x) + _Imaginary_I * (double)(y)))
#define CMPLXF(x, y) ((float complex)((float)(x) + _Imaginary_I * (float)(y)))
#define CMPLXL(x, y) ((long double complex)((long double)(x) + \
_Imaginary_I * (long double)(y)))
Examples¶
program intrinsics_cmplx
implicit none
print *, cmplx(1.0, -3.0)
end program
Result:
1 - 3i