MCPcopy Create free account
hub / github.com/cosdata/cosdata / main

Function main

org/src/main.rs:63–111  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

61}
62
63fn main() {
64 // Initialize the lookup table once
65 initialize_u16_lookup_table();
66 println!("done");
67
68 let size = 64;
69 let min = 0.0;
70 let max = 1.0;
71 let vec1 = (0..size)
72 .map(|_| {
73 let mut rng = rand::thread_rng();
74 let random_number: f32 = rng.gen_range(min..max);
75 random_number
76 })
77 .collect::<Vec<f32>>();
78
79 let vec2 = (0..size)
80 .map(|_| {
81 let mut rng = rand::thread_rng();
82 let random_number: f32 = rng.gen_range(min..max);
83 random_number
84 })
85 .collect::<Vec<f32>>();
86
87 println!("raw vec A :{:?}", vec1);
88 println!("raw vec B :{:?}", vec2);
89
90 let resolution = 1 as u8;
91 let quantized_values1: Vec<Vec<u32>> = quantize_to_u32_bits(&vec1.clone(), resolution);
92 let quantized_values2: Vec<Vec<u32>> = quantize_to_u32_bits(&vec2.clone(), resolution);
93
94 let vector_list1 = VectorQt {
95 quant_vec: quantized_values1,
96 resolution: resolution,
97 };
98 let vector_list2 = VectorQt {
99 quant_vec: quantized_values2,
100 resolution: resolution,
101 };
102 println!("quantized vec A :{:?}", vector_list1);
103 println!("quantized vec B :{:?}", vector_list2);
104
105 let normal = cosine_similarity(&vec1, &vec2);
106 println!("cs <normal>: {}", normal);
107 println!("\n\n");
108
109 let scalar_quant_cs = cosine_similarity_new(&vector_list1, &vector_list2);
110 println!("scalar_quant_cs : {}", scalar_quant_cs);
111}
112
113fn precompute_lookup_table() -> [[u8; 16]; 16] {
114 let mut table = [[0; 16]; 16];

Callers

nothing calls this directly

Calls 5

quantize_to_u32_bitsFunction · 0.85
cosine_similarity_newFunction · 0.85
cloneMethod · 0.80
cosine_similarityFunction · 0.70

Tested by

no test coverage detected