-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLeft_Edge.tcl
More file actions
24 lines (23 loc) · 860 Bytes
/
Left_Edge.tcl
File metadata and controls
24 lines (23 loc) · 860 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#schedule_list {name ST res_id}
#resources_list {res_id delay}
proc left_edge { schedule_list resources_list } {
set output_list [list]
foreach res $resources_list {
set res_nodes_list [lsearch -index 2 -inline -all -exact $schedule_list [lindex $res 0]]
set delay [lindex $res 1]
set c 0
while { [llength $res_nodes_list] != 0 } {
set r 0
incr c
foreach node $res_nodes_list {
if { [lindex $node 1] > $r } {
set r [expr { [lindex $node 1] + $delay - 1 } ]
set index [lsearch $res_nodes_list $node]
set res_nodes_list [lreplace $res_nodes_list $index $index]
}
}
}
lappend output_list "[lindex $res 0] $c"
}
return $output_list
}