编写可以在pyopencl中转换类型的函数

时间:2018-06-24 17:20:00

标签: python opencl pyopencl

我正在尝试为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

1 个答案:

答案 0 :(得分:0)

阅读pyopencl-complex.h之后,我意识到有一个cfloat_new()函数可以解决所有问题

COMPLEX c_exp_i(REAL x)     {return cfloat_new(cos(x), sin(x));}