Avatar for the jvdd user
jvdd
argminmax
BlogDocsChangelog

:rocket: float NaN handling

#21Merged
Comparing
nans_v3
(
d53e09c
) with
main
(
684ade2
)
CodSpeed Performance Gauge
0%
Improvements
0
Regressions
0
Untouched
32
New
20
Dropped
12
Ignored
0

Benchmarks

Failed

sse_random_long_f64Missing
benches/bench_f64.rs::benches::minmax_f64_random_array_long::sse_random_long_f64
CodSpeed Performance Gauge
N/A
1.4 ms
N/A
scalar_random_long_f64Missing
benches/bench_f64.rs::benches::minmax_f64_random_array_long::scalar_random_long_f64
CodSpeed Performance Gauge
N/A
1.9 ms
N/A
impl_random_long_f64Missing
benches/bench_f64.rs::benches::minmax_f64_random_array_long::impl_random_long_f64
CodSpeed Performance Gauge
N/A
804.8 µs
N/A
avx_random_long_f64Missing
benches/bench_f64.rs::benches::minmax_f64_random_array_long::avx_random_long_f64
CodSpeed Performance Gauge
N/A
804.5 µs
N/A
sse_random_long_f32Missing
benches/bench_f32.rs::benches::minmax_f32_random_array_long::sse_random_long_f32
CodSpeed Performance Gauge
N/A
712.1 µs
N/A
scalar_random_long_f32Missing
benches/bench_f32.rs::benches::minmax_f32_random_array_long::scalar_random_long_f32
CodSpeed Performance Gauge
N/A
1.7 ms
N/A
impl_random_long_f32Missing
benches/bench_f32.rs::benches::minmax_f32_random_array_long::impl_random_long_f32
CodSpeed Performance Gauge
N/A
403.2 µs
N/A
avx_random_long_f32Missing
benches/bench_f32.rs::benches::minmax_f32_random_array_long::avx_random_long_f32
CodSpeed Performance Gauge
N/A
402.9 µs
N/A
sse_random_long_f16Missing
benches/bench_f16.rs::benches::minmax_f16_random_array_long::sse_random_long_f16
CodSpeed Performance Gauge
N/A
475.5 µs
N/A
scalar_random_long_f16Missing
benches/bench_f16.rs::benches::minmax_f16_random_array_long::scalar_random_long_f16
CodSpeed Performance Gauge
N/A
2.3 ms
N/A
impl_random_long_f16Missing
benches/bench_f16.rs::benches::minmax_f16_random_array_long::impl_random_long_f16
CodSpeed Performance Gauge
N/A
235.7 µs
N/A
avx2_random_long_f16Missing
benches/bench_f16.rs::benches::minmax_f16_random_array_long::avx2_random_long_f16
CodSpeed Performance Gauge
N/A
235.5 µs
N/A

New

avx2_random_long_f16
benches/bench_f16_return_nan.rs::benches::nanargminmax_f16_random_array_long::avx2_random_long_f16
CodSpeed Performance Gauge
N/A
N/A
236.5 µs
impl_random_long_f16
benches/bench_f16_return_nan.rs::benches::nanargminmax_f16_random_array_long::impl_random_long_f16
CodSpeed Performance Gauge
N/A
N/A
236.6 µs
scalar_random_long_f16
benches/bench_f16_return_nan.rs::benches::nanargminmax_f16_random_array_long::scalar_random_long_f16
CodSpeed Performance Gauge
N/A
N/A
3.3 ms
sse_random_long_f16
benches/bench_f16_return_nan.rs::benches::nanargminmax_f16_random_array_long::sse_random_long_f16
CodSpeed Performance Gauge
N/A
N/A
476.4 µs
avx_random_long_f32
benches/bench_f32_ignore_nan.rs::benches::argminmax_f32_random_array_long::avx_random_long_f32
CodSpeed Performance Gauge
N/A
N/A
403 µs
impl_random_long_f32
benches/bench_f32_ignore_nan.rs::benches::argminmax_f32_random_array_long::impl_random_long_f32
CodSpeed Performance Gauge
N/A
N/A
403.2 µs
scalar_random_long_f32
benches/bench_f32_ignore_nan.rs::benches::argminmax_f32_random_array_long::scalar_random_long_f32
CodSpeed Performance Gauge
N/A
N/A
1.7 ms
sse_random_long_f32
benches/bench_f32_ignore_nan.rs::benches::argminmax_f32_random_array_long::sse_random_long_f32
CodSpeed Performance Gauge
N/A
N/A
712.1 µs
avx2_nanargminmax_f32
benches/bench_f32_return_nan.rs::benches::nanargminmax_f32_random_array_long::avx2_nanargminmax_f32
CodSpeed Performance Gauge
N/A
N/A
466.9 µs
impl_nanargminmax_f32
benches/bench_f32_return_nan.rs::benches::nanargminmax_f32_random_array_long::impl_nanargminmax_f32
CodSpeed Performance Gauge
N/A
N/A
467.1 µs
scalar_nanargminmax_f32
benches/bench_f32_return_nan.rs::benches::nanargminmax_f32_random_array_long::scalar_nanargminmax_f32
CodSpeed Performance Gauge
N/A
N/A
2.2 ms
sse_nanargminmax_f32
benches/bench_f32_return_nan.rs::benches::nanargminmax_f32_random_array_long::sse_nanargminmax_f32
CodSpeed Performance Gauge
N/A
N/A
968 µs
avx_random_long_f64
benches/bench_f64_ignore_nan.rs::benches::argminmax_f64_random_array_long::avx_random_long_f64
CodSpeed Performance Gauge
N/A
N/A
804.6 µs
impl_random_long_f64
benches/bench_f64_ignore_nan.rs::benches::argminmax_f64_random_array_long::impl_random_long_f64
CodSpeed Performance Gauge
N/A
N/A
804.8 µs
scalar_random_long_f64
benches/bench_f64_ignore_nan.rs::benches::argminmax_f64_random_array_long::scalar_random_long_f64
CodSpeed Performance Gauge
N/A
N/A
1.9 ms
sse_random_long_f64
benches/bench_f64_ignore_nan.rs::benches::argminmax_f64_random_array_long::sse_random_long_f64
CodSpeed Performance Gauge
N/A
N/A
1.4 ms
avx2_nanargminmax_f64
benches/bench_f64_return_nan.rs::benches::nanargminmax_f64_random_array_long::avx2_nanargminmax_f64
CodSpeed Performance Gauge
N/A
N/A
1.1 ms
impl_nanargminmax_f64
benches/bench_f64_return_nan.rs::benches::nanargminmax_f64_random_array_long::impl_nanargminmax_f64
CodSpeed Performance Gauge
N/A
N/A
1.1 ms
scalar_nanargminmax_f64
benches/bench_f64_return_nan.rs::benches::nanargminmax_f64_random_array_long::scalar_nanargminmax_f64
CodSpeed Performance Gauge
N/A
N/A
2.4 ms
sse_nanargminmax_f64
benches/bench_f64_return_nan.rs::benches::nanargminmax_f64_random_array_long::sse_nanargminmax_f64
CodSpeed Performance Gauge
N/A
N/A
2.3 ms

Passed

impl_random_long_u8
benches/bench_u8.rs::benches::minmax_u8_random_array_long::impl_random_long_u8
CodSpeed Performance Gauge
0%
86.2 µs
86.1 µs
avx2_random_long_i16
benches/bench_i16.rs::benches::minmax_i16_random_array_long::avx2_random_long_i16
CodSpeed Performance Gauge
0%
113 µs
113 µs
impl_random_long_i16
benches/bench_i16.rs::benches::minmax_i16_random_array_long::impl_random_long_i16
CodSpeed Performance Gauge
0%
113.3 µs
113.2 µs
sse_random_long_u8
benches/bench_u8.rs::benches::minmax_u8_random_array_long::sse_random_long_u8
CodSpeed Performance Gauge
0%
86 µs
86 µs
avx2_random_long_u32
benches/bench_u32.rs::benches::minmax_u32_random_array_long::avx2_random_long_u32
CodSpeed Performance Gauge
0%
224.9 µs
224.9 µs
impl_random_long_u32
benches/bench_u32.rs::benches::minmax_u32_random_array_long::impl_random_long_u32
CodSpeed Performance Gauge
0%
225.1 µs
225.1 µs
sse_random_long_u32
benches/bench_u32.rs::benches::minmax_u32_random_array_long::sse_random_long_u32
CodSpeed Performance Gauge
0%
301.2 µs
301.2 µs
scalar_random_long_i16
benches/bench_i16.rs::benches::minmax_i16_random_array_long::scalar_random_long_i16
CodSpeed Performance Gauge
0%
349.6 µs
349.6 µs
avx2_random_long_i64
benches/bench_i64.rs::benches::minmax_i64_random_array_long::avx2_random_long_i64
CodSpeed Performance Gauge
0%
459.3 µs
459.3 µs
sse_random_long_u64
benches/bench_u64.rs::benches::minmax_u64_random_array_long::sse_random_long_u64
CodSpeed Performance Gauge
0%
622.9 µs
622.9 µs
avx2_random_long_i8
benches/bench_i8.rs::benches::minmax_i8_random_array_long::avx2_random_long_i8
CodSpeed Performance Gauge
0%
74.2 µs
74.2 µs
avx2_random_long_i32
benches/bench_i32.rs::benches::minmax_i32_random_array_long::avx2_random_long_i32
CodSpeed Performance Gauge
0%
224.9 µs
224.9 µs
sse_random_long_i64
benches/bench_i64.rs::benches::minmax_i64_random_array_long::sse_random_long_i64
CodSpeed Performance Gauge
0%
608.6 µs
608.6 µs
sse_random_long_i32
benches/bench_i32.rs::benches::minmax_i32_random_array_long::sse_random_long_i32
CodSpeed Performance Gauge
0%
290.5 µs
290.5 µs
impl_random_long_i64
benches/bench_i64.rs::benches::minmax_i64_random_array_long::impl_random_long_i64
CodSpeed Performance Gauge
0%
459.6 µs
459.6 µs
avx2_random_long_u64
benches/bench_u64.rs::benches::minmax_u64_random_array_long::avx2_random_long_u64
CodSpeed Performance Gauge
0%
459.4 µs
459.4 µs
impl_random_long_u64
benches/bench_u64.rs::benches::minmax_u64_random_array_long::impl_random_long_u64
CodSpeed Performance Gauge
0%
459.6 µs
459.6 µs
scalar_random_long_u32
benches/bench_u32.rs::benches::minmax_u32_random_array_long::scalar_random_long_u32
CodSpeed Performance Gauge
0%
442.9 µs
442.9 µs
scalar_random_long_i32
benches/bench_i32.rs::benches::minmax_i32_random_array_long::scalar_random_long_i32
CodSpeed Performance Gauge
0%
442.9 µs
442.9 µs
scalar_random_long_i8
benches/bench_i8.rs::benches::minmax_i8_random_array_long::scalar_random_long_i8
CodSpeed Performance Gauge
0%
359.7 µs
359.8 µs
scalar_random_long_i64
benches/bench_i64.rs::benches::minmax_i64_random_array_long::scalar_random_long_i64
CodSpeed Performance Gauge
0%
629.5 µs
629.6 µs
scalar_random_long_u64
benches/bench_u64.rs::benches::minmax_u64_random_array_long::scalar_random_long_u64
CodSpeed Performance Gauge
0%
629.5 µs
629.6 µs
impl_random_long_i32
benches/bench_i32.rs::benches::minmax_i32_random_array_long::impl_random_long_i32
CodSpeed Performance Gauge
0%
225 µs
225.1 µs
scalar_random_long_u8
benches/bench_u8.rs::benches::minmax_u8_random_array_long::scalar_random_long_u8
CodSpeed Performance Gauge
0%
359.8 µs
359.8 µs
scalar_random_long_u16
benches/bench_u16.rs::benches::minmax_u16_random_array_long::scalar_random_long_u16
CodSpeed Performance Gauge
0%
349.5 µs
349.6 µs
sse_random_long_i8
benches/bench_i8.rs::benches::minmax_i8_random_array_long::sse_random_long_i8
CodSpeed Performance Gauge
0%
85.1 µs
85.2 µs
sse_random_long_i16
benches/bench_i16.rs::benches::minmax_i16_random_array_long::sse_random_long_i16
CodSpeed Performance Gauge
0%
144.1 µs
144.2 µs
sse_random_long_u16
benches/bench_u16.rs::benches::minmax_u16_random_array_long::sse_random_long_u16
CodSpeed Performance Gauge
0%
149.4 µs
149.5 µs
impl_random_long_u16
benches/bench_u16.rs::benches::minmax_u16_random_array_long::impl_random_long_u16
CodSpeed Performance Gauge
0%
113.3 µs
113.3 µs
avx2_random_long_u16
benches/bench_u16.rs::benches::minmax_u16_random_array_long::avx2_random_long_u16
CodSpeed Performance Gauge
0%
113.1 µs
113.1 µs
impl_random_long_i8
benches/bench_i8.rs::benches::minmax_i8_random_array_long::impl_random_long_i8
CodSpeed Performance Gauge
0%
85.3 µs
85.3 µs
avx2_random_long_u8
benches/bench_u8.rs::benches::minmax_u8_random_array_long::avx2_random_long_u8
CodSpeed Performance Gauge
0%
73.6 µs
73.9 µs

Commits

Click on a commit to change the comparison range
Base
main
684ade2
-3%
:recycle: prepare for float NaN handling
edd083c
2 years ago
by jvdd
-81%
Merge pull request #23 from jvdd/nans_v4 :recycle: major refactoring
97adc4f
2 years ago
by jvdd
+84%
:see_no_evil: enable correct target feature for u32 AVX2
b58d0d6
2 years ago
by jvdd
0%
:thinking: add simd f64 return nans + cleanup code
ab36c08
2 years ago
by jvdd
0%
:bulb: account for missing srai 64-bit instruction on SSE & AVX
ddad0a5
2 years ago
by jvdd
-89%
:recycle: further decoupling of traits
07a5e66
2 years ago
by jvdd
+89%
:broom: revert prev commit :/
4cf61d8
2 years ago
by jvdd
0%
:broom: formatting
4b81161
2 years ago
by jvdd
0%
Merge pull request #25 from jvdd/varon-neon-nan-v3 :pie: update NEON SIMD
d8da46c
2 years ago
by jvdd
0%
:see_no_evil: resolve merge conflict
d8f0896
2 years ago
by jvdd
0%
:broom: improve variable names
2cf885b
2 years ago
by jvdd
0%
:broom: shorter imports
aa14124
2 years ago
by jvdd
-16%
:sparkles: scalar ignore_nans + ignore_nans & inf tests
6026ad8
2 years ago
by jvdd
0%
:fire: test return nans + inf handling + minor bug fix
b5390b6
2 years ago
by jvdd
0%
:bug: minor bug fix + add tests
2c2ab4e
2 years ago
by jvdd
0%
:see_no_evil: remove avx512f target feature check in NEON tests
87422b7
2 years ago
by jvdd
0%
:tada: use correct SCALAR implementation
a52571e
2 years ago
by jvdd
0%
:recycle: move duplicate code to dedicated method
de00a6f
2 years ago
by jvdd
-11%
:muscle: make return nan default implementation
7b12400
2 years ago
by jvdd
-39%
:pray: update benches b4 renaming
c2b386a
2 years ago
by jvdd
0%
:pray: update tests b4 renaming
d4a2d42
2 years ago
by jvdd
+39%
:see_no_evil: enable correct target feature for f64 SSE
e65d89b
2 years ago
by jvdd
0%
:broom:
fd7edfb
2 years ago
by jvdd
0%
:broom: fix clippy warnings
30fad1c
2 years ago
by jvdd
0%
:pray: fix benches on ARM/Aarch64
1b4bfe6
2 years ago
by jvdd
0%
:sparkles: add benches for nanargminmax
1d95552
2 years ago
by jvdd
0%
:bug: minor bugfix in benches
859ac95
2 years ago
by jvdd
0%
:broom: num_traits Float -> FloatCore
14f5070
2 years ago
by jvdd
+27%
Merge pull request #28 from jvdd/nans_change_default :recycle: change nan default handling behavior to SkipNa
049e9d3
2 years ago
by jvdd
0%
:mag: own code review!
84b6518
2 years ago
by jvdd
0%
:pen: code review
d53e09c
2 years ago
by jvdd
Home Terms PrivacyDocs