1function [Pnir,runtime,fname] = solver_ctmc_joint(sn, options)
2% [PNIR,RUNTIME,FNAME] = SOLVER_CTMC_JOINT(QN, OPTIONS)
4% Copyright (c) 2012-2026, Imperial College London
7M = sn.nstations; %number of stations
8K = sn.nclasses; %number of
classes
12[Q,SS,~,~,~,~,sn] = solver_ctmc(sn, options);
15 save([fname,
'.mat'],
'Q',
'SS')
16 line_printf('\nCTMC generator and state space saved in: ');
17 line_printf([fname, '.mat'])
19pi = ctmc_solve_reducible(Q);
20pi(pi<GlobalConstants.Zero)=0;
26 isf = sn.nodeToStateful(i);
27 state_i = [zeros(1,size(sn.space{isf},2)-length(state{isf})),state{isf}];
28 statevec = [statevec, state_i];
31Pnir = pi(findrows(SS, statevec));
36% line_printf(
'CTMC analysis completed. Runtime: %f seconds.\n',runtime);