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

也可以看看