 
 inline __device__ bool testReprojectedDepth(float z1, float z2, float dz)
 {
-    float z_diff = abs(z1 - z2);
-    return z_diff < 2.0 * (dz + 1e-3f);
+    float diffZ = abs(z1 - z2);
+    return diffZ < 2.0 * (dz + 1e-3f);
 }
 
 #define AT_IS_INBOUND(x, a, b)  (((a) <= (x)) && ((x) <= (b)))

    encryptTea(teaArg);
    teaArg.x %= gradientTileSize;
    teaArg.y %= gradientTileSize;
    int2 idxPrev = make_int2(
        ix * gradientTileSize + teaArg.x,
        iy * gradientTileSize + teaArg.y);

    float4 motionDepth;
    surf2Dread(&motionDepth, motionDetphBuffer, idxPrev.x * sizeof(float4), idxPrev.y);

    // NOTE
    // motion = prev - cur
    //  => -motion = cur - prev
    //  => prev + (-motion) = prev + (cur - prev) = cur
    int2 idxCur = make_int2(idxPrev.x - motionDepth.x, idxPrev.y - motionDepth.y);

    // Check if idx is in screen.
    if (!AT_IS_INBOUND(idxCur.x, 0, width)
        || !AT_IS_INBOUND(idxCur.y, 0, height))
    {
        return;
    }

    int curIdx = getIdx(idxCur.x, idxCur.y, width);
    int prevIdx = getIdx(idxPrev.x, idxPrev.y, width);

    float4 curNmlDepth = curAovNormalDepth[curIdx];
    float4 prevNmlDepth = curAovNormalDepth[prevIdx];

    }

    int2 tilePos = make_int2(
        curPos.x % gradientTileSize,
        curPos.y % gradientTileSize);

    // NOTE
    // Atomic functions for CUDA.
