2012-08-30 129 views
4

所以我有一个openCL程序,其中一些变量在float2中,一些在double2中。我想要对这些变量进行上传或下调,但我不知道如何去做。我试图明确地转换它,就像我通常为float和double做的那样,但它不起作用。将float2转换为double2,反之亦然

float2 a,b; 
double2 c,d; 

a = (float2)(c+d); //didnt work 
a = float2(c+d); //didnt work 

也许我不理解的类型“FLOAT2”和“double2”,可能有人告诉我如何施展他们的才能正常工作?

在此先感谢。

回答

4

floatn和doublen类型族表示值的向量(在你的情况下它们有2个成员)。 C风格转换不适用于它们。

还有就是,对于看起来像这样的载体转化工作函数族:

convert_float2(vec2) 

然而,阅读文档here它看起来像转换自/至double2不支持。这让您可以选择手动执行转换:

a.x = float(c.x + d.x); 
a.y = float(c.y + d.y); 
相关问题