 #endif // (PYRAMID_PRINT_DEBUG==1)
 
     for( int octave=0; octave<_num_octaves; octave++ ) {
-        dim3 block;
-        block.x = V11_EDGE_LEN;
-        block.y = V11_EDGE_LEN;
-
-        dim3 grid;
-        const int width  = _octaves[octave].getData(0).getWidth();
-        const int height = _octaves[octave].getData(0).getHeight();
-        grid.x = grid_divide( width,  V11_EDGE_LEN );
-        grid.y = grid_divide( height, V11_EDGE_LEN );
-
         for( int level=0; level<V11_LEVELS; level++ ) {
 #if 0
         cerr << "Configuration for octave " << octave << endl


            if( level > 0 ) {
                filter_gauss_vert_v11_dog
                    <<<grid,block>>>
                    ( _octaves[octave]._data_tex[level  ],
                      _octaves[octave]._data_tex[level-1],
                      _octaves[octave].getDogData( level-1 ) );

}

__global__
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;
