Skip to content
Snippets Groups Projects

Added type argument to print_slacks_type and added tie-breaker for sort-y-times

Merged Simon Bjurek requested to merge print-slacks-type into master
2 files
+ 34
2
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 12
2
@@ -410,7 +410,7 @@ class Schedule:
raise ValueError(f"No operation with graph_id {graph_id!r} in schedule")
return self.backward_slack(graph_id), self.forward_slack(graph_id)
def print_slacks(self, order: int = 0) -> None:
def print_slacks(self, order: int = 0, type_name: TypeName | None = None) -> None:
"""
Print the slack times for all operations in the schedule.
@@ -422,14 +422,24 @@ class Schedule:
* 0: alphabetical on Graph ID
* 1: backward slack
* 2: forward slack
type_name : TypeName, optional
If given, only the slack times for operations of this type will be printed.
"""
if type_name is None:
operations = self._sfg.operations
else:
operations = [
op for op in self._sfg.operations if isinstance(op, type_name)
]
res: list[tuple[GraphID, int, int]] = [
(
op.graph_id,
cast(int, self.backward_slack(op.graph_id)),
self.forward_slack(op.graph_id),
)
for op in self._sfg.operations
for op in operations
]
res.sort(key=lambda tup: tup[order])
res_str = [
Loading