Skip to content

Commit bffb7c3

Browse files
committed
AK: Call fmod() only when necessary in sin(), cos()
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
1 parent 91edccb commit bffb7c3

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

AK/Math.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,8 @@ constexpr T sin(T angle)
688688
if (angle < 0)
689689
return -sin(-angle);
690690

691-
angle = fmod(angle, 2 * Pi<T>);
691+
if (angle >= 2 * Pi<T>)
692+
angle = fmod(angle, 2 * Pi<T>);
692693

693694
if (angle >= Pi<T>)
694695
return -sin(angle - Pi<T>);
@@ -743,7 +744,8 @@ constexpr T cos(T angle)
743744
if (angle < 0)
744745
return cos(-angle);
745746

746-
angle = fmod(angle, 2 * Pi<T>);
747+
if (angle >= 2 * Pi<T>)
748+
angle = fmod(angle, 2 * Pi<T>);
747749

748750
if (angle >= Pi<T>)
749751
return -cos(angle - Pi<T>);

0 commit comments

Comments
 (0)