LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
npfqn_traffic_merge.m
1function SMMAP = npfqn_traffic_merge(MMAP, config)
2%Given a cell array of n MMAPs with arrivals of R classes, produces a new
3%MMAP after flow merging
4empty = cellfun(@isempty, MMAP);
5MMAP(empty)=[];
6n = length(MMAP);
7
8if nargin<2%~exist('config','var')
9 config = struct('merge','default');
10end
11
12if n == 1
13 SMMAP = MMAP{1};
14 return;
15else
16 switch config.merge
17 case {'default','super'}
18 SMMAP = MMAP{1};
19 for j=2:n
20 if ~isempty(MMAP{j})
21 SMMAP = mmap_super(SMMAP, MMAP{j},'match');
22 end
23 end
24 case 'mixture'
25 SMMAP = MMAP{1};
26 for j=2:n
27 if ~isempty(MMAP{j})
28 SMMAP = mmap_super(SMMAP, MMAP{j},'match');
29 if mmap_isfeasible(SMMAP)
30 SMMAP = mmap_mixture_fit_mmap(SMMAP);
31 end
32 end
33 end
34 case 'interpos'
35 FLOW = {};
36 for j=1:n
37 if ~isempty(MMAP{j})
38 FLOW{end+1} = m3pp2m_fitc_theoretical(MMAP{j}, 'exact_delta', 1, 1e6);
39 end
40 end
41 SMMAP = m3pp2m_interleave(FLOW);
42 otherwise
43 line_error(mfilename,'Unsupported configuration for merge.');
44 end
45
46 switch config.compress
47 case 'none'
48 % do nothing
49 case 'default'
50 SMMAP = mmap_compress(SMMAP);
51 end
52end
53SMMAP = mmap_normalize(SMMAP);
54end