BlogDocs

Fix potential `NaN` from converting to `Okhsl` when the input is white or black(#369)

Merged
Merging
fix_issue_368
(
503f34c
) into
master
(
508f644
)
×2.9
IMPROVEMENTS
7
REGRESSIONS
0
UNTOUCHED
38
NEW
0
DROPPED
0
IGNORED
0

Benchmarks

Improved

matrix_inverse
benchmarks/benches/matrix.rs::benches::matrix::Matrix functions::matrix_inverse
×2.9
630.6 ns
216.9 ns
hsv to hsl
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hsv to hsl
+34%
8.9 µs
6.6 µs
xyz to yxy
benchmarks/benches/cie.rs::benches::cie_conversion::Cie family::xyz to yxy
+24%
6.9 µs
5.5 µs
multiply_3x3
benchmarks/benches/matrix.rs::benches::matrix::Matrix functions::multiply_3x3
+23%
316.7 ns
258.3 ns
yxy to xyz
benchmarks/benches/cie.rs::benches::cie_conversion::Cie family::yxy to xyz
+21%
7.4 µs
6.1 µs
hsl to hsv
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hsl to hsv
+20%
7.5 µs
6.2 µs
hwb to hsv
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hwb to hsv
+19%
7 µs
5.9 µs

Passed

linear hwb to hwb
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::linear hwb to hwb
+6%
21.9 µs
20.6 µs
hwb to linear hwb
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hwb to linear hwb
+5%
26 µs
24.7 µs
rgb_u8 to linsrgb_f32
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::rgb_u8 to linsrgb_f32
+2%
1.8 µs
1.8 µs
linsrgb to xyz
benchmarks/benches/cie.rs::benches::cie_conversion::Cie family::linsrgb to xyz
+1%
6 µs
5.9 µs
lab to xyz
benchmarks/benches/cie.rs::benches::cie_conversion::Cie family::lab to xyz
+1%
3.6 µs
3.6 µs
rgb to linsrgb - wide f32x8
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::rgb to linsrgb - wide f32x8
+1%
10.9 µs
10.8 µs
hsl to rgb
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hsl to rgb
0%
11.3 µs
11.3 µs
rgb to hsl
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::rgb to hsl
0%
7.1 µs
7 µs
rgb to linsrgb
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::rgb to linsrgb
0%
16.9 µs
16.9 µs
hsv to linear hsv
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hsv to linear hsv
0%
24.1 µs
24.1 µs
xyz to lab
benchmarks/benches/cie.rs::benches::cie_conversion::Cie family::xyz to lab
0%
25.5 µs
25.5 µs
hsl to linear hsl
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hsl to linear hsl
0%
24.9 µs
24.9 µs
Lab delta E
benchmarks/benches/cie.rs::benches::cie_delta_e::Cie delta E::Lab delta E
0%
126.7 µs
126.6 µs
Lab CIEDE2000
benchmarks/benches/cie.rs::benches::cie_delta_e::Cie delta E::Lab CIEDE2000
0%
5.6 ms
5.6 ms
lab to lch
benchmarks/benches/cie.rs::benches::cie_conversion::Cie family::lab to lch
0%
11 µs
11 µs
lch to lab
benchmarks/benches/cie.rs::benches::cie_conversion::Cie family::lch to lab
0%
5.2 µs
5.2 µs
linsrgb to xyz - wide f32x8
benchmarks/benches/cie.rs::benches::cie_conversion::Cie family::linsrgb to xyz - wide f32x8
0%
1.9 µs
1.9 µs
rgb to hsl - wide f32x8
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::rgb to hsl - wide f32x8
0%
3.4 µs
3.4 µs
rgb to hsv - wide f32x8
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::rgb to hsv - wide f32x8
0%
3.1 µs
3.1 µs
Lch CIEDE2000
benchmarks/benches/cie.rs::benches::cie_delta_e::Cie delta E::Lch CIEDE2000
0%
5.7 ms
5.7 ms
Lch delta E via Lab
benchmarks/benches/cie.rs::benches::cie_delta_e::Cie delta E::Lch delta E via Lab
0%
584.8 µs
584.9 µs
Lch delta E
benchmarks/benches/cie.rs::benches::cie_delta_e::Cie delta E::Lch delta E
0%
585.1 µs
585.1 µs
multiply_rgb_to_xyz
benchmarks/benches/matrix.rs::benches::matrix::Matrix functions::multiply_rgb_to_xyz
N/A
0 s
0 s
multiply_xyz
benchmarks/benches/matrix.rs::benches::matrix::Matrix functions::multiply_xyz
N/A
0 s
0 s
multiply_xyz_to_rgb
benchmarks/benches/matrix.rs::benches::matrix::Matrix functions::multiply_xyz_to_rgb
N/A
0 s
0 s
rgb_to_xyz_matrix
benchmarks/benches/matrix.rs::benches::matrix::Matrix functions::rgb_to_xyz_matrix
N/A
690 ns
0 ns
hsv to hwb
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hsv to hwb
0%
5.5 µs
5.5 µs
linsrgb to rgb
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::linsrgb to rgb
0%
16.2 µs
16.2 µs
linsrgb to rgb - wide f32x8
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::linsrgb to rgb - wide f32x8
0%
10.8 µs
10.8 µs
rgb_u8 to linsrgb_f64
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::rgb_u8 to linsrgb_f64
0%
2.3 µs
2.3 µs
xyz to linsrgb
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::xyz to linsrgb
0%
6.1 µs
6.1 µs
xyz to linsrgb - wide f32x8
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::xyz to linsrgb - wide f32x8
0%
1.9 µs
1.9 µs
linear hsl to hsl
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::linear hsl to hsl
0%
20.8 µs
20.8 µs
linear hsv to hsv
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::linear hsv to hsv
0%
19.9 µs
19.9 µs
hsv to rgb
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::hsv to rgb
0%
10.9 µs
10.9 µs
rgb to hsv
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::rgb to hsv
-1%
6.5 µs
6.6 µs
linsrgb_f64 to rgb_u8
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::linsrgb_f64 to rgb_u8
-1%
4.7 µs
4.7 µs
linsrgb_f32 to rgb_u8
benchmarks/benches/rgb.rs::benches::rgb_conversion::Rgb family::linsrgb_f32 to rgb_u8
-1%
7.4 µs
7.5 µs

Commits

Click on a commit to change the comparison range
base
master
508f644
+191%
Fix potential NaN from Okhsl when the input is white or black
503f34c
8 months ago
by Ogeon
ResourcesHomePricingDocsBlogGitHubChangelog