Skip to content

AK: Improve performance of sin(), cos() and add a perf test#26674

Merged
spholz merged 3 commits intoSerenityOS:masterfrom
nico:ak-sin-perf
Mar 21, 2026
Merged

AK: Improve performance of sin(), cos() and add a perf test#26674
spholz merged 3 commits intoSerenityOS:masterfrom
nico:ak-sin-perf

Conversation

@nico
Copy link
Contributor

@nico nico commented Mar 20, 2026

Before, with #26662 locally applied:

Running benchmark 'bench_trig_cos'.
Completed benchmark 'bench_trig_cos' in 171ms
Running benchmark 'bench_trig_cosf'.
Completed benchmark 'bench_trig_cosf' in 146ms
Running benchmark 'bench_trig_sin'.
Completed benchmark 'bench_trig_sin' in 153ms
Running benchmark 'bench_trig_sinf'.
Completed benchmark 'bench_trig_sinf' in 156ms

After:

Running benchmark 'bench_trig_cos'.
Completed benchmark 'bench_trig_cos' in 93ms
Running benchmark 'bench_trig_cosf'.
Completed benchmark 'bench_trig_cosf' in 64ms
Running benchmark 'bench_trig_sin'.
Completed benchmark 'bench_trig_sin' in 74ms
Running benchmark 'bench_trig_sinf'.
Completed benchmark 'bench_trig_sinf' in 65ms

For reference, with macOS libm:

Running benchmark 'bench_trig_cos'.
Completed benchmark 'bench_trig_cos' in 68ms
Running benchmark 'bench_trig_cosf'.
Completed benchmark 'bench_trig_cosf' in 56ms
Running benchmark 'bench_trig_sin'.
Completed benchmark 'bench_trig_sin' in 52ms
Running benchmark 'bench_trig_sinf'.
Completed benchmark 'bench_trig_sinf' in 56ms

No change to behavior or precision, just to runtime.

nico added 3 commits March 20, 2026 19:20
On my system, with macOS system libm:

Running benchmark 'bench_trig_cos'.
Completed benchmark 'bench_trig_cos' in 68ms
Running benchmark 'bench_trig_cosf'.
Completed benchmark 'bench_trig_cosf' in 56ms
Running benchmark 'bench_trig_sin'.
Completed benchmark 'bench_trig_sin' in 52ms
Running benchmark 'bench_trig_sinf'.
Completed benchmark 'bench_trig_sinf' in 56ms

With serenity libm (SerenityOS#26662):

Running benchmark 'bench_trig_cos'.
Completed benchmark 'bench_trig_cos' in 171ms
Running benchmark 'bench_trig_cosf'.
Completed benchmark 'bench_trig_cosf' in 146ms
Running benchmark 'bench_trig_sin'.
Completed benchmark 'bench_trig_sin' in 153ms
Running benchmark 'bench_trig_sinf'.
Completed benchmark 'bench_trig_sinf' in 156ms
Running benchmark 'bench_trig_cos'.
Completed benchmark 'bench_trig_cos' in 132ms
Running benchmark 'bench_trig_cosf'.
Completed benchmark 'bench_trig_cosf' in 92ms
Running benchmark 'bench_trig_sin'.
Completed benchmark 'bench_trig_sin' in 112ms
Running benchmark 'bench_trig_sinf'.
Completed benchmark 'bench_trig_sinf' in 107ms
Running benchmark 'bench_trig_cos'.
Completed benchmark 'bench_trig_cos' in 93ms
Running benchmark 'bench_trig_cosf'.
Completed benchmark 'bench_trig_cosf' in 64ms
Running benchmark 'bench_trig_sin'.
Completed benchmark 'bench_trig_sin' in 74ms
Running benchmark 'bench_trig_sinf'.
Completed benchmark 'bench_trig_sinf' in 65ms
@github-actions github-actions bot added the 👀 pr-needs-review PR needs review from a maintainer or community member label Mar 20, 2026
@spholz spholz merged commit bf648f7 into SerenityOS:master Mar 21, 2026
13 checks passed
@github-actions github-actions bot removed the 👀 pr-needs-review PR needs review from a maintainer or community member label Mar 21, 2026
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.

2 participants