From ca21993139c44dd0d6f6ef9f3edb21e62f7740c6 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Wed, 21 Nov 2018 16:11:01 +0100
Subject: [PATCH] Implement operation counting for special loopy functions by
 delegating

Using the same concept we use for visiting with hasattr.
---
 python/dune/codegen/sumfact/vectorization.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/python/dune/codegen/sumfact/vectorization.py b/python/dune/codegen/sumfact/vectorization.py
index 2ac0ffb5..38996a90 100644
--- a/python/dune/codegen/sumfact/vectorization.py
+++ b/python/dune/codegen/sumfact/vectorization.py
@@ -144,6 +144,12 @@ class PrimitiveApproximateOpcounter(FlopCounter):
     def map_tagged_variable(self, expr):
         return self.map_variable(expr)
 
+    def map_loopy_function_identifier(self, expr):
+        if hasattr(expr, "operations"):
+            return expr.operations()
+
+        raise NotImplementedError("The class {} should implement a symbolic flopcounter.".format(type(expr)))
+
 
 @kernel_cached
 def store_operation_count(expr, count):
-- 
GitLab