mod conv;
mod conv_fft;
mod dilation;
mod padding;
pub use conv::ConvExt;
pub use conv_fft::ConvFFTExt;
pub use padding::ExplicitPadding;
#[derive(Debug, Clone, Copy)]
pub enum ConvMode<const N: usize> {
Full,
Same,
Valid,
Custom {
padding: [usize; N],
strides: [usize; N],
},
Explicit {
padding: [[usize; 2]; N],
strides: [usize; N],
},
}
#[derive(Debug, Clone, Copy)]
pub enum PaddingMode<const N: usize, T: num::traits::NumAssign + Copy> {
Zeros,
Const(T),
Reflect,
Replicate,
Circular,
Custom([BorderType<T>; N]),
Explicit([[BorderType<T>; 2]; N]),
}
#[derive(Debug, Clone, Copy)]
pub enum BorderType<T: num::traits::NumAssign + Copy> {
Zeros,
Const(T),
Reflect,
Replicate,
Circular,
}