#! /bin/sh

     ###################################### 
     ##### Model Transformation Tools #####
     ######################################

# Bourne shell script: tf_r2tex
# Reduce transfer-function matrices to LaTex transfer-function matrices.
# P.J.Gawthrop 9 June 1990, 8 July 1990, April 1994.
# Copyright (c) P.J.Gawthrop, 1990, 1994.

###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.1  2000/12/27 16:05:29  peterg
## Initial revision
##
## Revision 1.2  1996/12/20 08:59:40  peterg
## Now writes out mtti instead of mtt_{i} -- lets latex_tidy do the
## conversion.
##
## Revision 1.1  1996/11/05 11:01:51  peterg
## Initial revision
##
###############################################################

#Inform user
echo Creating $1_tf.tex

# Remove the old log file
rm -f tf_r2tex.log

# Use reduce to accomplish the transformation
reduce >tf_r2tex.log << EOF

%Read the definitions file
in "$1_def.r";

%Read the parameter file
%%in "$1_sympar.r";

%Read the formatting function
in "$MTTPATH/trans/latex_matrix_no.r";

%Read the transfer-function matrices file
in "$1_tf.r";

%Read the substitution file
IN "$1_subs.r";

%Read the simplification file
in "$1_simp.r";

OFF Echo;
OFF Nat;

OUT "$1_tf.tex";
MTT_Matrix := MTTTF$ 
MTT_Matrix_name := "MTTG"$
MTT_Matrix_n := MTTNy$
MTT_Matrix_m := MTTNu$
LaTeX_Matrix()$

%%  FOR Row := 1:MTTNy DO
%%  BEGIN
%%    FOR Col := 1:MTTNu DO
%%    BEGIN
%%      numerator := num(MTTtf(Row,Col));
%%      denominator := den(MTTtf(Row,Col));
%%      cnumerator := coeff(numerator, s);
%%      cdenominator := coeff(denominator, s);
%%      write "!begin{equation} !label{eq_$1_tf", Row, Col, "}";
%%      IF MTTNy=1 AND MTTNu=1 
%%                          THEN
%%                          write "MTTTF(s) =  {"
%%                          ELSE
%%                          write "MTTTF", Row, Col, "(s) =  {";
%%      IF numerator = 0
%%       THEN write "0"
%%       ELSE 
%%       BEGIN
%%           FOR i := 1:Length(cnumerator) DO
%%           BEGIN
%%             cof := part(cnumerator,i);
%%               IF cof NEQ 0 THEN 
%%               BEGIN
%%                IF i>1 THEN write " + ";
%%                IF cof NEQ 1 THEN 
%%                 BEGIN
%%                 IF Terms(cof)>1 THEN write "(", cof, ")"
%%                                 ELSE write cof; 
%%                 END
%%                 ELSE IF i=1 THEN Write "1";
%%
%%               IF i=2 THEN write "s";
%%               IF i>2 THEN write "s^", i-1;
%%               END;
%%           END;
%%       END;
%%
%%       IF denominator NEQ 1 THEN
%%       BEGIN
%%       Write "!over";
%%           FOR i := 1:Length(cdenominator) DO
%%           BEGIN
%%           cof := part(cdenominator,i);
%%               IF cof NEQ 0 THEN 
%%               BEGIN
%%               IF i>1 THEN write " + ";
%%               IF cof NEQ 1 THEN 
%%               BEGIN
%%                 IF Terms(cof)>1 THEN write "(", cof, ")"
%%                                 ELSE write cof; 
%%               END
%%               ELSE IF i=1 THEN Write "1";
%%
%%             IF i=2 THEN write "s";
%%             IF i>2 THEN write "s^", i-1;
%%             END;
%%           END;
%%       END;
%%       write "}";
%%       write "!end{equation}";
%%    END;
%%  END;
%%
SHUT "$1_tf.tex";
quit;
EOF

