我在将 float8 var 转换为 double8 以用于 openCL 中的 sincos 函数时遇到问题。所以我尝试了以下方法:
float8 a,b,c;
a = convert_float8(sin(convert_double8(a))); // worked
a = convert_float8(sincos(convert_double8(b),convert_double8(&c))); // failed
它会抛出一个openCL错误,说无法构建程序。起初我认为 sincos 不接受 double8 类型,但如果我只是传入一个 double8 var,它也可以工作,但是当我尝试将 float8 转换为 double8 时,它会像上面的代码一样失败。
float8 a;
double8 b,c;
a = convert_float8(sincos((b),(&c))); //worked
有谁知道为什么/如何正确投射它?
谢谢。