LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
nc_is_pas_model.m
1function ispas = nc_is_pas_model(sn)
2% ISPAS = NC_IS_PAS_MODEL(SN)
3%
4% True when the model is a closed two-station pass-and-swap (P&S) tandem: both
5% stations are OI/PAS (SchedStrategy.OI or SchedStrategy.PAS) and there is no
6% other station. The swap graph may be empty, since an order-independent (OI)
7% queue is exactly the P&S specialization with an empty/zero swap graph: the
8% importance-sampling analyzer SOLVER_NC_PAS_IS_ANALYZER covers both, as
9% PFQN_PAS_IS with H=0 samples all microstates and reduces to PFQN_OI_IS.
10%
11% Used to bind the importance-sampling selectors ('is', and 'sampling' which
12% maps to 'is' in the presence of OI/PAS stations). Note that a P&S tandem with
13% a NON-EMPTY swap graph is reducible (Comte & Dorsman, 2021) and lies outside
14% the exact path of NC_IS_OI_MODEL / SOLVER_NC_OI_ANALYZER, so it also takes
15% this analyzer on 'default'; a pure-OI tandem on 'default'/'exact' is caught
16% earlier by the exact OI analyzer.
17%
18% Copyright (c) 2012-2026, Imperial College London
19% All rights reserved.
20ispas = false;
21if any(isinf(sn.njobs))
22 return
23end
24if sn.nstations ~= 2
25 return
26end
27for ist = 1:sn.nstations
28 if sn.sched(ist) ~= SchedStrategy.PAS && sn.sched(ist) ~= SchedStrategy.OI
29 return
30 end
31 ind = sn.stationToNode(ist);
32 if ind < 1 || ind > numel(sn.nodeparam) || ~isstruct(sn.nodeparam{ind})
33 return
34 end
35 if isempty(sn.nodeparam{ind}.svcRateFun)
36 return % no OI rank-rate function: cannot evaluate the balance function
37 end
38end
39ispas = true;
40end
Definition Station.m:245