From 88c9cde6a78877d815bbed31388ed23379f51325 Mon Sep 17 00:00:00 2001 From: Mathias Louboutin Date: Thu, 29 May 2025 14:24:00 -0400 Subject: [PATCH] Fix mulfac corner case --- CvxCompress.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CvxCompress.cpp b/CvxCompress.cpp index fe7895d..56b6fbe 100644 --- a/CvxCompress.cpp +++ b/CvxCompress.cpp @@ -289,6 +289,9 @@ float CvxCompress::Compress( compressed[5] = bz; float glob_mulfac = global_rms != 0.0f ? 1.0f / (global_rms * scale) : 1.0f; + // Some combinations of scale and global_rms lead to Inf when global_rms is very small + // breaking decompression. + glob_mulfac = !isfinite(glob_mulfac) ? 1.0f : glob_mulfac; compressed[6] = *((unsigned int*)&glob_mulfac); // printf("nx=%d, ny=%d, nz=%d, bx=%d, by=%d, bz=%d, mulfac=%e\n",nx,ny,nz,bx,by,bz,glob_mulfac);