1function [alpha, A] = FluFluSTD (Qin, Rin, Qout, Rout, srv0stop, transToPH)
3 if ~exist(
'transToPH',
'var')
7 % solve special fluid queue
9 Iout = eye(size(Qout));
11 Rh = kron(Rin,Iout) - kron(Iin,Rout);
12 Qh = kron(Qin, Rout) + kron(Rin, Qout);
13 [massh, inih, Kh, cloh] = GeneralFluidSolve (Qh, Rh);
15 % sojourn time density in case of
16 % srv0stop = false: inih*expm(Kh*x)*cloh*kron(Rin,Iout)/lambda
17 % srv0stop = true: inih*expm(Kh*x)*cloh*kron(Rin,Rout)/lambda/mu
19 lambda = sum(CTMCSolve(Qin)*Rin);
20 mu = sum(CTMCSolve(Qout)*Rout);
23 % convert result to PH representation
24 Delta = diag(linsolve(Kh',-inih')); % Delta = diag (inih*inv(-Kh));
25 A = inv(Delta)*Kh'*Delta;
27 alpha = sum(Delta*cloh*kron(Rin,Iout)/lambda,2)';
29 alpha = sum(Delta*cloh*kron(Rin,Rout)/lambda/mu,2)';
32 % convert result to ME representation
34 B = TransformToOnes(sum(cloh*kron(Rin,Iout)/lambda,2));
36 B = TransformToOnes(sum(cloh*kron(Rin,Rout)/lambda/mu,2));
40 alpha = inih*inv(-Kh)*iB;