Skip to content

Add dfft experimental BFFT workspace: native library, Python bindings, kernels, docs, CI, and tests#75

Merged
falseywinchnet merged 1 commit into
mainfrom
sbe14v-main/create-dragon-bfft-and-control-boundaries
Jun 28, 2026
Merged

Add dfft experimental BFFT workspace: native library, Python bindings, kernels, docs, CI, and tests#75
falseywinchnet merged 1 commit into
mainfrom
sbe14v-main/create-dragon-bfft-and-control-boundaries

Conversation

@falseywinchnet

Copy link
Copy Markdown
Owner

Motivation

  • Introduce a self-contained experimental DFFT (dragon BFFT) workspace to prototype explicit boundary ownership, scheduling and arena experiments without altering the repository root.
  • Provide a complete build/test/documentation surface for the experimental tree so native kernels, Python bindings, and benchmarking tooling can be exercised reproducibly.

Description

  • Add a full dfft/ subtree with the BFFT C API and C++ wrappers (include/bfft/*.h/.hpp), native implementations (src/*.cpp, including bruun_kernel.hpp, bodft_kernel.hpp and supporting generated tables), and the new BODFT kernel implementation.
  • Provide Python bindings and tooling: a ctypes/ctypes+numba loader (bfft/_core.py, bfft/numba_support.py), a packaging build hook (setup.py / pyproject.toml), and a high-level bfft package shim (bfft/__init__.py, _core.py) plus an STFT convenience implementation (stft.py) and validation/benchmark scripts (benchmarks/*, scripts/*).
  • Add extensive examples, benchmarks and probes (many examples/ and tests/ programs) including correctness tests, SFDR/support probes, and audio mag/phase benchmarks, plus documentation under documentation/ and DRAGON_BOUNDARIES.md describing the experimental design intentions.
  • Add build infrastructure: Makefile, CMakeLists.txt, pkgconfig/bfft.pc.in, MANIFEST.in, FUNDING.yml, .readthedocs.yaml, and GitHub Actions CI (.github/workflows/ci.yml) that runs both the Makefile and CMake builds across platforms and runs tests; include a .gitignore and LICENSE (MIT).
  • Add developer tooling and generated resources: generator script for phase/sincos tables (tools/gen_phase_slope_tables.py), pre-generated lookup headers, an interactive agent loop helper (scripts/agent-loop.sh), and many performance-oriented sources (AVX2/FMA-enabled paths guarded by backend detection macros).

Testing

  • Continuous integration: added GitHub Actions workflow dfft/.github/workflows/ci.yml that runs make and make test on ubuntu-latest and performs multi-platform CMake configure / build / ctest on Linux/macOS/Windows; the workflow is configured to stage and verify the Makefile and CMake install targets.
  • Local/automated checks exercised during development: ran make and make test (Makefile path) and CMake cmake --build + ctest for the CMake build; the tests included tests/correctness, tests/api_c, and the various probe/benchmark binaries; these automated builds and tests completed successfully.
  • Python checks: benchmarks/stft_validation.py and the ctypes/numba binding smoke paths are included and used for validation; package build via pip install . compiles the native shared library through the provided setup.py build hook (used in CI as part of the make/CMake stages).

Codex Task

@falseywinchnet falseywinchnet merged commit cb00156 into main Jun 28, 2026
4 checks passed
@falseywinchnet falseywinchnet deleted the sbe14v-main/create-dragon-bfft-and-control-boundaries branch July 2, 2026 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant