cmplx(x [, [, kind]]): Convert to Complex

Conversion to complex type.



retval = cmplx(x, y)
#define CMPLX(x, y)

cmplx(x, y) is one of the intrinsic present in ASR.


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.


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.


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)))


program intrinsics_cmplx
    implicit none
	print *, cmplx(1.0, -3.0)
end program


1 - 3i

See Also