             let a3 = sampler(_tx, _s9.opacity, _s10.opacity, _s11.opacity, _s12.opacity)
             let a4 = sampler(_tx, _s13.opacity, _s14.opacity, _s15.opacity, _s16.opacity)
             
-            return Pixel(color: color, opacity: sampler(_ty, a1, a2, a3, a4))
+            return ColorPixel<ColorModel>(color: color, opacity: sampler(_ty, a1, a2, a3, a4))
             
         } else {
-            return Pixel()
+            return ColorPixel<ColorModel>()
         }
     }
 }

                t += l
            }
        }
        return t == 0 ? Pixel() : Pixel(pixel / t)
    }
    
    @_versioned
    @inline(__always)
    func smapling2<Pixel: ColorPixelProtocol>(source: UnsafePointer<ColorPixel<Pixel.Model>>, width: Int, height: Int, point: Point, sampler: (Double, Double, Double) -> Double) -> Pixel {
        
        let x_range = 0..<width
        let y_range = 0..<height

    
    @_versioned
    @inline(__always)
    func convolve<ColorModel: ColorModelProtocol>(source: UnsafePointer<ColorPixel<ColorModel>>, width: Int, height: Int, point: Point, kernel_size: Int, kernel: (Double) -> Double) -> ColorPixel<ColorModel> {
        
        var pixel = ColorPixel<ColorModel>()
        var t: Double = 0
        
        let _x = Int(point.x)
