From 0ff6e477d3d2c48e14ebebc0ba8224c96d19a97f Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 29 Mar 2012 10:29:28 -0400
Subject: [PATCH] Fix a parenthization bug in complex expression generation.

---
 loopy/codegen/expression.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/loopy/codegen/expression.py b/loopy/codegen/expression.py
index ea0cd4958..c15d923eb 100644
--- a/loopy/codegen/expression.py
+++ b/loopy/codegen/expression.py
@@ -282,7 +282,12 @@ class LoopyCCodeMapper(CCodeMapper):
             from pymbolic.mapper.stringifier import PREC_PRODUCT
             real_prd = self.join_rec("*", reals, PREC_PRODUCT)
 
-            complex_prd = self.rec(complexes[0], PREC_NONE)
+            if len(complexes) == 1:
+                myprec = PREC_PRODUCT
+            else:
+                myprec = PREC_NONE
+
+            complex_prd = self.rec(complexes[0], myprec)
             for child in complexes[1:]:
                 complex_prd = "%s_mul(%s, %s)" % (
                         tgt_name, complex_prd,
-- 
GitLab