1function [QN,UN,RN,TN,CN,XN,totiter] = solver_mam_basic_mmap(sn, options)
2% [QN,UN,RN,TN,CN,XN,TOTITER] = SOLVER_MAM_BASIC_MMAP(SN, OPTIONS)
4% Top-level dispatcher
for the MAM/
MMAP fork-join decomposition.
5% Open networks call solver_mam_basic_mmap_inner directly with arrival
6% rates derived from the source/refstat. Closed networks go through
7% solver_mam_basic_mmap_closed, which wraps the inner kernel in an
8% MNA-style bisection on per-
class throughput.
10% Copyright (c) 2012-2026, Imperial College London
13if sn_is_open_model(sn)
18 inchain = sn.inchain{c};
19 lambdas_inchain = sn.rates(sn.refstat(inchain(1)), inchain);
20 lambdas_inchain = lambdas_inchain(isfinite(lambdas_inchain));
21 lambda(inchain) = sum(lambdas_inchain);
23 [QN,UN,RN,TN,CN,XN,totiter] = solver_mam_basic_mmap_inner(sn, options, lambda);
25 [QN,UN,RN,TN,CN,XN,totiter] = solver_mam_basic_mmap_closed(sn, options);