LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
sn_has_product_form_not_het_fcfs.m
1%{ @file sn_has_product_form_not_het_fcfs.m
2 % @brief Checks for product-form excluding heterogeneous FCFS
3 %
4 % @author LINE Development Team
5%}
6
7%{
8 % @brief Checks for product-form excluding heterogeneous FCFS
9 %
10 % @details
11 % Returns true if the network has product-form solution excluding cases with heterogeneous FCFS.
12 %
13 % @par Syntax:
14 % @code
15 % bool = sn_has_product_form_not_het_fcfs(sn)
16 % @endcode
17 %
18 % @par Parameters:
19 % <table>
20 % <tr><th>Name<th>Description
21 % <tr><td>sn<td>Network structure
22 % </table>
23 %
24 % @par Returns:
25 % <table>
26 % <tr><th>Name<th>Description
27 % <tr><td>bool<td>True if product-form holds without heterogeneous FCFS
28 % </table>
29%}
30function bool = sn_has_product_form_not_het_fcfs(sn)
31
32bool = all(sn.sched==SchedStrategy.INF | sn.sched==SchedStrategy.PS | sn.sched==SchedStrategy.FCFS | sn.sched==SchedStrategy.LCFSPR | sn.sched==SchedStrategy.EXT);
33bool = bool & ~sn_has_priorities(sn);
34bool = bool & ~sn_has_fork_join(sn);
35bool = bool & ~sn_has_sd_routing(sn);
36iset = find(sn.sched == SchedStrategy.FCFS);
37for i=iset(:)'
38 icset = isfinite(sn.scv(i,:)) & sn.scv(i,:)>0;
39 bool = bool & all(sn.scv(i,icset) > 1-GlobalConstants.FineTol) & all(sn.scv(i,icset) < 1+GlobalConstants.FineTol);
40end
41end