zoukankan      html  css  js  c++  java
  • Adreno OpenCL坑——bool转int

    在项目代码中为了避免条件分支,需要把bool变成int的形式,然后通过向量运算的形式和单个单个的形式,其结果却是不同,向量的方式为(-1, 0),而单个的转换则为(1, 0)
    有如下kernel代码:

    int2 interxy_i; //输入
    int2 TMP2 =(interxy_i & 0x01) == 1;
    printf("1:  interxy_i x%d y%d, tmp2:%d %d    
    ", interxy_i.x, interxy_i.y, TMP2.x, TMP2.y);
    int2 tmp3;
    tmp3.x = (interxy_i.x & 0x01) == 1;
    tmp3.y = (interxy_i.y & 0x01) == 1;
    printf("2:  interxy_i x%d y%d, tmp3:%d %d    
    ", interxy_i.x, interxy_i.y, tmp3.x, tmp3.y);
    

    打印结果显示:TMP2打印出来的都是-1或0,而tmp3打印出来的则都是1或者0。
    谨记:若要万无一失,确保准确,则应该加上abs函数

  • 相关阅读:
    服务器常用端口
    xml处理类
    水印的代码
    Asp.net常用的51个代码(非常实用)
    poj 2453
    MOD
    LIS(最长上升子序列)
    POJ各题算法分类(转)
    poj 1496&1850
    poj 1423
  • 原文地址:https://www.cnblogs.com/willhua/p/10706213.html
Copyright © 2011-2022 走看看