 
 @inlinable
 @inline(__always)
-public func TextureConvolution<Model>(_ texture: Texture<ColorPixel<Model>>, _ filter: [Double], _ filter_size: (Int, Int)) -> Texture<ColorPixel<Model>> {
-    return _TextureConvolution(texture, filter, filter_size)
-}
-@inlinable
-@inline(__always)
-public func TextureConvolution<Model>(_ texture: Texture<FloatColorPixel<Model>>, _ filter: [Float], _ filter_size: (Int, Int)) -> Texture<FloatColorPixel<Model>> {
-    return _TextureConvolution(texture, filter, filter_size)
+public func TextureConvolution<Model>(_ texture: Texture<ColorPixel<Model>>, _ filter: [Double], _ filter_width: Int, _ filter_height: Int) -> Texture<ColorPixel<Model>> {
+    return _TextureConvolution(texture, filter, filter_width, filter_height)
+}
+@inlinable
+@inline(__always)
+public func TextureConvolution<Model>(_ texture: Texture<FloatColorPixel<Model>>, _ filter: [Float], _ filter_width: Int, _ filter_height: Int) -> Texture<FloatColorPixel<Model>> {
+    return _TextureConvolution(texture, filter, filter_width, filter_height)
 }
 @inlinable
 @inline(__always)


@inlinable
@inline(__always)
func _TextureConvolution<Pixel, T: BinaryFloatingPoint>(_ texture: Texture<Pixel>, _ filter: [T], _ filter_size: (Int, Int)) -> Texture<Pixel> where T : FloatingMathProtocol {
    
    precondition(filter_size.0 > 0 && filter_size.1 > 0, "nonpositive filter_size is not allowed.")
    precondition(filter_size.0 * filter_size.1 == filter.count, "mismatch filter count.")
    
    let width = texture.width
    let height = texture.height
    let numberOfComponents = Pixel.numberOfComponents
    
    let n_width = width + filter_size.0 - 1
    let n_height = height + filter_size.1 - 1
    
    guard width > 0 && height > 0 else { return texture }
    

            
            for _ in 0..<numberOfComponents {
                
                DiscreteConvolve2D((width, height), source, numberOfComponents, (filter_width, filter_height), filter, 1, output, numberOfComponents)
                
                source += 1
                output += 1
