 
   bindTexture(rof_tex_f, device_f);
   bindTexture(rof_tex_u, device_u);
-  bindTexture(rof_tex_u_, device_u_);
   bindTexture(rof_tex_p, device_p);
 
   float L = sqrt(8.0f);

    if (y >= height-1)
      p[threadIdx.x+1][threadIdx.y+1].y = 0.0f;

//        syncthreads();

    float divergence = p[threadIdx.x+1][threadIdx.y+1].x - p[threadIdx.x][threadIdx.y+1].x +
                       p[threadIdx.x+1][threadIdx.y+1].y - p[threadIdx.x+1][threadIdx.y].y;

    // update primal variable
    u = (u + tau*(divergence + lambda*f))/(1.0f+tau*lambda);

    else
      theta = 1.0f;

    update_shared_single<<<dimGrid, dimBlock>>>(device_u->data(), device_p->data(),
                                                tau, theta, sigma, lambda, width, height,
                                                device_u->stride(), device_p->stride());
    sigma /= theta;
