tf_idf_vectorizer/utils/
normalizer.rs

1pub trait DeNormalizer {
2    fn denormalize(&self, denormalize_num: f64) -> f64;
3}
4
5impl DeNormalizer for f64 {
6    #[inline]
7    fn denormalize(&self, denormalize_num: f64) -> f64 {
8        self * denormalize_num
9    }
10}
11
12impl DeNormalizer for f32 {
13    #[inline]
14    fn denormalize(&self, denormalize_num: f64) -> f64 {
15        (*self as f64) * denormalize_num
16    }
17}
18
19impl DeNormalizer for u8 {
20    #[inline]
21    fn denormalize(&self, denormalize_num: f64) -> f64 {
22        const DIV_MAX: f64 = 1.0 / (u8::MAX as f64);
23        (*self as f64) * DIV_MAX * denormalize_num
24    }
25}
26
27impl DeNormalizer for u16 {
28    #[inline]
29    fn denormalize(&self, denormalize_num: f64) -> f64 {
30        const DIV_MAX: f64 = 1.0 / (u16::MAX as f64);
31        (*self as f64) * DIV_MAX * denormalize_num
32    }
33}
34
35impl DeNormalizer for u32 {
36    #[inline]
37    fn denormalize(&self, denormalize_num: f64) -> f64 {
38        const DIV_MAX: f64 = 1.0 / (u32::MAX as f64);
39        (*self as f64) * DIV_MAX * denormalize_num
40    }
41}
42
43impl DeNormalizer for u64 {
44    #[inline]
45    fn denormalize(&self, denormalize_num: f64) -> f64 {
46        const DIV_MAX: f64 = 1.0 / (u64::MAX as f64);
47        (*self as f64) * DIV_MAX * denormalize_num
48    }
49}