double4 *sum
aと aの 2 つのベクトルがありdouble4 *elem
ます。ベクトルの各要素に対して、次のことを行いたいと思います: elem が有限の場合は、合計から減算し、そうでない場合は何もしません。
現在、次のコードがあります。
long4 finite = isfinite(elem[e].x);
if (finite.x) sum.x-=elem[e].x;
if (finite.y) sum.y-=elem[e].y;
if (finite.z) sum.z-=elem[e].z;
if (finite.w) sum.w-=elem[e].w;
if
しかし、それは不要なステートメントの束です。単純に に置き換えることもできますがsum-=isfinite(elem[e])&elem[e];
、 & は double では許可されていないようです。ただし、 & はちょうどビットレベルであるため、ハードウェア技術的には可能です。この動作を模倣する方法はありますか? これを行うにはどうすればよいですか?