[babl] babl: make unified alpha conversion branchless



commit 73df0c4d338f8dae7fe7ecb966307fd88065179b
Author: Øyvind Kolås <pippin gimp org>
Date:   Wed Jan 26 12:23:37 2022 +0100

    babl: make unified alpha conversion branchless

 babl/base/util.h | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)
---
diff --git a/babl/base/util.h b/babl/base/util.h
index aba9c61f3..9f4621151 100644
--- a/babl/base/util.h
+++ b/babl/base/util.h
@@ -50,23 +50,17 @@
 static inline double
 babl_epsilon_for_zero (double value)
 {
- if (value <=  BABL_ALPHA_FLOOR &&
-     value >= -BABL_ALPHA_FLOOR)
- {
-   return BABL_ALPHA_FLOOR;
- }
- return value;
+   return value * (value >  BABL_ALPHA_FLOOR || value < -BABL_ALPHA_FLOOR) +
+          BABL_ALPHA_FLOOR * (value <=  BABL_ALPHA_FLOOR &&
+                              value >= -BABL_ALPHA_FLOOR);
 }
 
 static inline float
 babl_epsilon_for_zero_float (float value)
 {
- if (value <= BABL_ALPHA_FLOOR_F &&
-     value >= -BABL_ALPHA_FLOOR_F)
- {
-   return BABL_ALPHA_FLOOR_F;
- }
- return value;
+   return value * (value >  BABL_ALPHA_FLOOR_F || value < -BABL_ALPHA_FLOOR_F) +
+          BABL_ALPHA_FLOOR * (value <=  BABL_ALPHA_FLOOR_F &&
+                              value >= -BABL_ALPHA_FLOOR_F);
 }
 
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]