From e8d2de0bf135d48e043f874ef72e1cd34b0f699f Mon Sep 17 00:00:00 2001
From: Patrick Godwin <patrick.godwin@ligo.org>
Date: Sun, 26 Aug 2018 09:36:54 -0700
Subject: [PATCH] gstlal_peakfinder.c: save result of abs value of SNR in
 gstlal_peak_max_over_channels() to avoid repeated evaluation

---
 gstlal/lib/gstlal/gstlal_peakfinder.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/gstlal/lib/gstlal/gstlal_peakfinder.c b/gstlal/lib/gstlal/gstlal_peakfinder.c
index 477493e196..2411ee20c7 100644
--- a/gstlal/lib/gstlal/gstlal_peakfinder.c
+++ b/gstlal/lib/gstlal/gstlal_peakfinder.c
@@ -208,12 +208,14 @@ int gstlal_peak_max_over_channels(struct gstlal_peak_state *state)
 		case GSTLAL_PEAK_FLOAT:
 		{
 			float max_val = 0;
+			float current_val = 0;
 			/* Type casting unsigned int (guint) to int */
 			for(i = 0; i < (int)state->channels; i++)
 			{
-				if(fabsf(state->values.as_float[i]) > max_val)
+				current_val = fabsf(state->values.as_float[i]);
+				if(current_val > max_val)
 				{
-					max_val = fabsf(state->values.as_float[i]);
+					max_val = current_val;
 					out = i;
 				}
 			}
@@ -223,12 +225,14 @@ int gstlal_peak_max_over_channels(struct gstlal_peak_state *state)
 		case GSTLAL_PEAK_DOUBLE:
 		{
 			double max_val = 0;
+			double current_val = 0;
 			/* Type casting unsigned int (guint) to int */
 			for(i = 0; i < (int)state->channels; i++)
 			{
-				if(fabs(state->values.as_double[i]) > max_val)
+				current_val = fabsf(state->values.as_double[i]);
+				if(current_val > max_val)
 				{
-					max_val = fabs(state->values.as_double[i]);
+					max_val = current_val;
 					out = i;
 				}
 			}
@@ -238,12 +242,14 @@ int gstlal_peak_max_over_channels(struct gstlal_peak_state *state)
 		case GSTLAL_PEAK_COMPLEX:
 		{
 			float max_val = 0;
+			float current_val = 0;
 			/* Type casting unsigned int (guint) to int */
 			for(i = 0; i < (int)state->channels; i++)
 			{
-				if(cabsf(state->values.as_float_complex[i]) > max_val)
+				current_val = cabsf(state->values.as_float_complex[i]);
+				if(current_val > max_val)
 				{
-					max_val = cabsf(state->values.as_float_complex[i]);
+					max_val = current_val;
 					out = i;
 				}
 			}
@@ -253,12 +259,14 @@ int gstlal_peak_max_over_channels(struct gstlal_peak_state *state)
 		case GSTLAL_PEAK_DOUBLE_COMPLEX:
 		{
 			double max_val = 0;
+			double current_val = 0;
 			/* Type casting unsigned int (guint) to int */
 			for(i = 0; i < (int)state->channels; i++)
 			{
-				if(cabs(state->values.as_double_complex[i]) > max_val)
+				current_val = cabsf(state->values.as_double_complex[i]);
+				if(current_val > max_val)
 				{
-					max_val = cabs(state->values.as_double_complex[i]);
+					max_val = current_val;
 					out = i;
 				}
 			}
-- 
GitLab