__global__ void kernel_Median3RegTri9( short *output, int i_dim, int j_dim) { int j = __mul24(blockIdx.x,blockDim.x) + threadIdx.x ; int i = __mul24(blockIdx.y,blockDim.y) + threadIdx.y ; int a0, a1, a2, a3, a4, a5, a6, a7, a8 ; // 1 register per pixel a0 = tex2D(tex_img_ins, j-1, i-1) ; // fetching values a1 = tex2D(tex_img_ins, j , i-1) ; a2 = tex2D(tex_img_ins, j+1, i-1) ; a3 = tex2D(tex_img_ins, j-1, i) ; a4 = tex2D(tex_img_ins, j , i) ; a5 = tex2D(tex_img_ins, j+1, i) ; a6 = tex2D(tex_img_ins, j-1, i+1) ; a7 = tex2D(tex_img_ins, j , i+1) ; a8 = tex2D(tex_img_ins, j+1, i+1) ; bubReg9(&a0,&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8); // bubble sort output[ __mul24(i, j_dim) +j ] = a4 ; // median at the middle }