aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca
diff options
context:
space:
mode:
authorJ08nY2024-01-31 14:04:13 +0100
committerJ08nY2024-01-31 14:04:13 +0100
commit5ecdcd1f6e3cfdab4780e1127a1f20ada032d891 (patch)
tree7a03db2b890ce5c4ed5f3aa9fac2a6a1c89e576a /pyecsca
parentc72a864e71806cba5bc5f71a6bad084574897cd1 (diff)
downloadpyecsca-5ecdcd1f6e3cfdab4780e1127a1f20ada032d891.tar.gz
pyecsca-5ecdcd1f6e3cfdab4780e1127a1f20ada032d891.tar.zst
pyecsca-5ecdcd1f6e3cfdab4780e1127a1f20ada032d891.zip
Add Dmap description method.
Diffstat (limited to 'pyecsca')
-rw-r--r--pyecsca/sca/re/tree.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/pyecsca/sca/re/tree.py b/pyecsca/sca/re/tree.py
index f19efac..2ae7945 100644
--- a/pyecsca/sca/re/tree.py
+++ b/pyecsca/sca/re/tree.py
@@ -192,6 +192,17 @@ class Map:
# Finally, adjust the codomain
self.codomain.update(other.codomain)
+ def describe(self) -> str:
+ return "\n".join(
+ (
+ "Total configs: {len(self.cfg_map)}, ({self.cfg_map.memory_usage(index=True).sum():_} bytes)",
+ "Rows: {len(self.mapping)}, ({self.mapping.memory_usage(index=True).sum():_} bytes)",
+ "Inputs: {len(self.domain)}",
+ "Codomain: {len(self.codomain)}",
+ "None in codomain: {None in self.codomain}"
+ )
+ )
+
@public
class Node(NodeMixin):
@@ -278,8 +289,8 @@ class Tree:
f"Size: {self.size}",
f"Leaves: {len(leaf_sizes)}",
f"Leaf sizes: {sorted(leaf_sizes)}",
- f"Average leaf size: {np.mean(leaf_sizes):.3}",
- f"Mean result size: {np.mean(leafs):.3}",
+ f"Average leaf size: {np.mean(leaf_sizes):.3f}",
+ f"Mean result size: {np.mean(leafs):.3f}",
)
)