CUDA-如何转换exp(1i*x)?

CUDA-如何转换exp(1i*x)?,cuda,Cuda,我想这样计算一些exp() float t=5.0; cuComplex res=expf(1i*t) 但是,不能执行函数。我认为cuda编译器不支持复杂参数expf()函数 查找一些描述exp(x+iy)的示例。。 我想要经验(x*I) 我自己解决了 __device__ __forceinline__ cuComplex _exp (cuComplex z) { cuComplex res; float t = expf(z.x); sincosf(z.y, &

我想这样计算一些exp()

float t=5.0;
cuComplex res=expf(1i*t)

但是,不能执行函数。我认为cuda编译器不支持复杂参数expf()函数

查找一些描述exp(x+iy)的示例。。 我想要经验(x*I)

我自己解决了

__device__ __forceinline__ cuComplex _exp (cuComplex z)
{
    cuComplex res;
    float t = expf(z.x);
    sincosf(z.y, &res.y, &res.x);
    res.x *= t;
    res.y *= t;
    return res;
}
部分源

    /* 1i*t = 0+ti  |  -1i*t = 0-ti */
    cuComplex _gbp, _gfp;
    _gbp.x = 0;
    _gbp.y = t;
    _gfp.x = 0;
    _gfp.y = -t;

    cuComplex res_b = _exp(_gbp);
    cuComplex res_f = _exp(_gfp);

欧拉公式?自我解决。。thanxSee也在NVIDIA论坛上。几乎一样