#define FPTYPE float
#define FPVECTYPE float4

FPTYPE scanLocalMem(FPTYPE val, __local FPTYPE* lmem, int exclusive);

__kernel void
top_scan(__global FPTYPE * isums, const int n, __local FPTYPE * lmem)
{
    FPTYPE val = get_local_id(0) < n ? isums[get_local_id(0)] : 0.0f;
    val = scanLocalMem(val, lmem, 1);

    if (get_local_id(0) < n)
    {
        isums[get_local_id(0)] = val;
    }
}

