我正在尝试为pyopencl中的COMPLEX(cfloat_t)类型编写一些其他功能。我几乎没有OpenCL的经验,并且对语法有些困惑。我想写一些可以接受REAL输入(在这种情况下为float)并将其转换为COMPLEX类型的基本函数。例如,欧拉公式e ^ ix = cos(x)+ isin(x),其中x为实数输入
我以为这会是
#include <pyopencl-complex.h>
#define REAL float
#define COMPLEX cfloat_t
COMPLEX c_exp_i(REAL x) {return (COMPLEX)(cos(x), sin(x));}
但是当我尝试运行此程序时,我看到一条错误消息
error: cast to union type from type 'float' not present in union
答案 0 :(得分:0)
阅读pyopencl-complex.h之后,我意识到有一个cfloat_new()函数可以解决所有问题
COMPLEX c_exp_i(REAL x) {return cfloat_new(cos(x), sin(x));}