diff --git a/src/finn/core/datatype.py b/src/finn/core/datatype.py index b1e4dbecaa2a3b3ae7417374a2ac206816d91d35..4c284b1cbfe472ba4d3d7d2640b692545464e80a 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."""