3 % @brief MATLAB Coder script to generate MEX function
for pfqn_bs.
5 % This script generates a MEX (MATLAB Executable) version of pfqn_bs
6 %
for improved performance. It configures the code generation settings
7 % and specifies the expected input types and dimensions.
9 % See also CODER, CODER.CONFIG, CODER.TYPEOF, CODEGEN.
12% UNTITLED Generate
static library pfqn_bs
14% See also CODER, CODER.CONFIG, CODER.TYPEOF, CODEGEN.
16%% Create configuration
object of
class 'coder.CodeConfig'.
17cfg = coder.config(
'mex',
'ecoder',
false);
18cfg.GenerateReport =
false;
19cfg.ReportPotentialDifferences =
false;
20cfg.GenCodeOnly =
false;
23L_type = coder.typeof(0,[Inf Inf],[1 1]);
24N_type = coder.typeof(0,[1 Inf],[0 1]);
25Z_type = coder.typeof(0,[1 Inf],[0 1]);
26scal_type = coder.typeof(0);
27vec_type = coder.typeof(0,[1 Inf],[0 1]);
28col_vec_type = coder.typeof(0,[Inf 1],[1 0]);
29mat_type = coder.typeof(0,[Inf Inf],[1 1]);
30vec_flex_type = coder.typeof(0,[Inf Inf],[1 1]); % Flexible 1D/2D
31str_type = coder.typeof(
'a', [1 Inf], [0 1]); % Variable
string
34ARGS_LNZ = {L_type, N_type, Z_type};
36codegen -config cfg pfqn_ca -args ARGS_LNZ
37codegen -config cfg pfqn_le -args ARGS_LNZ
38codegen -config cfg pfqn_mmint2 -args ARGS_LNZ
39codegen -config cfg pfqn_panacea -args ARGS_LNZ
40codegen -config cfg pfqn_kt -args ARGS_LNZ
41codegen -config cfg pfqn_xzabalow -args ARGS_LNZ
42codegen -config cfg pfqn_xzabaup -args ARGS_LNZ
43codegen -config cfg pfqn_xzgsblow -args ARGS_LNZ
44codegen -config cfg pfqn_xzgsbup -args ARGS_LNZ
45codegen -config cfg pfqn_propfair -args ARGS_LNZ
46codegen -config cfg pfqn_lap -args ARGS_LNZ
48%% Other simple signatures
49codegen -config cfg pfqn_grnmol -args {L_type, N_type}
50codegen -config cfg pfqn_sqni -args {N_type, L_type, Z_type}
51codegen -config cfg pfqn_gldsingle -args {L_type, N_type, mat_type}
52codegen -config cfg pfqn_mvaldmx_ec -args {vec_type, L_type, mat_type}
54%% Group: Complex Signatures
56% pfqn_bs (L,N,Z,tol,maxiter,QN0,type)
57codegen -config cfg pfqn_bs -args {L_type, N_type, Z_type, scal_type, scal_type, mat_type, scal_type}
59% pfqn_bsfcfs (L,N,Z,tol,maxiter,QN,weight)
60codegen -config cfg pfqn_bsfcfs -args {L_type, N_type, Z_type, scal_type, scal_type, mat_type, mat_type}
63codegen -config cfg pfqn_mva -args {L_type, N_type, Z_type, vec_flex_type}
65% pfqn_mvams (lambda,L,N,Z,mi,S)
66codegen -config cfg pfqn_mvams -args {vec_type, L_type, N_type, Z_type, vec_flex_type, vec_flex_type}
68% pfqn_mvald (L,N,Z,mu,stabilize)
69codegen -config cfg pfqn_mvald -args {L_type, N_type, Z_type, mat_type, scal_type}
71% pfqn_mvamx (lambda,L,N,Z,mi)
72codegen -config cfg pfqn_mvamx -args {vec_type, L_type, N_type, Z_type, vec_flex_type}
74% pfqn_mvaldms (lambda,L,N,Z,S)
75codegen -config cfg pfqn_mvaldms -args {vec_type, L_type, N_type, Z_type, vec_flex_type}
77% pfqn_mvaldmx (lambda,L,N,Z,mu,S)
78codegen -config cfg pfqn_mvaldmx -args {vec_type, L_type, N_type, Z_type, mat_type, vec_flex_type}
80% pfqn_cub (L,N,Z,order,atol)
81codegen -config cfg pfqn_cub -args {L_type, N_type, Z_type, scal_type, scal_type}
84codegen -config cfg pfqn_ls -args {L_type, N_type, Z_type, vec_type}
86% pfqn_mci (D,N,Z,I,variant)
87codegen -config cfg pfqn_mci -args {L_type, N_type, Z_type, vec_type, scal_type}
89% pfqn_linearizer (L,N,Z,type,tol,maxiter)
90codegen -config cfg pfqn_linearizer -args {L_type, N_type, Z_type, scal_type, scal_type, scal_type}
92% pfqn_linearizerms (L,N,Z,nservers,type,tol,maxiter)
93codegen -config cfg pfqn_linearizerms -args {L_type, N_type, Z_type, vec_flex_type, scal_type, scal_type, scal_type}
95% pfqn_conwayms (L,N,Z,nservers,type,tol,maxiter)
96codegen -config cfg pfqn_conwayms -args {L_type, N_type, Z_type, vec_flex_type, scal_type, scal_type, scal_type}
98% pfqn_aql (L,N,Z,TOL,MAXITER,QN0)
99codegen -config cfg pfqn_aql -args {L_type, N_type, Z_type, scal_type, scal_type, mat_type}
101% pfqn_gld (L,N,mu) - Options skipped
102codegen -config cfg pfqn_gld -args {L_type, N_type, mat_type}
104% pfqn_comom (L,N,Z,atol)
105codegen -config cfg pfqn_comom -args {L_type, N_type, Z_type, scal_type}
107% pfqn_recal (L,N,Z,m0)
108codegen -config cfg pfqn_recal -args {L_type, N_type, Z_type, vec_flex_type}
111codegen -config cfg pfqn_rd -args {L_type, N_type, Z_type, mat_type}
113% pfqn_mmint2_gausslaguerre (L,N,Z,m)
114codegen -config cfg pfqn_mmint2_gausslaguerre -args {L_type, N_type, Z_type, scal_type}
116% pfqn_mmint2_gausslegendre (L,N,Z,m)
117codegen -config cfg pfqn_mmint2_gausslegendre -args {L_type, N_type, Z_type, scal_type}
119% pfqn_egflinearizer (L,N,Z,type,tol,maxiter,alpha) - alpha
is vector
120codegen -config cfg pfqn_egflinearizer -args {L_type, N_type, Z_type, vec_flex_type, scal_type, scal_type, vec_flex_type}
122% pfqn_gflinearizer (L,N,Z,type,tol,maxiter,alpha) - alpha
is scalar
123codegen -config cfg pfqn_gflinearizer -args {L_type, N_type, Z_type, vec_flex_type, scal_type, scal_type, scal_type}
125% pfqn_ab_amva (D,N,V,nservers,sched,fcfsSchmidt,marginalProbMethod)
126codegen -config cfg pfqn_ab_amva -args {L_type, N_type, L_type, vec_flex_type, vec_flex_type, scal_type, str_type}
128% pfqn_linearizermx (lambda,L,N,Z,nservers,type,tol,maxiter,method)
129codegen -config cfg pfqn_linearizermx -args {vec_type, L_type, N_type, Z_type, vec_flex_type, vec_flex_type, scal_type, scal_type, str_type}
131%% LCFS Group (alpha,beta,N)
132ARGS_LCFS = {vec_type, vec_type, vec_type};
133codegen -config cfg pfqn_lcfsqn_nc -args ARGS_LCFS
134codegen -config cfg pfqn_lcfsqn_ca -args ARGS_LCFS
135codegen -config cfg pfqn_lcfsqn_mva -args ARGS_LCFS