52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
BEGIN
IF (element NEQ 0) THEN
BEGIN
IF (lang = r) THEN
write name, "(", i, ",", j, ") := ", element;
IF (lang = m) THEN
write name, "(", i, ",", j, ") = ", element;
END
END;
%Set up output according to the language.
OFF NAT;
OUT "$1_smx.$lang";
LineLength 1000;
% Set up output according to the language.
IF (lang = r) THEN
BEGIN
write "matrix mtta(", mttnx, ",", mttnx, ");";
write "matrix mttb(", mttnx, ",", mttnu, ");";
write "matrix mttc(", mttny, ",", mttnx, ");";
write "matrix mttd(", mttny, ",", mttnu, ");";
END;
% find MTTA : the A matrix
FOR j := 1:MTTNx DO
BEGIN
xj := MTTX(j,1);
FOR i := 1:MTTNx DO
WriteElement("mtta",i,j,df(MTTdx(i,1), xj, 1));
END;
% Find MTTB : the B matrix
FOR j := 1:MTTNu DO
BEGIN
uj := MTTU(j,1);
FOR i := 1:MTTNx DO
WriteElement("mttb",i,j,df(MTTdx(i,1), uj, 1));
END;
% Find MTTC : the C matrix
FOR i := 1:MTTNy DO
FOR j := 1:MTTNx DO
BEGIN
xj := MTTX(j,1);
WriteElement("mttc",i,j,df(MTTY(i,1), xj, 1));
END;
% Find MTTD : the D matrix
FOR i := 1:MTTNy DO
FOR j := 1:MTTNu DO
BEGIN
xj := MTTU(j,1);
WriteElement("mttd",i,j,df(MTTY(i,1), xj, 1));
END;
%Shut the output according to the language.
SHUT "$1_smx.$lang";
EOF
if [ "$lang" = "m" ]; then
mv $1_smx.$lang mtt_junk
lang_header $1 smx m 'mttx,mttu' '[mtta,mttb,mttc,mttd]' > $1_smx.m
cat mtt_junk >> $1_smx.m
rm -f mtt_junk
fi
# Now invoke the standard error handling.
mtt_error_r ode2smx_lang.log
|
|
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
BEGIN
IF (element NEQ 0) THEN
BEGIN
IF (lang = r) THEN
write name, "(", i, ",", j, ") := ", element;
IF (lang = m) THEN
write name, "[", i, ",", j, "] = ", element;
END
END;
%Set up output according to the language.
OFF NAT;
OUT "$1_smx.$lang";
% Set up output according to the language.
IF (lang = r) THEN
BEGIN
write "matrix mtta(", mttnx, ",", mttnx, ");";
write "matrix mttb(", mttnx, ",", mttnu, ");";
write "matrix mttc(", mttny, ",", mttnx, ");";
write "matrix mttd(", mttny, ",", mttnu, ");";
END;
% find MTTA : the A matrix
FOR j := 1:MTTNx DO
BEGIN
xj := MTTX(j,1);
FOR i := 1:MTTNx DO
WriteElement("mtta",i,j,df(MTTdx(i,1), xj, 1));
END;
%% Find MTTB : the B matrix
% FOR j := 1:MTTNu DO
% BEGIN
% uj := MTTU(j,1);
% FOR i := 1:MTTNx DO
% WriteElement("mttb",i,j,df(MTTdx(i,1), uj, 1));
% END;
%
%% Find MTTC : the C matrix
% FOR i := 1:MTTNy DO
% FOR j := 1:MTTNx DO
% BEGIN
% xj := MTTX(j,1);
% WriteElement("mttc",i,j,df(MTTY(i,1), xj, 1));
% END;
%
%% Find MTTD : the D matrix
% FOR i := 1:MTTNy DO
% FOR j := 1:MTTNu DO
% BEGIN
% xj := MTTU(j,1);
% WriteElement("mttd",i,j,df(MTTY(i,1), xj, 1));
% END;
%Shut the output according to the language.
SHUT "$1_smx.$lang";
EOF
if [ "$lang" = "m" ]; then
mv $1_smx.$lang mtt_junk
lang_header $1 smx m 'mttx,mttu' '[mtta]' > $1_smx.m
cat mtt_junk | mtt_p2m >> $1_smx.m
rm -f mtt_junk
fi
# Now invoke the standard error handling.
mtt_error_r ode2smx_lang.log
|