cmplx(x [, [, kind]]):转换为复数¶
转换为复数类型。
声明¶
语法¶
retval = cmplx(x, y)
#define CMPLX(x, y)
cmplx(x, y)
是 ASR 中的内置函数之一。
参数¶
x
输入值必须是整数、实数或复数。 y
可选输入值必须是整数或实数类型。它应该只在 x
不是复数的情况下出现。 kind
用于初始化的整数表达式类型的可选输入值,指示结果的种类参数。
返回值¶
返回值是复数类型,类型由指定的输入kind
类型定义。如果未指定 kind
,则返回值为默认 kind
complex
类型。
描述¶
cmplx(x, [, y [, kind]]) 将输入值转换为复数表示:
x
为复数的实部。如果 y
存在,则将其转换为虚部。
如果 y
不存在,则虚部设置为 0.0。
如果 x
是复数,则 y
不能出现。
对于 x
复数输入值,使用数学公式计算结果:
\(x + iy\)
\(i\) 虚部是结果。
类型¶
支持的参数类型是整数、实数或复数。
#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