@@ -63,7 +63,7 @@ std::vector<double> compute_percentiles(std::vector<double> values,
6363 std::vector<double > results;
6464
6565 for (double p : percentiles) {
66- size_t idx = static_cast <size_t >(p * values.size ());
66+ size_t idx = static_cast <size_t >(p * static_cast < double >( values.size () ));
6767 if (idx >= values.size ())
6868 idx = values.size () - 1 ;
6969 results.push_back (values[idx]);
@@ -92,7 +92,7 @@ void run_build_benchmark(const BenchmarkConfig& config) {
9292 params.metric = DistanceMetric::L2 ;
9393
9494 HNSWIndex index (config.d , params);
95- index.reserve (config.N );
95+ index.reserve (static_cast < size_t >( config.N ) );
9696
9797 auto start = std::chrono::high_resolution_clock::now ();
9898
@@ -107,7 +107,7 @@ void run_build_benchmark(const BenchmarkConfig& config) {
107107 auto end = std::chrono::high_resolution_clock::now ();
108108 auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
109109
110- double build_time_s = duration.count () / 1000.0 ;
110+ double build_time_s = static_cast < double >( duration.count () ) / 1000.0 ;
111111 double throughput = config.N / build_time_s;
112112
113113 std::cout << " Build time: " << build_time_s << " seconds" << std::endl;
@@ -152,11 +152,12 @@ void run_query_benchmark(const BenchmarkConfig& config) {
152152
153153 // Compute ground truth for recall calculation (sample)
154154 std::cout << " Computing ground truth (first 100 queries)..." << std::endl;
155- std::vector<std::vector<int >> ground_truth (std::min (100 , config.Q ));
155+ std::vector<std::vector<int >> ground_truth (static_cast < size_t >( std::min (100 , config.Q ) ));
156156 for (int i = 0 ; i < std::min (100 , config.Q ); ++i) {
157- auto results = brute_force_search (queries[i], vectors, config.k , params.metric );
157+ auto results =
158+ brute_force_search (queries[static_cast <size_t >(i)], vectors, config.k , params.metric );
158159 for (const auto & r : results) {
159- ground_truth[i ].push_back (r.id );
160+ ground_truth[static_cast < size_t >(i) ].push_back (r.id );
160161 }
161162 }
162163
@@ -166,36 +167,37 @@ void run_query_benchmark(const BenchmarkConfig& config) {
166167
167168 for (int ef : config.ef_search_values ) {
168169 std::vector<double > latencies;
169- latencies.reserve (config.Q );
170+ latencies.reserve (static_cast < size_t >( config.Q ) );
170171
171172 std::vector<float > recalls;
172173
173174 for (int i = 0 ; i < config.Q ; ++i) {
174175 auto start = std::chrono::high_resolution_clock::now ();
175- auto results = index.search (queries[i ], config.k , ef);
176+ auto results = index.search (queries[static_cast < size_t >(i) ], config.k , ef);
176177 auto end = std::chrono::high_resolution_clock::now ();
177178
178179 auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
179- latencies.push_back (duration.count () / 1000.0 ); // Convert to ms
180+ latencies.push_back (static_cast < double >( duration.count () ) / 1000.0 ); // Convert to ms
180181
181182 // Compute recall for first 100 queries
182183 if (i < std::min (100 , config.Q )) {
183184 std::vector<int > result_ids;
184185 for (const auto & r : results) {
185186 result_ids.push_back (r.id );
186187 }
187- float recall = compute_recall (ground_truth[i], result_ids, config.k );
188+ float recall =
189+ compute_recall (ground_truth[static_cast <size_t >(i)], result_ids, config.k );
188190 recalls.push_back (recall);
189191 }
190192 }
191193
192194 auto percentiles = compute_percentiles (latencies, {0.5 , 0.95 , 0.99 });
193195 float avg_recall = recalls.empty () ? 0 .0f
194196 : std::accumulate (recalls.begin (), recalls.end (), 0 .0f ) /
195- recalls.size ();
197+ static_cast < float >( recalls.size () );
196198
197- double avg_latency_s =
198- std::accumulate (latencies. begin (), latencies. end (), 0.0 ) / ( latencies.size () * 1000.0 );
199+ double avg_latency_s = std::accumulate (latencies. begin (), latencies. end (), 0.0 ) /
200+ ( static_cast < double >( latencies.size () ) * 1000.0 );
199201 double qps = 1.0 / avg_latency_s;
200202
201203 std::cout << ef << " ," << percentiles[0 ] << " ," << percentiles[1 ] << " ," << percentiles[2 ]
0 commit comments