/** * Convolution Operations * * Implements 1D and 2D convolution using both direct and FFT methods. * * @packageDocumentation */ /** * Convolution mode - determines output size */ export type ConvMode = 'full' | 'same' | 'valid'; /** * Direct 1D convolution (for small inputs) * * @param x - Input signal * @param h - Convolution kernel * @param mode - Output mode: 'full', 'same', or 'valid' * @returns Convolution result */ export declare function convDirect(x: number[] | Float64Array, h: number[] | Float64Array, mode?: ConvMode): number[]; /** * FFT-based 1D convolution (efficient for large inputs) * * Uses the convolution theorem: conv(x,h) = IFFT(FFT(x) * FFT(h)) * * @param x - Input signal * @param h - Convolution kernel * @param mode - Output mode: 'full', 'same', or 'valid' * @returns Convolution result */ export declare function convFFT(x: number[] | Float64Array, h: number[] | Float64Array, mode?: ConvMode): number[]; /** * 1D Convolution with automatic method selection * * Automatically selects direct or FFT method based on input sizes. * * @param x - Input signal * @param h - Convolution kernel * @param mode - Output mode: 'full' (default), 'same', or 'valid' * @returns Convolution result * * @example * ```typescript * // Simple convolution * const signal = [1, 2, 3, 4, 5]; * const kernel = [1, 0, -1]; // Edge detection * const result = conv(signal, kernel, 'same'); * ``` */ export declare function conv(x: number[] | Float64Array, h: number[] | Float64Array, mode?: ConvMode): number[]; /** * Cross-correlation of two signals * * Cross-correlation is convolution with the kernel reversed. * * @param x - First signal * @param h - Second signal * @param mode - Output mode * @returns Cross-correlation result */ export declare function xcorr(x: number[] | Float64Array, h: number[] | Float64Array, mode?: ConvMode): number[]; /** * Auto-correlation of a signal * * @param x - Input signal * @param mode - Output mode * @returns Auto-correlation result */ export declare function autocorr(x: number[] | Float64Array, mode?: ConvMode): number[]; /** * Direct 2D convolution * * @param image - 2D input array * @param kernel - 2D convolution kernel * @param mode - Output mode * @returns 2D convolution result */ export declare function conv2Direct(image: number[][], kernel: number[][], mode?: ConvMode): number[][]; /** * FFT-based 2D convolution * * @param image - 2D input array * @param kernel - 2D convolution kernel * @param mode - Output mode * @returns 2D convolution result */ export declare function conv2FFT(image: number[][], kernel: number[][], mode?: ConvMode): number[][]; /** * 2D Convolution with automatic method selection * * @param image - 2D input array * @param kernel - 2D convolution kernel * @param mode - Output mode: 'full' (default), 'same', or 'valid' * @returns 2D convolution result * * @example * ```typescript * // Edge detection with Sobel kernel * const image = [ * [1, 2, 3], * [4, 5, 6], * [7, 8, 9], * ]; * const sobelX = [ * [-1, 0, 1], * [-2, 0, 2], * [-1, 0, 1], * ]; * const edges = conv2(image, sobelX, 'same'); * ``` */ export declare function conv2(image: number[][], kernel: number[][], mode?: ConvMode): number[][]; //# sourceMappingURL=conv.d.ts.map