fast image operations
Diffstat (limited to 'src/pixels/wam.rs')
| -rw-r--r-- | src/pixels/wam.rs | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/src/pixels/wam.rs b/src/pixels/wam.rs deleted file mode 100644 index e33d496..0000000 --- a/src/pixels/wam.rs +++ /dev/null @@ -1,27 +0,0 @@ -use super::{float, unfloat}; -use atools::prelude::*; -#[allow(dead_code)] -pub trait Wam { - /// this function weighs the sides and combines - fn wam(self, b: Self, l: f32, r: f32) -> Self; -} - -impl<const N: usize> Wam for [u8; N] { - fn wam(self, b: Self, l: f32, r: f32) -> Self { - // SAFETY: read [`weigh`] - self.zip(b).map(|(a, b)| weigh(a, b, l, r)) - } -} - -#[inline(always)] -#[lower::apply(algebraic)] -fn weigh(a: u8, b: u8, l: f32, r: f32) -> u8 { - unfloat((float(a) * l + float(b) * r).clamp(0., 1.)) -} - -#[test] -fn weig() { - assert_eq!(weigh(10, 20, 0.5, 0.5), 15); - assert_eq!(weigh(10, 20, 0.9, 0.1), 11); - assert_eq!(weigh(150, 150, 1.8, 0.8), 255); -} |