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];
それは「エラー:式は変更可能な左辺値でなければなりません」でした。私はたくさん試しましたが、修正できませんでした。何か案は?