Skip to content

Implement tan(x) - #10820

Merged
copybara-service[bot] merged 1 commit into
masterfrom
test_952536330
Jul 23, 2026
Merged

Implement tan(x)#10820
copybara-service[bot] merged 1 commit into
masterfrom
test_952536330

Conversation

@copybara-service

Copy link
Copy Markdown
Contributor

Implement tan(x)

This refactors the implementation of sin and cos to allow computing both at the same time.

Benchmarks:

--------------------------------------------------------------------------------------------------------------
Benchmark                                                    Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------------
bench_reference/tangent_float/m:1/n:4096/real_time       55771 ns        55769 ns         2377 Bytes=587.543M/s Op=73.4429M/s
bench_reference/tangent_double/m:1/n:4096/real_time     206666 ns       206656 ns          733 Bytes=317.111M/s Op=19.8194M/s
bench/tangent_fp32_avx512/m:1/n:4096/real_time            3379 ns         3379 ns        41664 Bytes=9.69724G/s Op=1.21216G/s
bench/tangent_fp64_avx512/m:1/n:4096/real_time           20724 ns        20721 ns         6284 Bytes=3.16227G/s Op=197.642M/s
bench/tangent_fp32_avx2_fma3/m:1/n:4096/real_time         4487 ns         4486 ns        32445 Bytes=7.30341G/s Op=912.926M/s
bench/tangent_fp64_avx2_fma3/m:1/n:4096/real_time        16939 ns        16937 ns         8114 Bytes=3.86884G/s Op=241.802M/s
bench/tangent_fp32_fma3/m:1/n:4096/real_time              7061 ns         7059 ns        19752 Bytes=4.64097G/s Op=580.122M/s
bench/tangent_fp64_fma3/m:1/n:4096/real_time             17072 ns        17070 ns         8089 Bytes=3.83869G/s Op=239.918M/s
bench/tangent_fp32_avx2/m:1/n:4096/real_time              7323 ns         7323 ns        19036 Bytes=4.47462G/s Op=559.327M/s
bench/tangent_fp64_avx2/m:1/n:4096/real_time             25252 ns        25251 ns         5525 Bytes=2.59528G/s Op=162.205M/s
bench/tangent_fp32_avx/m:1/n:4096/real_time               8496 ns         8492 ns        16476 Bytes=3.85677G/s Op=482.097M/s
bench/tangent_fp64_avx/m:1/n:4096/real_time              28608 ns        28604 ns         4956 Bytes=2.2908G/s Op=143.175M/s
bench/tangent_fp32_sse41/m:1/n:4096/real_time            11944 ns        11943 ns        11406 Bytes=2.74346G/s Op=342.932M/s
bench/tangent_fp64_sse41/m:1/n:4096/real_time            43979 ns        43977 ns         3162 Bytes=1.49017G/s Op=93.1353M/s
bench/tangent_fp32_sse2/m:1/n:4096/real_time             12833 ns        12829 ns        11255 Bytes=2.55341G/s Op=319.176M/s
bench/tangent_fp64_sse2/m:1/n:4096/real_time             48748 ns        48745 ns         3000 Bytes=1.34439G/s Op=84.0245M/s
bench/tangent_fp32_sse2_fma/m:1/n:4096/real_time        117568 ns       117562 ns         1204 Bytes=278.715M/s Op=34.8394M/s

This refactors the implementation of sin and cos to allow computing both at the same time.

Benchmarks:
```
--------------------------------------------------------------------------------------------------------------
Benchmark                                                    Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------------
bench_reference/tangent_float/m:1/n:4096/real_time       55771 ns        55769 ns         2377 Bytes=587.543M/s Op=73.4429M/s
bench_reference/tangent_double/m:1/n:4096/real_time     206666 ns       206656 ns          733 Bytes=317.111M/s Op=19.8194M/s
bench/tangent_fp32_avx512/m:1/n:4096/real_time            3379 ns         3379 ns        41664 Bytes=9.69724G/s Op=1.21216G/s
bench/tangent_fp64_avx512/m:1/n:4096/real_time           20724 ns        20721 ns         6284 Bytes=3.16227G/s Op=197.642M/s
bench/tangent_fp32_avx2_fma3/m:1/n:4096/real_time         4487 ns         4486 ns        32445 Bytes=7.30341G/s Op=912.926M/s
bench/tangent_fp64_avx2_fma3/m:1/n:4096/real_time        16939 ns        16937 ns         8114 Bytes=3.86884G/s Op=241.802M/s
bench/tangent_fp32_fma3/m:1/n:4096/real_time              7061 ns         7059 ns        19752 Bytes=4.64097G/s Op=580.122M/s
bench/tangent_fp64_fma3/m:1/n:4096/real_time             17072 ns        17070 ns         8089 Bytes=3.83869G/s Op=239.918M/s
bench/tangent_fp32_avx2/m:1/n:4096/real_time              7323 ns         7323 ns        19036 Bytes=4.47462G/s Op=559.327M/s
bench/tangent_fp64_avx2/m:1/n:4096/real_time             25252 ns        25251 ns         5525 Bytes=2.59528G/s Op=162.205M/s
bench/tangent_fp32_avx/m:1/n:4096/real_time               8496 ns         8492 ns        16476 Bytes=3.85677G/s Op=482.097M/s
bench/tangent_fp64_avx/m:1/n:4096/real_time              28608 ns        28604 ns         4956 Bytes=2.2908G/s Op=143.175M/s
bench/tangent_fp32_sse41/m:1/n:4096/real_time            11944 ns        11943 ns        11406 Bytes=2.74346G/s Op=342.932M/s
bench/tangent_fp64_sse41/m:1/n:4096/real_time            43979 ns        43977 ns         3162 Bytes=1.49017G/s Op=93.1353M/s
bench/tangent_fp32_sse2/m:1/n:4096/real_time             12833 ns        12829 ns        11255 Bytes=2.55341G/s Op=319.176M/s
bench/tangent_fp64_sse2/m:1/n:4096/real_time             48748 ns        48745 ns         3000 Bytes=1.34439G/s Op=84.0245M/s
bench/tangent_fp32_sse2_fma/m:1/n:4096/real_time        117568 ns       117562 ns         1204 Bytes=278.715M/s Op=34.8394M/s
```
PiperOrigin-RevId: 952852475
@copybara-service
copybara-service Bot merged commit 93f0931 into master Jul 23, 2026
@copybara-service
copybara-service Bot deleted the test_952536330 branch July 23, 2026 18:02
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