diff --git a/common/common.cpp b/common/common.cpp index ec6fc277f..16ef4d7f7 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -1854,15 +1854,14 @@ void dump_kv_cache_view_seqs(const llama_kv_cache_view & view, int row_size) { } void llama_embd_normalize(const float * inp, float * out, int n) { - float norm = 0; + double sum = 0.0; for (int i = 0; i < n; i++) { - norm += inp[i] * inp[i]; + sum += inp[i] * inp[i]; } - norm = sqrt(norm); - if (norm == 0) { - return; - } - norm = 1.0 / norm; + sum = sqrt(sum); + + const float norm = sum > 0.0 ? 1.0f / sum : 0.0f; + for (int i = 0; i < n; i++) { out[i] = inp[i] * norm; }