From 0e3673991502ad3c998e78e2e15ae4369f4e0836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Thu, 13 Jun 2024 01:02:22 +0200 Subject: [PATCH] save partial imatrix --- examples/imatrix/imatrix.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/imatrix/imatrix.cpp b/examples/imatrix/imatrix.cpp index 574f5ed9c..2e8437328 100644 --- a/examples/imatrix/imatrix.cpp +++ b/examples/imatrix/imatrix.cpp @@ -250,8 +250,7 @@ void IMatrixCollector::save_imatrix(int ncall) const { } if (n_zeros > 0) { - fprintf(stderr, "%s: entry '%40s' has partial data (%.2f%%) - skipping\n", __func__, kv.first.c_str(), 100.0f * (n_all - n_zeros) / n_all); - continue; + fprintf(stderr, "%s: entry '%40s' has partial data (%.2f%%)\n", __func__, kv.first.c_str(), 100.0f * (n_all - n_zeros) / n_all); } n_entries++; @@ -275,7 +274,7 @@ void IMatrixCollector::save_imatrix(int ncall) const { if (nval > 0) { std::vector tmp(nval); for (int i = 0; i < nval; i++) { - tmp[i] = (stat.values[i] / static_cast(stat.counts[i])) * static_cast(stat.ncall); + tmp[i] = stat.counts[i] ? (stat.values[i] / static_cast(stat.counts[i])) * static_cast(stat.ncall) : 0.0f; } out.write((const char*)tmp.data(), nval*sizeof(float)); }