#! /bin/sh
######################################
##### Model Transformation Tools #####
######################################
# Bourne shell script: dm_r2tex
# Reduce descriptor matrices to LaTex descriptor matrices.
# P.J.Gawthrop 9 June 1990, 8th July 1990, 14 Feb 1991, 10th May 1991, 4th June 1991
# Copyright (c) P.J.Gawthrop, 1990, 1991.
#Inform user
echo Creating $1_dm.tex
# Remove the old log file
rm -f dm_r2tex.log
# Use reduce to accomplish the transformation
reduce >dm_r2tex.log << EOF
%Read the definitions file
in "$1_def.r";
%Read the symbolic parameters file
%%in "$1_sympar.r";
%Read the substitution file
in "$1_subs.r";
%Read the simplification file
in "$1_simp.r";
%Number of descriptor variables
MTTN := MTTNx + 2*MTTNz + MTTNyz;
%Read the descriptor matrices file
in "$1_dm.r";
OFF Echo;
OFF Nat;
OUT "$1_dm.tex";
%Write out the descriptor matrices.
write "%Descriptor matrices $1";
write "%File: $1_dm.tex";
write"";
write "%Descriptor matrices";
%IF (MTTNz+MTTNyz) NEQ 0 THEN
%BEGIN
% write "% - E matrix";
% write "\begin{equation}";
% write "MTTE = MTTI_0(", MTTNx+MTTNz, ",", MTTNz+MTTNyz, ")";
% write "\end{equation}";
%END;
IF MTTN NEQ 0 THEN
IF (MTTNz+MTTNyz) > 0 THEN
BEGIN
write "% - E matrix";
write "\begin{equation}";
write "MTTE = \begin{pmatrix}";
FOR Row := 1:MTTN DO
BEGIN
FOR Col := 1:MTTN DO
BEGIN
Write "{", MTTE(Row,Col), "}";
IF Col<MTTN THEN Write "&"
END;
IF Row<MTTN THEN Write "\cr";
END;
Write "\end{pmatrix}";
write "\end{equation}";
END;
IF MTTN NEQ 0 THEN
BEGIN
write "% - A matrix";
write "\begin{equation}";
write "MTTA = \begin{pmatrix}";
FOR Row := 1:MTTN DO
BEGIN
FOR Col := 1:MTTN DO
BEGIN
Write "{", MTTA(Row,Col), "}";
IF Col<MTTN THEN Write "&"
END;
IF Row<MTTN THEN Write "\cr";
END;
Write "\end{pmatrix}";
write "\end{equation}";
END;
IF MTTN NEQ 0 THEN IF MTTNu NEQ 0 THEN
BEGIN
write "% - B matrix";
write "\begin{equation}";
write "MTTB = \begin{pmatrix}";
FOR Row := 1:MTTN DO
BEGIN
FOR Col := 1:MTTNu DO
BEGIN
Write "{", MTTB(Row,Col), "}";
IF Col<MTTNu THEN Write "&"
END;
IF Row<MTTN THEN Write "\cr";
END;
Write "\end{pmatrix}";
write "\end{equation}";
END;
IF MTTN NEQ 0 THEN IF MTTNy NEQ 0 THEN
BEGIN
write "% - C matrix";
write "\begin{equation}";
write "MTTC = \begin{pmatrix}";
FOR Row := 1:MTTNy DO
BEGIN
FOR Col := 1:MTTN DO
BEGIN
Write "{", MTTC(Row,Col), "}";
IF Col<MTTN THEN Write "&"
END;
IF Row<MTTNy THEN Write "\cr";
END;
Write "\end{pmatrix}";
write "\end{equation}";
END;
IF MTTNy NEQ 0 THEN IF MTTNu NEQ 0 THEN
BEGIN
write "% - D matrix";
write "\begin{equation}";
write "MTTD = \begin{pmatrix}";
FOR Row := 1:MTTNy DO
BEGIN
FOR Col := 1:MTTNu DO
BEGIN
Write "{", MTTD(Row,Col), "}";
IF Col<MTTNu THEN Write "&"
END;
IF Row<MTTNy THEN Write "\cr";
END;
Write "\end{pmatrix}";
write "\end{equation}";
END;
SHUT "$1_dm.tex";
quit;
EOF