ref: 8b2ec5760776ef44ca772c3f25a46cc417bfb217
parent: 32f66877d438744c08476c1e7d04623cb5cffcea
author: Siarhei Volkau <lis8215@gmail.com>
date: Tue Sep 2 18:54:46 EDT 2025
prevent double precision multiplication for RES2FLOAT and INT24TORES Due to incorrect constant definition compiler performs conversion with double precision which, I think, is unnecessary here. Signed-off-by: Siarhei Volkau <lis8215@gmail.com> Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
--- a/celt/arch.h
+++ b/celt/arch.h
@@ -152,7 +152,7 @@
#define SIG2RES(a) PSHR32(a, SIG_SHIFT-RES_SHIFT)
#define RES2INT16(a) SAT16(PSHR32(a, RES_SHIFT))
#define RES2INT24(a) (a)
-#define RES2FLOAT(a) ((1.f/32768.f/256.)*(a))
+#define RES2FLOAT(a) ((1.f/32768.f/256.f)*(a))
#define INT16TORES(a) SHL32(EXTEND32(a), RES_SHIFT)
#define INT24TORES(a) (a)
#define ADD_RES(a, b) ADD32(a, b)
@@ -374,7 +374,7 @@
#define RES2INT24(a) float2int(32768.f*256.f*(a))
#define RES2FLOAT(a) (a)
#define INT16TORES(a) ((a)*(1/CELT_SIG_SCALE))
-#define INT24TORES(a) ((1.f/32768.f/256.)*(a))
+#define INT24TORES(a) ((1.f/32768.f/256.f)*(a))
#define ADD_RES(a, b) ADD32(a, b)
#define FLOAT2RES(a) (a)
#define RES2SIG(a) (CELT_SIG_SCALE*(a))
--
⑨