%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% gauss.4ht                             2009-05-21-09:32 %
% Copyright (C) 2008--2009       Eitan M. Gurari         %
%                                                        %
% This work may be distributed and/or modified under the %
% conditions of the LaTeX Project Public License, either %
% version 1.3c of this license or (at your option) any   %
% later version. The latest version of this license is   %
% in                                                     %
%   http://www.latex-project.org/lppl.txt                %
% and version 1.3c or later is part of all distributions %
% of LaTeX version 2005/12/01 or later.                  %
%                                                        %
% This work has the LPPL maintenance status "maintained".%
%                                                        %
% This Current Maintainer of this work                   %
% is Eitan M. Gurari.                                    %
%                                                        %
% If you modify this program your changing its signature %
% with a directive of the following form will be         %
% appreciated.                                           %
%            \message{signature}                         %
%                                                        %
%                             gurari@cse.ohio-state.edu  %
%                 http://www.cse.ohio-state.edu/~gurari  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\immediate\write-1{version 2009-05-21-09:32}

  \def\:tempc[#1]{\def\g@environment{#1matrix}%
   \begin{\g@environment}%
   \begin{g@matrix}}
\expandafter\HLet\csname \string\gmatrix\endcsname=\:tempc
\def\:tempc{%
   \end{g@matrix}%
   \end{\g@environment}%
   \let\matrix\@empty
   \let\endmatrix\@empty
}
\HLet\endgmatrix=\:tempc
                                    \catcode`\#13 \catcode`\!6
\def\reg:g@matrix{%
\hbox\bgroup
  \global\g@maxrow@old\g@maxrow
  \global\g@maxcol@old\g@maxcol
  \global\g@maxrow0%
  \global\g@maxcol0%
  \let\rowops\g@east
  \let\colops\g@north
  \vbox\bgroup
   \def\\{\mathstrut\cr\global\advance\g@maxrow1\relax}%
   \global\let\g@endregion\g@endmatrix
   \global\g@tab=2\arraycolsep
  \SaveMkHalignConf:g{g@matrix}%
\MkHalign#{\g@prae#\g@post&&%
           \kern\g@tab\g@prae#\g@post}%
}
                                    \catcode`\#=6 \catcode`\!=12
\def\:tempc{%
 \g@endregion
 \global\g@maxrow\g@maxrow@old
 \global\g@maxcol\g@maxcol@old
 \global\let\g@endregion\g@endmatrix
 \global\let\rowops\g@east
 \global\let\colops\g@north
}
\HLet\endg@matrix\:tempc
\def\:temp{\pic:MkHalign{g@matrix}}
\HLet\g@matrix\:temp
\NewConfigure{gmatrix}[6]{%
   \def\a:g@matrix {#1}%
   \def\b:g@matrix {#2}%
   \def\c:g@matrix {#3}%
   \def\d:g@matrix {#4}%
   \def\e:g@matrix {#5}%
   \def\f:g@matrix {#6}%
}
\Configure{gmatrix}{}{}{}{}{}{}
\def\:tempc{%
   \crcr\EndMkHalign
   \RecallMkHalignConfig \egroup \egroup
   \b:g@matrix
   \global\let\colops\g@north
}
\HLet\g@endmatrix\:tempc
\def\:tempc{%
 \g@endregion
 \def\swap{\g@east@arrow11\rowswapfromlabel\rowswaptolabel}
 \def\add{\g@east@arrow01\rowaddfromlabel\rowaddtolabel}
 \let\mult\g@east@mult
 \gdef\rowops{\PackageError{gauss}%
                 {Two sets of row operations were specified in %
                  just one matrix. This is not allowed.}}
 \gdef\g@endregion{\b:rowops \egroup}%
 \hbox\bgroup \a:rowops
}
\HLet\g@east\:tempc
\def\:tempc#1#2#3#4#5[#6]#7#8{%
   \ifnum #1=#2\relax
      \hbox{$\a:swap #7\b:swap #8\c:swap$}%
   \else
      \hbox{$\a:add #7\b:add #8\c:add$}%
   \fi
}
\HLet\g@east@arrow@b\:tempc
\def\:tempc#1#2{%
   \hbox{$\a:mult #1\b:mult #2\c:mult$}%
}
\HLet\g@east@mult\:tempc
\NewConfigure{rowops}{2}
\def\:tempc{%
 \g@endregion
 \gdef\colops{\PackageError{gauss}
   {Two sets of column operations are specified in %
    just one matrix. This is not allowed.}}%
 \gdef\g@endregion{\b:colops \egroup}%
 \def\swap{\g@north@arrow11\colswapfromlabel\colswaptolabel}%
 \def\add{\g@north@arrow01\coladdfromlabel\coladdtolabel}%
 \let\mult\g@north@mult
 \hbox\bgroup \a:colops
}
\HLet\g@north\:tempc
\def\:tempc#1#2#3#4#5[#6]#7#8{%
   \ifnum #1=#2\relax
      \hbox{$\a:swap #7\b:swap #8\c:swap$}%
   \else
      \hbox{$\a:add #7\b:add #8\c:add$}%
   \fi
}
\HLet\g@north@arrow@b\:tempc
\def\:tempc#1#2{%
   \hbox{$\a:mult #1\b:mult #2\c:mult$}%
}
\HLet\g@north@mult\:tempc
\NewConfigure{colops}{2}
\NewConfigure{mult}{3}
\NewConfigure{swap}{3}
\NewConfigure{add}{3}

\Hinput{gauss}
\endinput

