From 940ecb522a11700c5a9a949c4149457956521c0d Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 23:43:20 +0000 Subject: [PATCH] Refactor IEEE 80-bit float conversion using std::ldexp Replaced the manual custom exponent arithmetic (`std::pow` and division) used to construct the final double in `ChunkDemuxer::ieee80ToDouble` with the standard library function `std::ldexp`. This improves readability, guarantees correct platform-independent behavior without intermediate rounding issues, and simplifies the codebase. Co-authored-by: segin <480709+segin@users.noreply.github.com> --- src/demuxer/ChunkDemuxer.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/demuxer/ChunkDemuxer.cpp b/src/demuxer/ChunkDemuxer.cpp index 3906527b..bacd8fda 100644 --- a/src/demuxer/ChunkDemuxer.cpp +++ b/src/demuxer/ChunkDemuxer.cpp @@ -626,8 +626,7 @@ double ChunkDemuxer::ieee80ToDouble(const uint8_t ieee80[10]) const { } // Convert to double - double result = static_cast(mantissa) / (1ULL << 63); - result *= std::pow(2.0, static_cast(exponent) - 16383); + double result = std::ldexp(static_cast(mantissa), exponent - 16383 - 63); return sign ? -result : result; }