tf_idf_vectorizer/utils/
normalizer.rs1pub 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}