“…Although a binary search has a lower theoretical complexity than a linear search, a binary search method for optimal retiming tends to test more than one potential optIP that is not feasible, while a linear search method, searching potential optIPs decreasingly, only tests one potential optIP that is not feasible. So, in line with the approach in [15], we use a linear search to find the optimal retiming, called sdfOPT, shown in Algorithm 4. run Algorithm sdfFEAS(G r , optIP − 1) to determine whether a feasible retiming exists 7: if a feasible retiming r ′ exists then 8: G r = r ′ (G r ); 9: r+ = r ′ ; 10: get IP of G r from sdfIP(G r ); 11: optIP = IP 12: else 13: return r 14: end if 15: end while 16: return r Since initIP is a feasible IP, sdfOPT begins with dip = initIP − 1, using sdfFEAS to check whether a feasible retiming exists for G with this dip. If so, it stores this retiming and computes the new IP of the retimed graph.…”