 }
 
 __global__
-void filter_gauss_vert_v11( cudaTextureObject_t src_data,
-                            Plane2D_float       dst_data )
-{
-    int block_x = blockIdx.x * V11_EDGE_LEN;
-    int block_y = blockIdx.y * V11_EDGE_LEN;
-    int idx     = threadIdx.x;
-    int idy;
+void filter_gauss_horiz_v11_by_2( cudaTextureObject_t src_data,
+                                  Plane2D_float       dst_data )
+{
+    int block_x = blockIdx.x * blockDim.x;
+    int block_y = blockIdx.y * blockDim.y;
+    int idx;
+    int idy     = threadIdx.y;
 
     float g;
     float val;

    dst_data.ptr(idy)[idx] = out;
}

__global__
void filter_gauss_vert_v11_dog( cudaTextureObject_t top_data,
                                cudaTextureObject_t bot_data,

#endif // (PYRAMID_PRINT_DEBUG==1)

    for( int octave=0; octave<_num_octaves; octave++ ) {
        for( int level=0; level<V11_LEVELS; level++ ) {
#if 0
        cerr << "Configuration for octave " << octave << endl
