Skip to content

Add 2D/3D convolution support with tests and benchmarks#4

Open
kwsp wants to merge 1 commit intomainfrom
claude/youthful-kirch
Open

Add 2D/3D convolution support with tests and benchmarks#4
kwsp wants to merge 1 commit intomainfrom
claude/youthful-kirch

Conversation

@kwsp
Copy link
Owner

@kwsp kwsp commented Mar 12, 2026

  • Add ND convolution engine (FFTConvEngineND) with cached FFTW plans for 2D and 3D FFT-based convolution (full and same modes)
  • Fix member init order in FFTConvBufferND to match declaration order
  • Add C++ unit tests for 2D (test_fftconv2d.cpp) and 3D (test_fftconv3d.cpp)
  • Add C++ benchmarks for 2D and 3D convolution in bench_fftconv.cpp
  • Add pybind11 bindings for convolve2d/convolve3d (double and float)
  • Export convolve2d, convolve2d_, convolve3d, convolve3d_ in Python package
  • Add Python tests validating against scipy.signal.fftconvolve
  • Add Python benchmark script (bench_nd.py) comparing against numpy/scipy
  • Update test/CMakeLists.txt to include 2D/3D test sources

- Add ND convolution engine (FFTConvEngineND) with cached FFTW plans
  for 2D and 3D FFT-based convolution (full and same modes)
- Fix member init order in FFTConvBufferND to match declaration order
- Add C++ unit tests for 2D (test_fftconv2d.cpp) and 3D (test_fftconv3d.cpp)
- Add C++ benchmarks for 2D and 3D convolution in bench_fftconv.cpp
- Add pybind11 bindings for convolve2d/convolve3d (double and float)
- Export convolve2d, convolve2d_, convolve3d, convolve3d_ in Python package
- Add Python tests validating against scipy.signal.fftconvolve
- Add Python benchmark script (bench_nd.py) comparing against numpy/scipy
- Update test/CMakeLists.txt to include 2D/3D test sources

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant