1% @brief MATLAB Coder script to generate MEX functions
for qsys_
module.
3% This script generates MEX (MATLAB Executable) versions of qsys_ functions
4% for improved performance. All functions in this module are pure numerical
5% computations (scalar or vector input/output).
7% See also CODER, CODER.CONFIG, CODER.TYPEOF, CODEGEN.
9%% Create configuration object of class 'coder.CodeConfig'.
10cfg = coder.config('mex','ecoder',false);
11cfg.GenerateReport =
false;
12cfg.ReportPotentialDifferences =
false;
13cfg.GenCodeOnly =
false;
16scal_type = coder.typeof(0);
17vec_type = coder.typeof(0,[1 Inf],[0 1]);
19%% ===== Group: Simple 2-scalar functions =====
21% qsys_mm1(lambda, mu) -> [W, rho]
22codegen -config cfg qsys_mm1 -args {scal_type, scal_type}
24% qsys_gm1(sigma, mu) -> W
25codegen -config cfg qsys_gm1 -args {scal_type, scal_type}
27%% ===== Group: 3-scalar functions =====
29% qsys_mmk(lambda, mu, k) -> [W, rho]
30codegen -config cfg qsys_mmk -args {scal_type, scal_type, scal_type}
32% qsys_mg1(lambda, mu, cs) -> [W, rhohat]
33codegen -config cfg qsys_mg1 -args {scal_type, scal_type, scal_type}
35% qsys_mm1k_loss(lambda, mu, K) -> [lossprob, rho]
36codegen -config cfg qsys_mm1k_loss -args {scal_type, scal_type, scal_type}
38%% ===== Group: 4-scalar functions =====
40% qsys_gg1(lambda, mu, ca2, cs2) -> [W, rhohat]
41codegen -config cfg qsys_gg1 -args {scal_type, scal_type, scal_type, scal_type}
43% qsys_mg1k_loss_mgs(lambda, mu, mu_scv, K) -> [lossprob, rho]
44codegen -config cfg qsys_mg1k_loss_mgs -args {scal_type, scal_type, scal_type, scal_type}
46%% ===== Group: GI/G/1 approximations (4 scalars) =====
47ARGS_GIG1 = {scal_type, scal_type, scal_type, scal_type};
49codegen -config cfg qsys_gig1_lbnd -args ARGS_GIG1
50codegen -config cfg qsys_gig1_ubnd_kingman -args ARGS_GIG1
51codegen -config cfg qsys_gig1_approx_allencunneen -args ARGS_GIG1
52codegen -config cfg qsys_gig1_approx_klb -args ARGS_GIG1
53codegen -config cfg qsys_gig1_approx_kobayashi -args ARGS_GIG1
54codegen -config cfg qsys_gig1_approx_marchal -args ARGS_GIG1
55codegen -config cfg qsys_gig1_approx_heyman -args ARGS_GIG1
56codegen -config cfg qsys_gig1_approx_kimura -args ARGS_GIG1
57codegen -config cfg qsys_gig1_approx_gelenbe -args ARGS_GIG1
59%% ===== Group: GI/G/1 Myskja (6 scalars) =====
61% qsys_gig1_approx_myskja(lambda, mu, ca, cs, q0, qa) -> W
62codegen -config cfg qsys_gig1_approx_myskja -args {scal_type, scal_type, scal_type, scal_type, scal_type, scal_type}
64% qsys_gig1_approx_myskja2(lambda, mu, ca, cs, q0, qa) -> W
65codegen -config cfg qsys_gig1_approx_myskja2 -args {scal_type, scal_type, scal_type, scal_type, scal_type, scal_type}
67%% ===== Group: GI/G/k approximations (5 scalars) =====
68ARGS_GIGK = {scal_type, scal_type, scal_type, scal_type, scal_type};
70codegen -config cfg qsys_gigk_approx -args ARGS_GIGK
71codegen -config cfg qsys_gigk_approx_kingman -args ARGS_GIGK
72codegen -config cfg qsys_gigk_approx_whitt -args ARGS_GIGK
73codegen -config cfg qsys_gigk_approx_cosmetatos -args ARGS_GIGK
75%% ===== Group: M/G/1 scheduling disciplines (vector args) =====
76ARGS_MG1_SCHED = {vec_type, vec_type, vec_type};
78% qsys_mg1_prio(lambda, mu, cs) -> [W, rho]
79codegen -config cfg qsys_mg1_prio -args ARGS_MG1_SCHED
81% qsys_mg1_fb(lambda, mu, cs) -> [W, rho_total]
82codegen -config cfg qsys_mg1_fb -args ARGS_MG1_SCHED
84% qsys_mg1_lrpt(lambda, mu, cs) -> [W, rho_total]
85codegen -config cfg qsys_mg1_lrpt -args ARGS_MG1_SCHED
87% qsys_mg1_psjf(lambda, mu, cs) -> [W, rho_total]
88codegen -config cfg qsys_mg1_psjf -args ARGS_MG1_SCHED
90% qsys_mg1_setf(lambda, mu, cs) -> [W, rho_total]
91codegen -config cfg qsys_mg1_setf -args ARGS_MG1_SCHED
93% qsys_mg1_srpt(lambda, mu, cs) -> [W, rho_total]
94codegen -config cfg qsys_mg1_srpt -args ARGS_MG1_SCHED