#[cfg(all(target_arch = "x86_64", feature = "avx2"))]
mod avx2;
mod rust;
#[cfg(test)]
mod tests;
use std::num::NonZeroUsize;
use crate::util::Pixel;
#[inline]
pub fn reduce_average<T: Pixel>(
dest: &mut [T],
src: &[T],
dest_pitch: NonZeroUsize,
src_pitch: NonZeroUsize,
dest_width: NonZeroUsize,
dest_height: NonZeroUsize,
) {
#[cfg(all(target_arch = "x86_64", feature = "avx2"))]
if crate::util::has_avx2() {
unsafe {
avx2::reduce_average(dest, src, dest_pitch, src_pitch, dest_width, dest_height);
}
return;
}
rust::reduce_average(dest, src, dest_pitch, src_pitch, dest_width, dest_height);
}