From e1f2d33702a2e4ff157bc2cd7adff6b631838cf5 Mon Sep 17 00:00:00 2001
From: Yaman Umuroglu <maltanar@gmail.com>
Date: Tue, 3 Dec 2019 21:35:56 +0000
Subject: [PATCH] [DataType] add get_num_possible_values

---
 src/finn/core/datatype.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/finn/core/datatype.py b/src/finn/core/datatype.py
index b1e4dbeca..4c284b1cb 100644
--- a/src/finn/core/datatype.py
+++ b/src/finn/core/datatype.py
@@ -121,6 +121,17 @@ class DataType(Enum):
         else:
             raise Exception("Unrecognized data type: %s" % self.name)
 
+    def get_num_possible_values(self):
+        """Return the number of possible values this DataType can take. Only
+        implemented for integer types for now."""
+        assert self.is_integer()
+        if "INT" in self.name:
+            return abs(self.min()) + abs(self.max()) + 1
+        elif self.name == "BINARY" or self.name == "BIPOLAR":
+            return 2
+        elif self.name == "TERNARY":
+            return 3
+
     def get_smallest_possible(value):
         """Return smallest (fewest bits) possible DataType that can represent
       value. Prefers unsigned integers where possible."""
-- 
GitLab