for (
int y = 0; 
y != in.getHeight(); ++
y) {
 
        for (ImageT::xy_locator 
ptr = in.xy_at(0, 
y), 
end = in.xy_at(in.getWidth(), 
y); 
ptr != 
end;
 
        }
    }
    
    
    
    ImageT out(in.getDimensions());  
    out.assign(in);
    for (
int y = 1; 
y != in.getHeight() - 1; ++
y) {
 
        for (ImageT::xy_locator 
ptr = in.xy_at(1, 
y), 
end = in.xy_at(in.getWidth() - 1, 
y),
 
            *optr = 
ptr(-1, -1) + 2 * 
ptr(0, -1) + 
ptr(1, -1) + 2 * 
ptr(-1, 0) + 4 * 
ptr(0, 0) +
        }
    }
    
    
    
    out2->assign(in);
 
    typedef ImageT::const_xy_locator xy_loc;
 
    for (
int y = 1; 
y != in.getHeight() - 1; ++
y) {
 
        
        xy_loc 
dot = in.xy_at(1, 
y), 
end = in.xy_at(in.getWidth() - 1, 
y);
 
        xy_loc::cached_location_t nw = 
dot.cache_location(-1, -1);
        xy_loc::cached_location_t n = 
dot.cache_location(0, -1);
        xy_loc::cached_location_t ne = 
dot.cache_location(1, -1);
        xy_loc::cached_location_t 
w = 
dot.cache_location(-1, 0);
        xy_loc::cached_location_t c = 
dot.cache_location(0, 0);
        xy_loc::cached_location_t e = 
dot.cache_location(1, 0);
        xy_loc::cached_location_t sw = 
dot.cache_location(-1, 1);
        xy_loc::cached_location_t s = 
dot.cache_location(0, 1);
        xy_loc::cached_location_t se = 
dot.cache_location(1, 1);
 
        for (ImageT::x_iterator optr = out2->row_begin(
y) + 1; 
dot != 
end; ++
dot.x(), ++optr) {
 
        }
    }
    
    
    
    xy_loc pix11 = in.xy_at(1, 1);
 
    xy_loc::cached_location_t nw = pix11.cache_location(-1, -1);
    xy_loc::cached_location_t n = pix11.cache_location(0, -1);
    xy_loc::cached_location_t ne = pix11.cache_location(1, -1);
    xy_loc::cached_location_t 
w = pix11.cache_location(-1, 0);
    xy_loc::cached_location_t c = pix11.cache_location(0, 0);
    xy_loc::cached_location_t e = pix11.cache_location(1, 0);
    xy_loc::cached_location_t sw = pix11.cache_location(-1, 1);
    xy_loc::cached_location_t s = pix11.cache_location(0, 1);
    xy_loc::cached_location_t se = pix11.cache_location(1, 1);
 
    for (
int y = 1; 
y != in.getHeight() - 1; ++
y) {
 
        
        xy_loc 
dot = in.xy_at(1, 
y), 
end = in.xy_at(in.getWidth() - 1, 
y);
 
        for (ImageT::x_iterator optr = out2->row_begin(
y) + 1; 
dot != 
end; ++
dot.x(), ++optr) {
 
        }
    }
    
    
    
    {
        ImageT center = ImageT(
                *out2,
        center /= 16;
    }
    
    
    
    for (
int y = 0; 
y != in.getHeight(); ++
y) {
 
        for (ImageT::xy_x_iterator 
ptr = in.xy_at(0, 
y).x(), 
end = in.xy_at(in.getWidth(), 
y).x(); 
ptr != 
end;
 
        }
    }
    
    
    
    out.writeFits("foo.fits");
    out2->writeFits("foo2.fits");
 
    return 0;
}