gpt4 book ai didi

在 OpenCL 中检查两个字符 vector 是否相等?

转载 作者:行者123 更新时间:2023-11-30 19:51:01 26 4
gpt4 key购买 nike

我有两个 char8 vector 。我想检查它们是否相等。

我在使用 all 函数时遇到错误:

char8 a1 = {'a', 'b', 'c', 'd', 'e', 'f','g','h'};
char8 a2 = {'a', 'b', 'c', 'd', 'e', 'f','g','h'};
if (isequal(a1, a2)) return 0; // error on this line

我也尝试过:

char8 a1 = {'a', 'b', 'c', 'd', 'e', 'f','g','h'};
char8 a2 = {'a', 'b', 'c', 'd', 'e', 'f','g','h'};
char8 a3 = a1 - a2;
if (all(a3 == 0)) return 0; // error: can't convert from char to int

最佳答案

OpenCL 的 isequal() 函数是 only defined for the floating-point vector & scalar types ,这就是为什么你的第一种方法不起作用。

你的第二种方法是正确的;我相信问题在于您正在将 char8 (a3) 与 int (0) 进行比较。实际上,您不需要减去 vector ,相等应该可以正常工作( vector 比较运算符产生 -1 为 true,因此 all() 对 MSB 的测试应该有效.):

char8 a1 = {'a', 'b', 'c', 'd', 'e', 'f','g','h'};
char8 a2 = {'a', 'b', 'c', 'd', 'e', 'f','g','h'};
if (all(a1 == a2))
return 0;

或者,您可以将减法方法的最后一行更改为:

if (all(a3 == (char8)(0))) return 0;

当您再次将 char8 与另一个 char8(全部为 0)进行比较时,这也应该有效。

关于在 OpenCL 中检查两个字符 vector 是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52406074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com