• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dignifiedquire / sonora
96%

Build:
DEFAULT BRANCH: main
Repo Added 09 Feb 2026 04:26PM UTC
Token UczYsPXbAIKx0TtILUcP2F6OI5RHf5Ics regen
Build 99 Last
Files 146
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
Sync Branches
  • main
  • alloc-free-followup
  • chore/clippy-and-lockfiles
  • codex/review-code-for-compatibility-and-quality
  • dependabot/cargo/anyhow-1.0.102
  • dependabot/cargo/anyhow-1.0.103
  • dependabot/cargo/anyhow-1.0.104
  • dependabot/cargo/bytemuck-1.25.1
  • dependabot/cargo/bytemuck-1.25.2
  • dependabot/cargo/cbindgen-0.29.3
  • dependabot/cargo/cbindgen-0.29.4
  • dependabot/cargo/clap-4.5.58
  • dependabot/cargo/clap-4.5.60
  • dependabot/cargo/clap-4.6.5
  • dependabot/cargo/clap-4.6.6
  • dependabot/cargo/clap-4.6.7
  • dependabot/cargo/cpal-0.17.1
  • dependabot/cargo/cpal-0.17.3
  • dependabot/cargo/cpal-0.18.1
  • dependabot/cargo/cpal-0.18.2
  • dependabot/cargo/cpufeatures-0.3.1
  • dependabot/cargo/crates/sonora-bench/proptest-1.12.0
  • dependabot/cargo/crates/sonora-sys/cxx-1.0.205
  • dependabot/cargo/ctrlc-3.5.2
  • dependabot/cargo/fuzz/arbitrary-1.5.0
  • dependabot/cargo/proptest-1.11.0
  • dependabot/cargo/proptest-1.12.0
  • dependabot/cargo/ringbuf-0.5.0
  • dependabot/cargo/ringbuf-0.5.1
  • dependabot/cargo/ringbuf-0.5.2
  • dependabot/cargo/ringbuf-0.5.3
  • dependabot/cargo/test-strategy-0.4.5
  • dependabot/cargo/tracing-subscriber-0.3.23
  • dependabot/github_actions/actions/checkout-7
  • dependabot/github_actions/codecov/codecov-action-6
  • dependabot/github_actions/codecov/codecov-action-7
  • fix/adaptive-fir-filter-panic
  • fix/issue-34-denormals
  • fix/mul-add-without-fma
  • sync/post-m145-fixes

09 Oct 2026 08:14AM UTC coverage: 95.673% (+0.07%) from 95.604%
37903767722

push

github

web-flow
perf: use C++-order arithmetic except on AArch64 and x86 with fma (#37)

* perf: use C++-order arithmetic except on AArch64 and x86 with fma

ac75be6 rewrote 41 multiply-add expressions as f32::mul_add chains:
the butterflies and real-FFT post-processing in fft4g (cft1st, cftmdl,
rftfsub, rftbsub), the cascaded biquad filter, and the unrolled taps of
the three-band filter bank. mul_add is one instruction only where the
target has FMA. On x86_64 without the fma target feature, which is the
default for every downstream build, each mul_add becomes an fmaf
library call: on Linux an indirect call through the GOT to
compiler_builtins' runtime-dispatched fmaf, on Windows MSVC the UCRT
import. These calls sit in per-sample loops: the biquad feeds the
high-pass filter and the AEC3 decimator, and the filter bank and fft4g
run on every frame.

With a static CRT on Windows (+crt-static), the result of libucrt's
fmaf is not flushed under FTZ/DAZ. On the #34 flush-to-zero branch
(fix/issue-34-denormals), its regression test finds 503 subnormal
values in the AEC3 decimator output; with this change it passes.

Each site now selects its form with a compile-time constant,
USE_FMA = cfg!(any(target_arch = "aarch64", target_arch = "arm64ec",
target_feature = "fma")). Those targets keep the mul_add chains
unchanged; arm64ec runs AArch64 code and compiles mul_add to fmadd, as
aarch64 does. Every other target uses the expressions from before
ac75be6, which follow the operation order of the C++ reference (M145);
GCC and clang do not fuse them on baseline x86_64. Other targets with
native FMA (riscv64gc, powerpc64, armv7 with VFPv4, and others) also
take the plain path. It follows the C++ source order, as C++ compiled
without FP contraction does; GCC and clang would fuse these
expressions there.

Verification:
- aarch64 output is bit-identical to main. Release assembly of the
  three crates is instruction-identical after normalizing symbol
  hashes, and a pipeline run (HPF, A... (continued)

604 of 604 new or added lines in 3 files covered. (100.0%)

30444 of 31821 relevant lines covered (95.67%)

6457947.19 hits per line

Relevant lines Covered
Build:
Build:
31821 RELEVANT LINES 30444 COVERED LINES
6457947.19 HITS PER LINE
Source Files on main
  • Tree
  • List 146
  • Changed 7
  • Source Changed 4
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
37903767722 main perf: use C++-order arithmetic except on AArch64 and x86 with fma (#37) * perf: use C++-order arithmetic except on AArch64 and x86 with fma ac75be6 rewrote 41 multiply-add expressions as f32::mul_add chains: the butterflies and real-FFT post-pro... push 09 Oct 2026 08:15AM UTC web-flow github
95.67
37903521964 main Merge pull request #36 from dignifiedquire/sync/post-m145-fixes Sync post-M145 upstream fixes (full parity with C++ reference) push 09 Oct 2026 08:13AM UTC web-flow github
95.6
36560315244 main Merge pull request #35 from dignifiedquire/chore/clippy-and-lockfiles chore: fix new clippy lints, update lockfiles, extend dependabot push 29 Sep 2026 11:13AM UTC web-flow github
95.53
30441390454 main chore: Release push 29 Jul 2026 09:53AM UTC dignifiedquire github
95.53
30438709189 main chore(examples): fix clippy push 29 Jul 2026 09:14AM UTC dignifiedquire github
95.53
30438537671 main chore: update deps in cargo.lock push 29 Jul 2026 09:11AM UTC dignifiedquire github
95.53
28285148954 main chore(deps): bump codecov/codecov-action from 6 to 7 (#18) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.c... push 27 Jun 2026 09:27AM UTC web-flow github
95.53
28285142567 main chore(deps): bump cpal from 0.17.3 to 0.18.1 (#20) Bumps [cpal](https://github.com/RustAudio/cpal) from 0.17.3 to 0.18.1. - [Release notes](https://github.com/RustAudio/cpal/releases) - [Changelog](https://github.com/RustAudio/cpal/blob/master/CH... push 27 Jun 2026 09:27AM UTC web-flow github
95.53
28285137532 main chore(deps): bump actions/checkout from 6 to 7 (#21) Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob... push 27 Jun 2026 09:27AM UTC web-flow github
95.53
25659305532 main chore(deps): bump ringbuf from 0.4.8 to 0.5.0 (#16) Bumps [ringbuf](https://github.com/agerasev/ringbuf) from 0.4.8 to 0.5.0. - [Release notes](https://github.com/agerasev/ringbuf/releases) - [Commits](https://github.com/agerasev/ringbuf/commits)... push 11 May 2026 08:35AM UTC web-flow github
95.53
See All Builds (97)

Badge your Repo: sonora

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc