Skip to content

Commit 3c23255

Browse files
lemirejaja360
authored andcommitted
saving.
1 parent 5cd72c6 commit 3c23255

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

benchmarks/benchmark.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,14 @@ void describe(const std::variant<std::vector<TestCase<float>>, std::vector<TestC
168168
std::vector<std::string> shortest(lines.size());
169169
std::vector<size_t> min_digits(lines.size(), std::numeric_limits<size_t>::max());
170170
std::vector<std::string> min_digits_str(lines.size());
171-
std::vector<std::tuple<std::string, size_t, double, bool>> results;
171+
std::vector<std::tuple<std::string, size_t, double, size_t, double, bool>> results;
172172
size_t min_size = std::numeric_limits<size_t>::max();
173173
for (const auto &algo : args) {
174174
if (!algo.used) continue;
175175
if (algo_filtered_out(algo.name, algo_filter)) continue;
176176
size_t total_size = 0;
177+
size_t total_digits = 0;
178+
177179
std::vector<char> buffer(100);
178180
std::span<char> bufspan(buffer);
179181
bool precise = true;
@@ -191,6 +193,7 @@ void describe(const std::variant<std::vector<TestCase<float>>, std::vector<TestC
191193
min_digits_str[i].assign(bufspan.data(), len);
192194
}
193195
total_size += len;
196+
total_digits += digits;
194197
std::string_view sv(buffer.data(), len);
195198
auto parsed = parse_float<T>(sv);
196199
if (!parsed.has_value() || parsed.value() != d.value) {
@@ -199,7 +202,9 @@ void describe(const std::variant<std::vector<TestCase<float>>, std::vector<TestC
199202
}
200203
}
201204
double avg = total_size / double(lines.size());
202-
results.emplace_back(algo.name, total_size, avg, precise);
205+
double avg_digits = total_digits / double(lines.size());
206+
207+
results.emplace_back(algo.name, total_size, avg, total_digits, avg_digits, precise);
203208
if (precise && total_size < min_size) min_size = total_size;
204209
}
205210
std::map<std::string, std::tuple<bool, bool>> algo_results;
@@ -265,10 +270,10 @@ void describe(const std::variant<std::vector<TestCase<float>>, std::vector<TestC
265270
algo_results[algo.name] = std::make_tuple(howmany == 0, howmany_digits == 0);
266271

267272
}
268-
for (const auto &[name, total_size, avg, precise] : results) {
273+
for (const auto &[name, total_size, avg, total_digits, avg_digits, precise] : results) {
269274
auto [is_shortest, is_min_digits_algo] = algo_results[name];
270-
fmt::print("{:<18} {:>12} ({:>5.3f} chars/f) {:<18} {:<12} {:<15}\n",
271-
name, total_size, avg,
275+
fmt::print("{:<18} {:>12} ({:>5.3f} chars/f) {:>12} ({:>5.3f} d/f) {:<18} {:<12} {:<15}\n",
276+
name, total_size, avg, total_digits, avg_digits,
272277
is_shortest ? "[minimal string]" : "[non minimal]",
273278
precise ? "[precise]" : "[imprecise]",
274279
is_min_digits_algo ? "[min digits]" : "[non min digits]");

0 commit comments

Comments
 (0)