LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
mexify.m
1% @brief MATLAB Coder script to generate MEX functions for qsys_ module.
2%
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).
6%
7% See also CODER, CODER.CONFIG, CODER.TYPEOF, CODEGEN.
8
9%% Create configuration object of class 'coder.CodeConfig'.
10cfg = coder.config('mex','ecoder',false);
11cfg.GenerateReport = false;
12cfg.ReportPotentialDifferences = false;
13cfg.GenCodeOnly = false;
14
15%% Define common types
16scal_type = coder.typeof(0);
17vec_type = coder.typeof(0,[1 Inf],[0 1]);
18
19%% ===== Group: Simple 2-scalar functions =====
20
21% qsys_mm1(lambda, mu) -> [W, rho]
22codegen -config cfg qsys_mm1 -args {scal_type, scal_type}
23
24% qsys_gm1(sigma, mu) -> W
25codegen -config cfg qsys_gm1 -args {scal_type, scal_type}
26
27%% ===== Group: 3-scalar functions =====
28
29% qsys_mmk(lambda, mu, k) -> [W, rho]
30codegen -config cfg qsys_mmk -args {scal_type, scal_type, scal_type}
31
32% qsys_mg1(lambda, mu, cs) -> [W, rhohat]
33codegen -config cfg qsys_mg1 -args {scal_type, scal_type, scal_type}
34
35% qsys_mm1k_loss(lambda, mu, K) -> [lossprob, rho]
36codegen -config cfg qsys_mm1k_loss -args {scal_type, scal_type, scal_type}
37
38%% ===== Group: 4-scalar functions =====
39
40% qsys_gg1(lambda, mu, ca2, cs2) -> [W, rhohat]
41codegen -config cfg qsys_gg1 -args {scal_type, scal_type, scal_type, scal_type}
42
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}
45
46%% ===== Group: GI/G/1 approximations (4 scalars) =====
47ARGS_GIG1 = {scal_type, scal_type, scal_type, scal_type};
48
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
58
59%% ===== Group: GI/G/1 Myskja (6 scalars) =====
60
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}
63
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}
66
67%% ===== Group: GI/G/k approximations (5 scalars) =====
68ARGS_GIGK = {scal_type, scal_type, scal_type, scal_type, scal_type};
69
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
74
75%% ===== Group: M/G/1 scheduling disciplines (vector args) =====
76ARGS_MG1_SCHED = {vec_type, vec_type, vec_type};
77
78% qsys_mg1_prio(lambda, mu, cs) -> [W, rho]
79codegen -config cfg qsys_mg1_prio -args ARGS_MG1_SCHED
80
81% qsys_mg1_fb(lambda, mu, cs) -> [W, rho_total]
82codegen -config cfg qsys_mg1_fb -args ARGS_MG1_SCHED
83
84% qsys_mg1_lrpt(lambda, mu, cs) -> [W, rho_total]
85codegen -config cfg qsys_mg1_lrpt -args ARGS_MG1_SCHED
86
87% qsys_mg1_psjf(lambda, mu, cs) -> [W, rho_total]
88codegen -config cfg qsys_mg1_psjf -args ARGS_MG1_SCHED
89
90% qsys_mg1_setf(lambda, mu, cs) -> [W, rho_total]
91codegen -config cfg qsys_mg1_setf -args ARGS_MG1_SCHED
92
93% qsys_mg1_srpt(lambda, mu, cs) -> [W, rho_total]
94codegen -config cfg qsys_mg1_srpt -args ARGS_MG1_SCHED