use crate::{backend::Backend, Int, Tensor};
pub type QuantizationParameters<B> = QParams<Tensor<B, 1>, Tensor<B, 1, Int>>;
#[derive(Clone, Debug)]
pub struct QParams<S, O> {
pub scale: S,
pub offset: Option<O>,
}
pub struct QuantizationParametersPrimitive<B: Backend> {
pub scale: B::FloatTensorPrimitive,
pub offset: Option<B::IntTensorPrimitive>,
}
impl<B: Backend> From<QuantizationParameters<B>> for QuantizationParametersPrimitive<B> {
fn from(value: QuantizationParameters<B>) -> Self {
QuantizationParametersPrimitive {
scale: value.scale.primitive.tensor(),
offset: value.offset.map(|x| x.primitive),
}
}
}