%% 
%% This is file `rotating.sty', generated 
%% on <1994/2/9> with the docstrip utility (2.2e).
%% 
%% The original source files were:
%% 
%% rotating.doc 
%% S Rahtz 
%% spqr@minster.york.ac.uk 
%% 
%% 10 July 1993 
%% 
\def\styleoption{rotating.sty}
\def\fileversion{v1.9}
\def\filedate{93/11/1}
\immediate\write\sixt@@n{Style option: \styleoption,
\fileversion\space <\filedate> (SPQR / LMB)}
\def\rot@start{}
\def\rot@end{}
\def\rotdriver#1{%
  \bgroup\edef\next{\def\noexpand\tempa{#1}}%
    \uppercase\expandafter{\next}%
    \def\LN{DVITOLN03}%
    \def\DVItoPS{DVITOPS}%
    \def\DVIPS{DVIPS}%
    \def\emTeX{EMTEX}%
    \def\Textures{TEXTURES}%
    \def\Pubps{PUBPS}%
    \global\chardef\rot@driversetup=0
    \ifx\tempa\LN
        \global\chardef\rot@driversetup=0\fi
    \ifx\tempa\DVItoPS
        \global\chardef\rot@driversetup=1\fi
    \ifx\tempa\DVIPS
        \global\chardef\rot@driversetup=2\fi
    \ifx\tempa\emTeX
        \global\chardef\rot@driversetup=3\fi
    \ifx\tempa\Textures
        \global\chardef\rot@driversetup=4\fi
    \ifx\tempa\Pubps
       \global\chardef\rot@driversetup=5\fi
  \egroup
\ifcase\rot@driversetup
\typeout{WARNING! ****
 no specials for LN03  rotation}
\or
\rot@count=1
\def\rot@start{\special{dvitops: origin
    rot\the\rot@count}%
\special{dvitops: begin rot\the\rot@count}}%
\def\rot@end{\special{dvitops: end}%
\special{dvitops: rotate rot\the\rot@count \space
    \the\rot@angle}%
\global\advance\rot@count by1}%
\or
\def\rot@start{\special{ps:gsave currentpoint
currentpoint translate \the\rot@angle\space
rotate  neg exch neg exch translate}}%
\def\rot@end{\special{ps:currentpoint
grestore moveto}}%
\or % case 3, emTeX
\typeout{WARNING! ***
 emTeX does no rotation at this time}
\or
\typeout{Textures rotation}
\def\rot@start{\special{postscript
  0 0 transform                 % Get current location in device
                                % coordinates.
  grestore                      % Undoes TeXtures gsave.
  matrix currentmatrix          % Save current transform on stack for use
                                % by \@unrotate.
  3 1 roll                      % Put transform at back of current location.
  itransform                    % Current location in TeXtures coords
  dup 3 -1 roll                 % Duplicate the location; x y ==> x y x y
  dup 4 1 roll exch
  translate                     % Translate origin to current location
 % 1 -1 scale                    % Flip y coordinate
  \the\rot@angle\space rotate   % Rotate by \@rotation
 % 1 -1 scale                    % Unflip y coordinate
  neg exch neg exch translate   % Translate origin back
  gsave}}                       % To match grestore
\def\rot@end{\special{postscript
  grestore                      % Undoes TeXtures gsave
  setmatrix                     % Set current transform to value saved on
                                % stack.  (Hopefully, it's still there.)
  gsave}}                       % To match grestore
\typeout{Process .DVI file with Pubps}
  \def\rot@start{\special{ps:: gsave currentpoint
  currentpoint translate \the\rot@angle\space
  neg rotate  neg exch neg exch translate}}%
  \def\rot@end{\special{ps:: currentpoint
  grestore moveto}}%
\else
\typeout{WARNING! ***
 unknown  driver - no rotation}
\fi
}
\newsavebox{\rot@box}%
\newsavebox{\rot@tempbox}%
\newdimen\rot@temp
\newdimen\rot@width
\newdimen\rot@height
\newdimen\rot@depth
\newdimen\rot@right
\newdimen\rot@left
\newcount\rot@angle
\newcount\rot@count
\newcount\rot@circle
\def\sideways{\setbox\rot@box\hbox\bgroup\ignorespaces}
\def\endsideways{\unskip\egroup%
\rot@angle-90
\rot@width\ht\rot@box
\advance\rot@width by\dp\rot@box
\rot@height\wd\rot@box
\wd\rot@box\z@
\dp\rot@box\z@
\ht\rot@box\z@
\rule{\rot@width}{\z@}%
\rlap{\rule{\z@}{\rot@height}}%
\rot@start\usebox{\rot@box}\rot@end%
}
\def\rotate#1{%
\global\rot@angle=\rot@direction#1\relax
\setbox\rot@box\hbox\bgroup\ignorespaces}
\def\endrotate{\unskip\egroup%
\rot@start%
\dp\rot@box=\z@\wd\rot@box=\z@\ht\rot@box=\z@
\usebox{\rot@box}%
\rot@end%
}%
\def\rotatedirection#1{%
  \def\@tempa{#1}\def\@tempb{clockwise}%
  \edef\rot@direction{\ifx\@tempa\@tempb\else-\fi}}
\rotatedirection{clockwise}
\let\turn=\rotate
\def\endturn{%
\unskip\egroup%
\multiply\rot@angle by-1
\Sine{\rot@angle}%
\let\sineA\sine
\advance\rot@angle by90%
\Sine{\rot@angle}%
\let\sineB\sine
\def\sineC{-\sine}%
\def\cosineA{-\sineC}%
\def\cosineB{-\sineA}%
\let\cosineC\sineA
\advance\rot@angle by-90%
\def\rot@Bx{\rot@temp\cosineA\wd\rot@box
   \advance\rot@temp by -\sineA\ht\rot@box}%
\def\rot@By{\rot@temp\sineA\wd\rot@box
  \advance\rot@temp by \cosineA\ht\rot@box}%
\def\rot@Cx{\rot@temp\cosineB\ht\rot@box}%
\def\rot@Cy{\rot@temp\sineB\ht\rot@box}%
\def\rot@Dx{\rot@temp\cosineC\dp\rot@box}%
\def\rot@Dy{\rot@temp\sineC\dp\rot@box}%
\def\rot@Ex{\rot@temp\cosineC\dp\rot@box
   \advance\rot@temp by -\sineC\wd\rot@box}%
\def\rot@Ey{\rot@temp\sineC\dp\rot@box
   \advance\rot@temp by \cosineC\wd\rot@box}%
\rot@circle\rot@angle
\ifnum\rot@circle<0
     \advance\rot@circle by 360
\fi
\ifnum\rot@circle<90
\rot@By\rot@height\rot@temp
\rot@Ex\rot@right\rot@temp
\rot@Cx\rot@left\rot@temp
\rot@Dy\rot@depth\rot@temp
\else
     \ifnum\rot@circle<180
       \rot@Ey\rot@height\rot@temp
       \rot@Dx\rot@right\rot@temp
       \rot@Bx\rot@left\rot@temp
       \rot@Cy\rot@depth\rot@temp
     \else
            \ifnum\rot@circle<270
           \rot@Dy\rot@height\rot@temp
           \rot@Cx\rot@right\rot@temp
           \rot@Ex\rot@left\rot@temp
           \rot@By\rot@depth\rot@temp
            \else
           \rot@Cy\rot@height\rot@temp
           \rot@Bx\rot@right\rot@temp
           \rot@Dx\rot@left\rot@temp
           \rot@Ey\rot@depth\rot@temp
          \fi
     \fi
\fi
\multiply\rot@angle by-1
\wd\rot@box=\z@\ht\rot@box=\z@\dp\rot@box=\z@
\ifdim\rot@left<\z@
     \rule{-\rot@left}{\z@}%
\fi
\ifdim\rot@height>\z@
     \rlap{\rule{\z@}{\rot@height}}%
\fi
\ifdim\rot@depth<\z@
     \rlap{\rule[\rot@depth]{\z@}{-\rot@depth}}%
\fi
\rot@start\usebox{\rot@box}\rot@end%
\ifdim\rot@right>\z@
      \rule{\rot@right}{\z@}%
\fi
}%
\def\@rotfloat#1{\@ifnextchar[{\@xrotfloat{#1}}{%
\edef\@tempa{\noexpand\@xrotfloat{#1}[\csname fps@#1\endcsname]}\@tempa}}
\def\@xrotfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
   \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
      \@parmoderr\@floatpenalty\z@
    \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
       \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
       \@tfor \@tempa :=#2\do
                        {\if\@tempa h\advance\@tempcnta \@ne\fi
                         \if\@tempa t\advance\@tempcnta \tw@\fi
                         \if\@tempa b\advance\@tempcnta 4\relax\fi
                         \if\@tempa p\advance\@tempcnta 8\relax\fi
         }\global\count\@currbox\@tempcnta}\@fltovf\fi
    \global\setbox\@currbox\vbox\bgroup
  \hsize\textheight \@parboxrestore
}
\def\page@R{R}
\newcommand{\rotfloatpage}{R}
\def\end@rotfloat{\par\vskip\z@\egroup%
   \ifnum\@floatpenalty <\z@
    \global\setbox\rot@tempbox\box\@currbox
\message{Adding sideways figure on }%
   \global\setbox\@currbox\vbox to \wd\rot@tempbox{%
   \ifx\rotfloatpage\page@R
\message{right hand page }%
    \vfill\centerline{%
       \hbox to \ht\rot@tempbox{\hfill
          \begin{rotate}{-90}\box\rot@tempbox\end{rotate}%
            }%
	}%
   \else
\message{left hand page }%
    \centerline{%
       \hbox to \ht\rot@tempbox{%
               \begin{rotate}{90}\box\rot@tempbox\end{rotate}%
                  \hfill}%
               }\vfill
   \fi
      }%
     \@cons\@currlist\@currbox
     \ifdim \ht\@currbox >\textheight
        \@warning{Float larger than \string\textheight}%
        \ht\@currbox\textheight \fi
     \ifnum\@floatpenalty <-\@Mii
        \penalty -\@Miv
        \@tempdima\prevdepth
        \vbox{}%
        \prevdepth \@tempdima
        \penalty\@floatpenalty
      \else \vadjust{\penalty -\@Miv
      \vbox{}\penalty\@floatpenalty}\@esphack
     \fi\fi}
\def\sidewaysfigure{\let\make@caption\make@rcaption
\@rotfloat{figure}}
\let\endsidewaysfigure\end@rotfloat
\def\sidewaystable{\let\make@caption\make@rcaption
\@rotfloat{table}}
\let\endsidewaystable\end@rotfloat
\long\def\@makercaption#1#2{%
   \vskip 10\p@
   \setbox\@tempboxa\hbox{#1: #2}%
   \ifdim \wd\@tempboxa >\vsize
       #1: #2\par
     \else
       \hbox to\vsize{\hfil\box\@tempboxa\hfil}%
   \fi}%
\def\rotcaption{\refstepcounter\@captype\@dblarg{\@rotcaption\@captype}}
\long\def\@rotcaption#1[#2]#3{%
\addcontentsline{\csname ext@#1\endcsname}{#1}{%
 \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
  \par
  \begingroup
    \@parboxrestore
    \normalsize
    \@makerotcaption{\csname fnum@#1\endcsname}{#3}%
  \endgroup}
\long\def\@makerotcaption#1#2{%
 \setbox\@tempboxa\hbox{#1: #2}%
 \ifdim \wd\@tempboxa > .8\vsize
    \begin{rotate}{-90}%
    \begin{minipage}[b]{.8\textheight}#1 #2\end{minipage}%
    \end{rotate}\par
 \else%
    \mbox{\begin{rotate}{-90}\box\@tempboxa\end{rotate}}%
 \fi
 \hspace{12pt}%
}

\chardef\letter = 11
\chardef\other = 12
\newif\ifdebug
\newif\ifc@mpute
\c@mputetrue
\let\then =\relax
\def\r@dian{pt }%
\let\r@dians =\r@dian
\let\dimensionless@nit =\r@dian
\let\dimensionless@nits =\dimensionless@nit
\def\internal@nit{sp }%
\let\internal@nits =\internal@nit
\newif\ifstillc@nverging
\def\Mess@ge #1{\ifdebug\then\message {#1}\fi}%
{%
\catcode `\@ =\letter
\gdef\nodimen {\expandafter\n@dimen\the\dimen}%
\gdef\term #1 #2 #3%
{\edef\t@ {\the #1}%
\edef\t@@ {\expandafter\n@dimen\the #2\r@dian}%
\t@rm {\t@} {\t@@} {#3}%
}%
\gdef\t@rm #1 #2 #3%
{{%
\count 0 = 0
\dimen 0 = 1\dimensionless@nit
\dimen 2 = #2\relax
\Mess@ge {Calculating term #1 of\nodimen 2}%
\loop
\ifnum\count 0 < #1
\then\advance\count 0 by 1
\Mess@ge {Iteration\the\count 0\space}%
\Multiply\dimen 0 by {\dimen 2}%
\Mess@ge {After multiplication, term =\nodimen 0}%
\Divide\dimen 0 by {\count 0}%
\Mess@ge {After division, term =\nodimen 0}%
\repeat
\Mess@ge {Final value for term #1 of
\nodimen 2\space is\nodimen 0}%
\xdef\Term {#3 =\nodimen 0\r@dians}%
\aftergroup\Term
}}%
\catcode `\p =\other
\catcode `\t =\other
\gdef\n@dimen #1pt{#1}%
}%
\def\Divide #1by #2{\divide #1 by #2}%
\def\Multiply #1by #2%
{{%
\count 0 = #1\relax
\count 2 = #2\relax
\count 4 = 65536
\Mess@ge {Before scaling, count 0 =\the\count 0\space and
count 2 =\the\count 2}%
\ifnum\count 0 > 32767%
\then\divide\count 0 by 4
\divide\count 4 by 4
\else\ifnum\count 0 < -32767
\then\divide\count 0 by 4
\divide\count 4 by 4
\else
\fi
\fi
\ifnum\count 2 > 32767%
\then\divide\count 2 by 4
\divide\count 4 by 4
\else\ifnum\count 2 < -32767
\then\divide\count 2 by 4
\divide\count 4 by 4
\else
\fi
\fi
\multiply\count 0 by\count 2
\divide\count 0 by\count 4
\xdef\product {#1 =\the\count 0\internal@nits}%
\aftergroup\product
}}%
\def\r@duce{\ifdim\dimen0 > 90\r@dian\then%
\multiply\dimen0 by -1
\advance\dimen0 by 180\r@dian
\r@duce
\else\ifdim\dimen0 < -90\r@dian\then%
\advance\dimen0 by 360\r@dian
\r@duce
\fi
\fi}%
\def\Sine#1%
{{%
       \dimen 0 = #1\r@dian
       \r@duce
       \ifdim\dimen0 = -90\r@dian\then
              \dimen4 = -1\r@dian
              \c@mputefalse
       \fi
       \ifdim\dimen0 = 90\r@dian\then
              \dimen4 = 1\r@dian
              \c@mputefalse
       \fi
       \ifdim\dimen0 = 0\r@dian\then
       \dimen4 = 0\r@dian
       \c@mputefalse
\fi
\ifc@mpute\then
\divide\dimen0 by 180
\dimen0=3.141592654\dimen0
\dimen 2 = 3.1415926535897963\r@dian%
\divide\dimen 2 by 2%
\Mess@ge {Sin: calculating Sin of\nodimen 0}%
\count 0 = 1%
\dimen 2 = 1\r@dian%
\dimen 4 = 0\r@dian%
\loop
\ifnum\dimen 2 = 0%
\then\stillc@nvergingfalse
\else\stillc@nvergingtrue
\fi
\ifstillc@nverging%
\then\term {\count 0} {\dimen 0} {\dimen 2}%
\advance\count 0 by 2
\count 2 =\count 0
\divide\count 2 by 2
\ifodd\count 2%
\then\advance\dimen 4 by\dimen 2
\else\advance\dimen 4 by -\dimen 2
\fi
\repeat
\fi
\xdef\sine {\nodimen 4}%
}}%
\def\Cosine#1{\ifx\sine\UnDefined\edef\Savesine{\relax}\else
\edef\Savesine{\sine}\fi
{\dimen0=#1\r@dian\advance\dimen0 by 90\r@dian
\Sine{\nodimen 0}%
\xdef\cosine{\sine}%
\xdef\sine{\Savesine}}}
\rotdriver{dvips}
\endinput
%% 
%% End of file `rotating.sty'.
