CUDA中的逻辑移位

|
rshift = ((J[i]-1)*((2*net)-J[i]) >> -1);

L[i] = rshift + K[i]-J[i];
当我对此进行编译时,出现“错误:表达式必须具有与第一行相对应的整数或枚举类型”。除了'i \'都具有双精度。 它不适用于左移或右移。我正在使用fedora 12,并且具有nvcc 3.2,V0.2.1221。对于c ++(g ++编译器),它可以完美运行。 但是当我尝试
rshift = ((J[i]-1)*((2*net)-J[i]) >>= -1);

L[i] = rshift + K[i]-J[i];
这是“错误:表达式必须是可修改的左值”,我尝试了很多,却无法解决。有任何想法吗?     
已邀请:
要回答这个问题-CUDA C中(没有C或C ++)没有浮点类型的位移位之类的问题。通过评论中的问题,似乎混淆的源头是对某些旧版Fortran代码的不正确尝试,而该代码中也没有浮点位移位支持。     

要回复问题请先登录注册