view example/bitonic_sort/spe/swap.cc @ 2054:2e7a6f40672f draft

add param(4) in FileMapReduce.cc
author masa
date Fri, 29 Jan 2016 15:56:28 +0900
parents 33af6d6e1bfc
children
line wrap: on
line source

#include "swap.h"

SchedDefineTask1(swap,swap);

static int
swap(SchedTask* s, void* rbuf,void* wbuf)
{
    int* inData = (int*)s->get_input(rbuf, 0);
    int* outData = (int*)s->get_output(wbuf, 0);
    int index = s->x;
    int block = (int)s->get_param(0);
    int dist = (int)s->get_param(1);

    int x = index/(block/2);
    int i = index+block*x;
    int temp = inData[i];

    if (x%2 == 0) {
        if (inData[i+dist] < inData[i]) {
            outData[i] = inData[i+dist];
            outData[i+dist] = temp;
        }
    } else {
        if (inData[i] < inData[i+dist]) {
            outData[i] = inData[i+dist];
            outData[i+dist] = temp;
        }
    }
        
    return 0;
}