{\catcode`\|=0 |catcode`|\=12 |obeyspaces |let|m=|message |m{ } |m{ These macros may be used free of charge and without authorization } |m{ for scientific work only. Written permission is required for any } |m{ commercial use. If used in publications, citation similar to the } |m{ following reference is required: } |m{ } |m{ Michael Ramek, } |m{ ``Chemical Structure Formul\ae\ and x/y-Diagrams with \TeX'', } |m{ in } |m{ ``\TeX: Applications, Uses, Methods, Proceedings of the \TeX88 } |m{ Conference'', } |m{ edited by Malcolm Clark, } |m{ published by Ellis Horwood Publishers, Chichester, UK, } |m{ pages 227--258 } |m{ } |m{ Questions and inquiries should be addressed to the author: } |m{ } |m{ Michael Ramek } |m{ Institut f\"ur Physikalische und Theoretische Chemie, } |m{ Technische Universit\"at Graz } |m{ Rechbauerstra{\ss}e 12 } |m{ A--8010 Graz } |m{ Austria } |m{ }|m{}} \newwrite\eIns\newwrite\zwEi% \newhelp\noscaleIgnored{mproper noscale ignored!}% \newhelp\noaxisIgnored{mproper noaxis ignored!}% \newhelp\curveIgnored{ncomplete curve ignored!}% \newhelp\hpointIgnored{mproper hpoint ignored!}% \newhelp\vpointIgnored{mproper vpoint ignored!}% \newhelp\diagramIgnored{ncorrect diagram ignored!}% \newhelp\improperxIncrement% {mproper increment of x-axis!}% \newhelp\negativxIncrement% {ncrement of x-axis is not positive!}% \newhelp\improperyIncrement% {mproper increment of y-axis!}% \newhelp\negativyIncrement% {ncrement of y-axis is not positive!}% % \def\messAge#1{\escapechar`I% \message{\the#1}\escapechar`\\}% % \def\nogrid{\count0=0\relax}% % \def\noscale{\ifnum\count20=30 \count30=0\else% \ifnum\count20=40 \count40=0\else% \messAge{\noscaleIgnored}\fi\fi\relax}% \def\noaxis{\ifnum\count20=30 \count30=0\count31=0\else% \ifnum\count20=40 \count40=0\count41=0\else% \messAge{\noaxisIgnored}\fi\fi\relax}% % \def\xaxis#1,#2.#3,#4.#5,#6.#7,#8;{\dimen7=#6.#7\pt\relax% \ifdim\dimen7>0\em \count20=30\advance\dimen1 by#1% \fontdimen2\tenrm\dimen252\setbox0\hbox{#8}% \ifdim\wd0>0\em \setbox0\hbox{#8$\qquad\longrightarrow$}\fi% \dimen8\ht0\advance\dimen8 by\dp0\advance\dimen8 by2.5\em% \advance\dimen2 by\dimen8\fontdimen2\tenrm0\em% \dimen61=#2.#3\pt\dimen63=#4.#5\pt\advance\dimen63 by-\dimen61% \setbox2\hbox{#2}\ifdim\wd2=0\em \count12=0\else% \ifdim\wd2=\wd4 \if#2- \count12=0\else\count12=#2\fi% \else\count12=#2\fi\fi% \setbox2\hbox{#4}\ifdim\wd2=0\em \count14=0\else% \ifdim\wd2=\wd4 \if#4- \count14=0\else\count14=#4\fi% \else\count14=#4\fi\fi \count13=0#3\count15=0#5% \count16=0#6\count17=0#7\setbox2\hbox{#2.}\dimen7\wd2% \setbox2\hbox{#6.}\ifdim\wd2>\dimen7 \dimen7\wd2\fi% \setbox2\hbox{#3}\dimen13\wd2\setbox2\hbox{#5}% \ifdim\wd2>\dimen13 \dimen13\wd2\fi\setbox2\hbox{#7}% \ifdim\wd2>\dimen13 \dimen13\wd2\fi% \advance\dimen7 by\dimen13\count18=1% \loop\setbox2\hbox{\number\count18}\ifdim\wd2<\dimen13 % \multiply\count18 by10\repeat\multiply\count18 by10% \multiply\count12 by\count18\multiply\count14 by\count18% \multiply\count16 by\count18\setbox2\hbox{#3}% \ifdim\wd2<\dimen13 % \setbox2\hbox{#3 0}\multiply\count13 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#3 00}\multiply\count13 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#3 000}\multiply\count13 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#3 0000}\multiply\count13 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#3 00000}\multiply\count13 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#3 000000}\multiply\count13 by10\fi% \dimen3=#2.#3\pt\relax\ifdim\dimen3<0\em % \advance\count12 by-\count13\else% \advance\count12 by\count13\fi\setbox2\hbox{#5}% \ifdim\wd2<\dimen13 % \setbox2\hbox{#5 0}\multiply\count15 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#5 00}\multiply\count15 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#5 000}\multiply\count15 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#5 0000}\multiply\count15 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#5 00000}\multiply\count15 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#5 000000}\multiply\count15 by10\fi% \dimen3=#4.#5\pt\relax\ifdim\dimen3<0\em % \advance\count14 by-\count15% \else\advance\count14 by\count15\fi\setbox2\hbox{#7}% \ifdim\wd2<\dimen13 % \setbox2\hbox{#7 0}\multiply\count17 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#7 00}\multiply\count17 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#7 000}\multiply\count17 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#7 0000}\multiply\count17 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#7 00000}\multiply\count17 by10\fi% \ifdim\wd2<\dimen13 % \setbox2\hbox{#7 000000}\multiply\count17 by10\fi% \advance\count16 by\count17\dimen3=#1% \count19=\count12\loop\advance\count19 by\count16\relax% \ifnum\count19<\count14 \repeat% \ifnum\count14=\count19 \advance\count1 by1\else% \messAge{\improperxIncrement}\fi% \else\messAge{\negativexIncrement}\fi}% % \def\yaxis#1,#2.#3,#4.#5,#6.#7,#8;{\dimen10=#6.#7\pt\relax% \ifdim\dimen10>0\em \count20=40\advance\dimen2 by#1% \fontdimen2\tenrm\dimen252\setbox1\hbox{#8}% \fontdimen2\tenrm0\em\advance\dimen1 by2.5\em% \advance\dimen1 by\wd1\setbox2\hbox{#2.}\dimen10\wd2% \setbox2\hbox{#6.}\ifdim\wd2>\dimen10 \dimen10\wd2\fi% \setbox2\hbox{#3}\dimen14\wd2% \setbox2\hbox{#5}\ifdim\wd2>\dimen14 \dimen14\wd2\fi% \setbox2\hbox{#7}\ifdim\wd2>\dimen14 \dimen14\wd2\fi% \advance\dimen10 by\dimen14\advance\dimen1 by\dimen10% \dimen62=#2.#3\pt\dimen64=#4.#5\pt\advance\dimen64 by-\dimen62% \setbox2\hbox{#2}\ifdim\wd2=0\em \count22=0\else% \ifdim\wd2=\wd4 \if#2- \count22=0\else\count22=#2 \fi% \else\count22=#2 \fi\fi% \setbox2\hbox{#4}\ifdim\wd2=0\em \count24=0\else% \ifdim\wd2=\wd4 \if#4- \count24=0\else\count24=#4 \fi% \else\count24=#4 \fi\fi% \count23=0#3\count25=0#5\count26=0#6\count27=0#7\count28=1% \loop\setbox2\hbox{\number\count28}\ifdim\wd2<\dimen14 % \multiply\count28 by10\repeat\multiply\count28 by10% \multiply\count22 by\count28\multiply\count24 by\count28% \multiply\count26 by\count28\setbox2\hbox{#3}% \ifdim\wd2<\dimen14 % \setbox2\hbox{#3 0}\multiply\count23 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#3 00}\multiply\count23 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#3 000}\multiply\count23 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#3 0000}\multiply\count23 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#3 00000}\multiply\count23 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#3 000000}\multiply\count23 by10\fi% \dimen4=#2.#3\pt\relax\ifdim\dimen4<0\em % \advance\count22 by-\count23% \else\advance\count22 by\count23\fi\setbox2\hbox{#5}% \ifdim\wd2<\dimen14 % \setbox2\hbox{#5 0}\multiply\count25 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#5 00}\multiply\count25 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#5 000}\multiply\count25 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#5 0000}\multiply\count25 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#5 00000}\multiply\count25 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#5 000000}\multiply\count25 by10\fi% \dimen4=#4.#5\pt\relax\ifdim\dimen4<0\em % \advance\count24 by-\count25% \else\advance\count24 by\count25\fi\setbox2\hbox{#7}% \ifdim\wd2<\dimen14 % \setbox2\hbox{#7 0}\multiply\count27 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#7 00}\multiply\count27 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#7 000}\multiply\count27 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#7 0000}\multiply\count27 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#7 00000}\multiply\count27 by10\fi% \ifdim\wd2<\dimen14 % \setbox2\hbox{#7 000000}\multiply\count27 by10\fi% \advance\count26 by\count27\dimen4=#1% \count29=\count22\loop\advance\count29 by\count26\relax% \ifnum\count29<\count24 \repeat% \ifnum\count24=\count29 \advance\count1 by2\else% \messAge{\improperyIncrement}\fi% \else\messAge{\negativyIncrement}\fi}% % \def\printsymbol#1{{\symbol#1\box2}}% % \def\symbol#1{\ifcase#1% \ownsymbol{\lower.03em\hbox{\kern.05em$\circ$}}\or% \ownsymbol{\lower.03em\hbox{\kern.05em$\bullet$}}\or% \ownsymbol{\raise.1em\hbox{$\oplus$}}\or% \ownsymbol{\raise.1em\hbox{\kern.01em$\otimes$}}\or% \ownsymbol{\raise.1em\hbox{\kern.0235em+}}\or% \ownsymbol{\raise.1em\hbox{\kern.05em$\times$}}\or% \ownsymbol{$\ast$}\or% %\ownsymbol{\vrule width.5em depth.05em height.45em}\or% \ownsymbol{\vrule width.4em height.4em}\or% \ownsymbol{\lower.03em\hbox{\kern.03em$\diamond$}}\or% \ownsymbol{$\bowtie$}\fi}% % \def\ownsymbol#1{\advance\dimen12 by.5\wd2% \advance\dimen13 by.5\ht2\advance\dimen13 by.5\dp2% \setbox2\hbox{#1}\advance\dimen12 by-.5\wd2% \advance\dimen13 by-.5\ht2\advance\dimen13 by-.5\dp2}% % \def\nosymbol{\ownsymbol{}}% % \def\values#1{\ownsymbol{\kern.02\em{\tt x}}\count1=0 #1}% % \def\connect#1{\nosymbol\count1=1\count0=0 #1}% % \def\curve#1{\nosymbol\count1=3\count0=0\count29=0% \immediate\openout\eIns\jobname.co1 #1\nosymbol% \immediate\write\eIns{-1}\immediate\closeout\eIns% \ifnum\count0<2 \messAge{\curveIgnored}\fi\relax% \ifnum\count0=2 \advance\count19 by\count29\relax% \ifnum\count19=0 \immediate\openin\eIns\jobname.co1% \immediate\read\eIns to\zeIle% \immediate\read\eIns to\zeIle\dimen9=\zeIle% \immediate\read\eIns to\zeIle\dimen10=\zeIle% \immediate\closein\eIns\docOnnect\fi\else\dOcurve\fi}% % \def\absdOcurve{\relax% \ifdim\dimen11<0\em \multiply\dimen11 by-1\fi\relax}% % \def\dOcurve{\count20=\eIns\count21=\zwEi\count27\dimen0% \divide\count27 by175\multiply\count27 by\count27% \count39=0\loop\count38=0\ifnum\count20=\eIns % \immediate\openin\count20\jobname.co1% \immediate\openout\count21\jobname.co2\else% \immediate\openin\count20\jobname.co2% \immediate\openout\count21\jobname.co1\fi% \count0=0\read\count20 to\zeIle\count29=\zeIle\relax% \dacApo\ifnum\count29>-1 \dimen12\dimen9\dimen13\dimen10% \read\count20 to\zeIle\dimen9=\zeIle\read\count20 to\zeIle% \dimen10=\zeIle\advance\count0 by1\relax\ifnum\count0=2 % \dimen34\dimen9\dimen35\dimen10\count35=\count29% \dimen42\dimen9\dimen43\dimen10\count43=\count29\fi% \ifnum\count0=1 \dimen32\dimen9\dimen33\dimen10% \count33=\count29\dimen40\dimen9\dimen41\dimen10% \count41=\count29\fi\ifnum\count0=3 % \dimen44\dimen9\dimen45\dimen10\count45=\count29% \ifnum\count33=0 \ifnum\count35=2 \dimen31\dimen33% \dimen30\dimen34\multiply\dimen30 by2% \advance\dimen30 by-\dimen32\fi\relax% \ifnum\count35=1 \dimen30\dimen32\dimen31\dimen35% \multiply\dimen31 by2\advance\dimen31 by-\dimen33\fi\relax% \ifnum\count35=0 \dimen30\dimen9\dimen31\dimen10\fi\fi\fi% \relax\ifnum\count0>3 \helpdOcurve\dimen44\dimen9% \dimen45\dimen10\count45=\count29\fi\relax% \ifnum\count0>2 \reallydOcurve\fi\count37=\count29% \read\count20 to\zeIle\count29=\zeIle\fi\relax% \ifnum\count29>-1 \alfIne\relax% \ifnum\count0=2 \ifnum\count33=2 \dimen31\dimen35% \dimen30\dimen32\multiply\dimen30 by2% \advance\dimen30 by-\dimen34\count35=0\fi\relax% \ifnum\count33=1 \dimen30\dimen34\dimen31\dimen33% \multiply\dimen31 by2\advance\dimen31 by-\dimen35% \count35=0\fi\relax% \ifnum\count35=2 \dimen31\dimen33\dimen30\dimen34% \multiply\dimen30 by2\advance\dimen30 by-\dimen32\fi% \ifnum\count35=1 \dimen30\dimen32\dimen31\dimen35% \multiply\dimen31 by2\advance\dimen31 by-\dimen33\fi% \dimen44\dimen30\dimen45\dimen31\else\dimen12\dimen9% \dimen13\dimen10\count37=\count45\helpdOcurve% \dimen44\dimen30\dimen45\dimen31\count45=\count31\fi% \reallydOcurve\immediate\write\count21{\the\count37}% \immediate\write\count21{\the\dimen9}% \immediate\write\count21{\the\dimen10}% \immediate\write\count21{-1}% \immediate\closein\count20\immediate\closeout\count21% \advance\count38 by1\message{\the\count38}% \count11=\count21\count21=\count20\count20=\count11% \ifnum\count38=\count39 \count38=999\else% \count39=\count38\fi\relax% \ifnum\count38<99 \repeat\relax\ifnum\count20=\eIns % \immediate\openin\count20\jobname.co1\else% \immediate\openin\count20\jobname.co2\fi% \read\count20 to\zeIle\count29=\zeIle% \read\count20 to\zeIle\dimen40=\zeIle% \advance\dimen40 by.5\wd1% \read\count20 to\zeIle\dimen41=\zeIle% %\advance\dimen41 by.5\wd1% \read\count20 to\zeIle\count29=\zeIle\relax% \dacApo\read\count20 to\zeIle\dimen42=\zeIle% \advance\dimen42 by.5\wd1\read\count20 to\zeIle% \dimen43=\zeIle% %\advance\dimen43 by.5\wd1% \dimen9\dimen40\dimen10\dimen41\dimen12\dimen42% \dimen13\dimen43\dimen40\dimen42\dimen41\dimen43% \docOnnect\read\count20 to\zeIle\count29=\zeIle\relax% \ifnum\count29>-1 \alfIne\immediate\closein\count20\relax}% % \def\helpdOcurve{% \dimen30\dimen32\dimen31\dimen33\count31=\count33% \dimen32\dimen34\dimen33\dimen35\count33=\count35% \dimen40\dimen42\dimen41\dimen43\count41=\count43% \dimen34\dimen12\dimen35\dimen13\count35=\count37% \dimen42\dimen34\dimen43\dimen35\count43=\count35}% % \def\reallydOcurve{% \ifnum\count33=2 \dimen31\dimen35\dimen30\dimen32% \multiply\dimen30 by2\advance\dimen30 by-\dimen34\fi% \ifnum\count33=1 \dimen30\dimen34\dimen31\dimen33% \multiply\dimen31 by2\advance\dimen31 by-\dimen35\fi% \ifnum\count43=2 \dimen45\dimen41\dimen44\dimen42% \multiply\dimen44 by2\advance\dimen44 by-\dimen40\fi% \ifnum\count43=1 \dimen44\dimen40\dimen45\dimen43% \multiply\dimen45 by2\advance\dimen45 by-\dimen41\fi% \immediate\write\count21{\the\count33}% \immediate\write\count21{\the\dimen32}% \immediate\write\count21{\the\dimen33}% \advance\count38 by1\relax\dimen11\dimen32% \advance\dimen11 by-\dimen34\dimen14\dimen33% \advance\dimen14 by-\dimen35\divide\dimen11 by1000% \divide\dimen14 by1000\count251\dimen11% \multiply\count251 by\count251\count252\dimen14% \multiply\count252 by\count252\advance\count252 by\count251% \relax\ifnum\count252>\count27 \kreisdOcurve% \dimen23\dimen25\dimen24\dimen26\count255=\count251% \kreisdOcurve\relax\advance\count255 by\count251\relax% \ifnum\count255<6 \advance\dimen25 by\dimen23% \divide\dimen25 by2\advance\dimen26 by\dimen24% \divide\dimen26 by2\immediate\write\count21{0}% \immediate\write\count21{\the\dimen25}% \immediate\write\count21{\the\dimen26}% \advance\count38 by1\fi\fi\relax}% % \def\kreisdOcurve{\count251=0\dimen25\dimen32% \advance\dimen25 by\dimen34\divide\dimen25 by2% \dimen26\dimen33\advance\dimen26 by\dimen35% \divide\dimen26 by2\ifnum\count33=2 \dimen36\dimen32% \dimen11\dimen34\advance\dimen11 by-\dimen32% \dimen14\dimen33\advance\dimen14 by-\dimen35% \divide\dimen14 by1000\divide\dimen11 by\dimen14% \dimen37\dimen32\advance\dimen37 by-\dimen25% \divide\dimen37 by1000\multiply\dimen37 by\dimen11% \advance\dimen37 by\dimen26\count251=1\fi\relax% \ifnum\count33=1 \dimen37\dimen33\dimen11\dimen33% \advance\dimen11 by-\dimen35\dimen14\dimen34% \advance\dimen14 by-\dimen32\divide\dimen14 by1000% \divide\dimen11 by\dimen14\dimen36\dimen33% \advance\dimen36 by-\dimen26\divide\dimen36 by1000% \multiply\dimen36 by\dimen11\advance\dimen36 by\dimen25% \count251=1\fi\relax\ifnum\count251=0 \dimen11\dimen34% \advance\dimen11 by-\dimen32\dimen14\dimen33% \advance\dimen14 by-\dimen31\divide\dimen11 by1000% \divide\dimen14 by1000\multiply\dimen14 by\dimen11% \dimen11\dimen32\advance\dimen11 by-\dimen30% \dimen15\dimen35\divide\dimen11 by1000% \advance\dimen15 by-\dimen33\divide\dimen15 by1000% \multiply\dimen11 by\dimen15\advance\dimen11 by-\dimen14% \absdOcurve\ifdim\dimen11<.5\pt \dimen15\dimen25% \advance\dimen15 by-\dimen32\divide\dimen15 by1000% \dimen14\dimen26\advance\dimen14 by-\dimen33% \divide\dimen14 by1000\multiply\dimen15 by\dimen15% \multiply\dimen14 by\dimen14\advance\dimen15 by\dimen14% \count4\dimen15\rOot\count251=\count3% \multiply\count251 by1000\dimen15\dimen32% \advance\dimen15 by-\dimen30\dimen14\dimen33% \advance\dimen14 by-\dimen31\divide\dimen15 by1000% \divide\dimen14 by1000\count4\dimen15% \multiply\count4 by\count4\count3\dimen14% \multiply\count3 by\count3\advance\count4 by\count3\rOot% \divide\count251 by\count3\multiply\dimen15 by\count251% \multiply\dimen14 by\count251\advance\dimen15 by\dimen32% \advance\dimen14 by\dimen33\advance\dimen25 by\dimen15% \advance\dimen26 by\dimen14\divide\dimen25 by2% \divide\dimen26 by2\relax\count251=2\ifdim\dimen11=0\em % \count251=3\fi\fi\fi\relax% \ifnum\count251=0 \dimen36\dimen32\count252=\count33\relax% \ifnum\count252=0 \dimen11\dimen31% \advance\dimen11 by-\dimen33\absdOcurve% \ifdim\dimen11<\dimen0 \count252=2\dimen36\dimen30% \advance\dimen36 by\dimen32\divide\dimen36 by2\fi\fi% \dimen11\dimen32\advance\dimen11 by-\dimen34% \dimen14\dimen35\advance\dimen14 by-\dimen33% \ifnum\count252=0 \dimen15\dimen14\relax% \ifdim\dimen15<0\em \multiply\dimen15 by-1\fi\relax% \ifdim\dimen15<\dimen0 \dimen36\dimen32% \advance\dimen36 by\dimen34\divide\dimen36 by2% \dimen11\dimen30\advance\dimen11 by-\dimen32% \dimen14\dimen33\advance\dimen14 by-\dimen31% \dimen25\dimen30\advance\dimen25 by\dimen32% \divide\dimen25 by2\dimen26\dimen31% \advance\dimen26 by\dimen33\divide\dimen26 by2% \count252=2\fi\fi\relax% \ifnum\count252=2 \divide\dimen14 by1000% \divide\dimen11 by\dimen14\dimen37\dimen36% \advance\dimen37 by-\dimen25\divide\dimen37 by1000% \multiply\dimen37 by\dimen11\advance\dimen37 by\dimen26% \dimen25\dimen32\advance\dimen25 by\dimen34% \divide\dimen25 by2\dimen26\dimen33% \advance\dimen26 by\dimen35\divide\dimen26 by2\fi% \ifnum\count252=1 \dimen37\dimen33\divide\dimen11 by1000% \divide\dimen14 by\dimen11\dimen36\dimen26% \advance\dimen36 by-\dimen37\divide\dimen36 by1000% \multiply\dimen36 by\dimen14\advance\dimen36 by\dimen25\fi% \ifnum\count252=0 \dimen19\dimen31% \advance\dimen19 by-\dimen35\dimen15\dimen34% \dimen37\dimen19\relax% \ifdim\dimen37<0\em \multiply\dimen37 by-1\fi\relax% \ifdim\dimen37<\dimen0 \dimen36\dimen34% \advance\dimen36 by\dimen30\divide\dimen36 by2% \advance\dimen15 by-\dimen32\dimen19\dimen33% \advance\dimen19 by-\dimen35\divide\dimen19 by1000% \dimen37\dimen36\divide\dimen15 by\dimen19% \advance\dimen37 by-\dimen25\divide\dimen37 by1000% \multiply\dimen37 by\dimen15\advance\dimen37 by\dimen26% \else\advance\dimen15 by-\dimen30\divide\dimen14 by1000% \divide\dimen19 by1000\dimen21\dimen34% \advance\dimen21 by\dimen30\divide\dimen21 by2% \dimen22\dimen35\advance\dimen22 by\dimen31% \divide\dimen22 by2\divide\dimen11 by\dimen14% \divide\dimen15 by\dimen19\count253\dimen11% \count254\dimen15\dimen36\dimen25\divide\dimen36 by1000% \multiply\dimen36 by\count253\divide\dimen21 by1000% \multiply\dimen21 by\count254\advance\dimen36 by-\dimen21% \advance\dimen36 by\dimen22\advance\dimen36 by-\dimen26% \advance\count253 by-\count254\divide\dimen36 by\count253% \dimen37\dimen36\multiply\dimen36 by1000% \multiply\dimen37 by\count254\advance\dimen37 by-\dimen21% \advance\dimen37 by\dimen22\fi\fi\fi\relax% \ifnum\count251<2 \dimen11\dimen36% \advance\dimen11 by-\dimen32\absdOcurve\dimen14\dimen11% \dimen11\dimen37\advance\dimen11 by-\dimen33\absdOcurve% \ifdim\dimen11<\dimen14 \dimen15\dimen11\dimen11\dimen14% \dimen14\dimen15\fi\count48=1000\divide\dimen11 by1000% \divide\dimen14 by1000\relax% \ifdim\dimen11>.1\pt \divide\dimen11 by10% \divide\dimen14 by10\multiply\count48 by10\fi\relax% \ifdim\dimen11>.1\pt \divide\dimen11 by10% \divide\dimen14 by10\multiply\count48 by10\fi\relax% \ifdim\dimen11>.1\pt \divide\dimen11 by10% \divide\dimen14 by10\multiply\count48 by10\fi\relax% \ifdim\dimen11>.1\pt \divide\dimen11 by10% \divide\dimen14 by10\multiply\count48 by10\fi\relax% \ifdim\dimen11>.1\pt \divide\dimen11 by10% \divide\dimen14 by10\multiply\count48 by10\fi\relax% \multiply\dimen11 by\dimen11\multiply\dimen14 by\dimen14% \advance\dimen11 by\dimen14\count4\dimen11\rOot% \multiply\count3 by1000\count252=\count3\dimen11\dimen25% \advance\dimen11 by-\dimen36\divide\dimen11 by\count48% \count4\dimen11\multiply\count4 by\count4\dimen14\dimen26% \advance\dimen14 by-\dimen37\divide\dimen14 by\count48% \count3\dimen14\multiply\count3 by\count3% \advance\count4 by\count3\rOot\divide\count252 by\count3% \relax\ifnum\count252=1000 \relax\else\ifnum\count48>1000 % \divide\count48 by1000\multiply\dimen11 by\count48% \multiply\dimen14 by\count48\fi% \multiply\dimen11 by\count252\dimen25\dimen36% \dimen26\dimen37\advance\dimen25 by\dimen11% \multiply\dimen14 by\count252\advance\dimen26 by\dimen14% \fi\fi\dimen11\dimen32\dimen32\dimen42\dimen42\dimen11% \dimen11\dimen34\dimen34\dimen40\dimen40\dimen11% \dimen11\dimen33\dimen33\dimen43\dimen43\dimen11% \dimen11\dimen35\dimen35\dimen41\dimen41\dimen11% \dimen11\dimen30\dimen30\dimen44\dimen44\dimen11% \dimen11\dimen31\dimen31\dimen45\dimen45\dimen11% \count4=\count33\count33=\count43\count43=\count4}% % \def\lsqline#1{\ownsymbol{\kern.02\em{\tt x}}\count1=2% \count0=0\count30=0\count34=0\count32=0\count33=0\relax#1% \nosymbol\count31=\count34\divide\count31 by1000% \divide\count31 by\count0\divide\count32 by\count31% \multiply\count32 by-1000\advance\count32 by\count30% \divide\count33 by\count31\multiply\count33 by-1000% \advance\count33 by\count34\multiply\count32 by10% \divide\count33 by100\divide\count32 by\count33% 1000 slope \multiply\count31 by\count32\divide\count30 by\count0% \advance\count30 by-\count31% intercept \dimen12=0\em\dimen13=\count30sp\relax% \ifdim\dimen13>\dimen4 \dimen12\dimen4% \advance\dimen12 by-\dimen13\dimen13\dimen4% \multiply\dimen12 by1000\divide\dimen12 by\count32\fi% \ifdim\dimen13<0\em \dimen12-\dimen13\dimen13=0\em% \multiply\dimen12 by1000\divide\dimen12 by\count32\fi% \advance\dimen13 by\dimen6\advance\dimen12 by\dimen5% \dimen9\dimen3\count40\dimen9\divide\count40 by1000% \multiply\count40 by\count32\advance\count40 by\count30% \dimen10=\count40sp\relax% \ifdim\dimen10>\dimen4 \dimen9\dimen4\dimen10\dimen4% \advance\dimen9 by-\count30sp\multiply\dimen9 by1000% \divide\dimen9 by\count32\fi% \ifdim\dimen10<0\em \dimen9-\count30sp\dimen10=0\em% \multiply\dimen9 by1000\divide\dimen9 by\count32\fi% \advance\dimen10 by\dimen6\advance\dimen9 by\dimen5% \docOnnect}% % \def\dacApo#1\alfIne{\def\dacApoalfine{#1}\dacApoal}% % \def\dacApoal{\dacApoalfine\let\fIne\dacApoal\else% \let\fIne\relax\fi\fIne}% % \def\rOot{\count3=\count4\divide\count3 by4% \ifnum\count3>0 \rOo\fi}% % Compute \count3=sqrt(\count4) by a recursion formula. \def\rOo{\roOt\let\roOz\rOo\else\let\roOz\relax\fi\roOz}% \def\roOt{\count5=\count4\divide\count5 by\count3% \advance\count5 by\count3\count6=\count5\divide\count6 by2% \advance\count6 by5\ifnum\count3>\count6 \count3=\count5% \divide\count3 by2\relax}% % \def\docOnnect{\ifdim\dimen9=\dimen12% \advance\dimen12 by.5\wd2\advance\dimen10 by.5\dp2% \advance\dimen10 by.5\ht2\advance\dimen13 by.5\dp2% \advance\dimen13 by.5\ht2\kern\dimen12% \ifdim\dimen10>\dimen13 \advance\dimen13 by-\dimen0% \vrule width\dimen0 height\dimen10 depth-\dimen13\else% \advance\dimen10 by-\dimen0% \vrule width\dimen0 height\dimen13 depth-\dimen10\fi% \kern-\dimen0\kern-\dimen12\else\ifdim\dimen10=\dimen13 % \advance\dimen12 by.5\wd2\advance\dimen9 by.5\wd2% \ifdim\dimen9>\dimen12 \dimen10\dimen9\dimen9\dimen12% \dimen12\dimen10\fi\advance\dimen12 by-\dimen9% \advance\dimen13 by.5\dp2\advance\dimen13 by.5\ht2% \dimen10\dimen13\advance\dimen10 by-\dimen0\kern\dimen9% \vrule width\dimen12 height\dimen13 depth-\dimen10% \kern-\dimen9\kern-\dimen12\else\dotcOnnect\fi\fi}% % \def\dotcOnnect{\dimen16\dimen9\advance\dimen16 by-\dimen12% \divide\dimen16 by10000\dimen17\dimen10% \advance\dimen17 by-\dimen13\divide\dimen17 by10000% \count3\dimen16\multiply\count3 by\dimen16% \count4\dimen17\multiply\count4 by\dimen17% \advance\count4 by\count3\rOot\count2=0\count4=10000% \advance\count4 by-\count2\count6=\wd1% \multiply\count6 by2\divide\count6 by3% \divide\count6 by\count3\advance\dimen13 by.5\dp2% \advance\dimen12 by.5\wd2\advance\dimen13 by.5\ht2% \kern\dimen12\loop\dimen32=0\em% \advance\dimen32 by\count2\dimen16\dimen18\dimen13% \advance\dimen18 by\count2\dimen17\kern\dimen32% \raise\dimen18\copy1\kern-\wd1\kern-\dimen32% \advance\count2 by\count6% \ifnum\count2<\count4 \repeat\kern-\dimen12}% % \def\hpoint#1;{\ifnum\count1<3 \messAge{\hpointIgnored}% \else\count29=2\point#1;\fi}% % \def\vpoint#1;{\ifnum\count1<3 \messAge{\vpointIgnored}% \else\count29=1\point#1;\fi}% % \def\point#1.#2,#3.#4;{\dimen9=#1.#2\pt\dimen10\dimen63% \advance\dimen9 by-\dimen61% \relax\count9\dimen9\count2\dimen10\multiply\count9 by10% \count3=\count9\divide\count3 by\count2% \count11=\count2\multiply\count11 by\count3% \advance\count9 by-\count11\multiply\count9 by10% \count4=\count9\divide\count4 by\count2% \count11=\count2\multiply\count11 by\count4% \advance\count9 by-\count11\multiply\count9 by10% \count5=\count9\divide\count5 by\count2% \count11=\count2\multiply\count11 by\count5% \advance\count9 by-\count11\multiply\count9 by10% \count6=\count9\divide\count6 by\count2% \count11=\count2\multiply\count11 by\count6% \advance\count9 by-\count11\multiply\count9 by10% \count7=\count9\divide\count7 by\count2% \count11=\count2\multiply\count11 by\count7% \advance\count9 by-\count11\multiply\count9 by10% \count8=\count9\divide\count8 by\count2% \dimen9\dimen5\dimen10\dimen3% \divide\dimen10 by10\advance\dimen9 by\count3\dimen10% \divide\dimen10 by10\advance\dimen9 by\count4\dimen10% \divide\dimen10 by10\advance\dimen9 by\count5\dimen10% \divide\dimen10 by10\advance\dimen9 by\count6\dimen10% \divide\dimen10 by10\advance\dimen9 by\count7\dimen10% \divide\dimen10 by10\advance\dimen9 by\count8\dimen10% \dimen30\dimen9\advance\dimen30 by-\dimen5% \advance\dimen9 by-.5\wd2% \dimen10=#3.#4\pt\dimen11\dimen64% \advance\dimen10 by-\dimen62% \count9\dimen10\count2\dimen11\multiply\count9 by10% \count3=\count9\divide\count3 by\count2% \count11=\count2\multiply\count11 by\count3% \advance\count9 by-\count11\multiply\count9 by10% \count4=\count9\divide\count4 by\count2% \count11=\count2\multiply\count11 by\count4% \advance\count9 by-\count11\multiply\count9 by10% \count5=\count9\divide\count5 by\count2% \count11=\count2\multiply\count11 by\count5% \advance\count9 by-\count11\multiply\count9 by10% \count6=\count9\divide\count6 by\count2% \count11=\count2\multiply\count11 by\count6% \advance\count9 by-\count11\multiply\count9 by10% \count7=\count9\divide\count7 by\count2% \count11=\count2\multiply\count11 by\count7% \advance\count9 by-\count11\multiply\count9 by10% \count8=\count9\divide\count8 by\count2% \dimen10\dimen6\dimen11\dimen4% \divide\dimen11 by10\advance\dimen10 by\count3\dimen11% \divide\dimen11 by10\advance\dimen10 by\count4\dimen11% \divide\dimen11 by10\advance\dimen10 by\count5\dimen11% \divide\dimen11 by10\advance\dimen10 by\count6\dimen11% \divide\dimen11 by10\advance\dimen10 by\count7\dimen11% \divide\dimen11 by10\advance\dimen10 by\count8\dimen11% \dimen32\dimen10\advance\dimen32 by-\dimen6% \advance\dimen10 by-.5\ht2\advance\dimen10 by-.5\dp2% \raise\dimen10\hbox to\dimen1{\kern\dimen9\copy2\hss}% \kern-\dimen1% % \ifnum\count1=2 \advance\count0 by1\count11\dimen30% \advance\count34 by\count11\divide\count11 by1000% \count13\dimen32\advance\count30 by\count13\count3=\count11% \multiply\count3 by\count11\advance\count33 by\count3% \divide\count13 by1000\multiply\count13 by\count11% \advance\count32 by\count13\fi\relax% % \ifnum\count1=3 \advance\dimen32 by\dimen6% \advance\dimen30 by\dimen5% \immediate\write\eIns{\the\count29}% \advance\dimen30 by-.5\dimen0% \immediate\write\eIns{\the\dimen30}% \advance\dimen32 by.5\dimen0% \immediate\write\eIns{\the\dimen32}\advance\count0 by1% \ifnum\count0=2 \dimen30\dimen12\dimen32\dimen13\fi\fi% \relax% % \ifnum\count1=1 \ifnum\count0=0 \count0=1\else% \dimen30\dimen9\dimen31\dimen10\docOnnect\dimen10\dimen31% \dimen9\dimen30\fi\fi% % \dimen12\dimen9\dimen13\dimen10\count19=\count29\count29=0}% % \def\nomOrediagrams{\def\nogrid{}\def\noscale{}% \def\noaxis{}\def\xaxis{}\def\yaxis{}\def\printsymbol{}% \def\ownsymbol{}\def\symbol{}\def\nosymbol{}\def\values{}% \def\curve{}\def\rOot{}\def\connect{}\def\absdOcurve{}% \def\dOcurve{}\def\helpdOcurve{}\def\reallydOcurve{}% \def\lsqline{}\def\dacApo\alfIne{}\def\rOo{}\def\roOt{}% \def\dacApoal{}\def\docOnnect{}\def\dotcOnnect{}% \def\hpoint{}\def\vpoint{}\def\point{}\def\diagram{}% \ifnum\count17=\zwEi \global\advance\count17 by-2\fi}% % \def\nomorediagrams{\nomOrediagrams\def\nomOrediagrams{}}% % \def\diagram#1#2{\hbox{\tenrm% \catcode`\ 9\catcode`\^^M9\catcode`\^^I9% \dimendef\em250\em1em\dimendef\pt249\pt1pt% \dimen252\fontdimen2\tenrm\fontdimen2\tenrm0\em% \dimen253\fontdimen3\tenrm\fontdimen3\tenrm0\em% \dimen254\fontdimen4\tenrm\fontdimen4\tenrm0\em% \dimen255\fontdimen7\tenrm\fontdimen7\tenrm0\em% \dimen251\parindent\parindent0\em% \count0=1% grid flag, point counter \count1=0% axis definition counter, curve type selector \count20=0% axis marker \count30=1% xaxis scaling marker \count40=1% yaxis scaling marker \count31=1% xaxis printing marker \count41=1% yaxis printing marker \dimen44=.07\em% stroke thickness \dimen1=0\em% xlength \dimen2=0\em% ylength \dimen0\dimen44% \setbox4\hbox{-}#1\setbox2\hbox{0}\ifnum\count1=3 % \vbox to\dimen2{\dimen5\dimen1\advance\dimen5 by-\dimen3% \dimen6\dimen2\advance\dimen6 by-\dimen4% \hbox to\dimen1{% \vbox to\dimen2{% \ifdim\wd1>0\em \hbox to\wd1{\hss$\Bigl\uparrow$\hss}% \vskip2\em\box1\fi\vfill\hbox to\dimen1{\hfill\box0}% }% \kern-\dimen1\ifnum\count41=0 \dimen0=0\em\fi% \raise\dimen2\hbox to\dimen1{\hfill% \vrule width\dimen0 depth\dimen4 height0\em\kern\dimen3}% \kern-\dimen1\dimen0\dimen44\ifnum\count31=0 % \dimen0=0\em\fi\raise\dimen6\hbox to\dimen1{\hfill% \advance\dimen3 by\dimen0% \vrule width\dimen3 height0\em depth\dimen0}\kern-\dimen1% \count19=0\advance\dimen8 by-1.5\em\xaxIs\dimen0\dimen44% \ifnum\count31=0 \dimen0=0\em\else\divide\dimen0 by2\fi% \advance\dimen1 by-.5\dimen7\advance\dimen3 by-.5\dimen7% \advance\dimen4 by-.5\ht2\dimen9=0\em% \ifnum\count0=1 \dimen9\dimen4\fi\raise\dimen6% \hbox to\dimen1{\kern\dimen5\loop% \vrule width\dimen0 depth.3\em height\dimen9% \ifnum\count12<\count14 \advance\count12 by\count16\hss% \else\count19=1\fi\relax\ifnum\count19<1 \repeat% }\kern-\dimen1\dimen10\dimen6\advance\dimen10 by-.5\ht2 % \dimen0\dimen44\ifnum\count41=0 \dimen0=0\em\else% \divide\dimen0 by2\fi\yaxIs\dimen9=.3\em\ifnum\count0=1% \advance\dimen9 by\dimen3\fi\raise\dimen6% \hbox to\dimen1{\kern\dimen5\kern-.3\em% \vbox to\dimen4{\count19=0\count29=0% \setbox1\hbox{% \vrule width\dimen9 depth\dimen0 height0\em}% \loop\advance\count19 by1% \advance\count22 by\count26\ifnum\count22<\count24 % \else\count29=1\fi\relax\ifnum\count29=0 \repeat% \loop\copy1\advance\count19 by-1\relax% \ifnum\count19>0 \vss\repeat}% \hfill}\kern-\dimen1\dimen0\dimen44% \setbox1\hbox{\vrule width\dimen0 height0\em depth\dimen0}% \count9=\count14\divide\count9 by\count18\count15=\count9% \multiply\count15 by-\count18\advance\count15 by\count14% \relax\ifnum\count15<0 \multiply\count15 by-1\fi\relax% \count3=\count18\divide\count3 by10% \setbox3\hbox{\the\count3}% \dimen39=.\number\count15\pt\relax% \setbox4\hbox{\the\count15}\relax\ifdim\wd3=\wd4 \else% \setbox4\hbox{0\the\count15}\relax\ifdim\wd3=\wd4 % \divide\dimen39 by10\relax\else% \setbox4\hbox{00\the\count15}\relax\ifdim\wd3=\wd4 % \divide\dimen39 by100\relax\else% \setbox4\hbox{000\the\count15}\relax\ifdim\wd3=\wd4 % \divide\dimen39 by1000\relax\else% \setbox4\hbox{0000\the\count15}\relax\ifdim\wd3=\wd4 % \divide\dimen39 by10000\relax\else% \setbox4\hbox{00000\the\count15}\relax\ifdim\wd3=\wd4 % \divide\dimen39 by100000\relax\fi\fi\fi\fi\fi\fi% \ifnum\count9<0 \multiply\dimen39 by-1\fi\relax% \advance\dimen39 by\count9\pt\relax% \count9=\count24\divide\count9 by\count28\count25=\count9% \multiply\count25 by-\count28\advance\count25 by\count24% \relax\ifnum\count25<0 \multiply\count25 by-1\fi\relax% \count3=\count28\divide\count3 by10% \setbox5\hbox{\the\count3}% \dimen49=.\number\count25\pt\relax% \setbox4\hbox{\the\count25}\relax\ifdim\wd5=\wd4 \else% \setbox4\hbox{0\the\count25}\relax\ifdim\wd5=\wd4 % \divide\dimen49 by10\relax\else% \setbox4\hbox{00\the\count25}\relax\ifdim\wd5=\wd4 % \divide\dimen49 by100\relax\else% \setbox4\hbox{000\the\count25}\relax\ifdim\wd5=\wd4 % \divide\dimen49 by1000\relax\else% \setbox4\hbox{0000\the\count25}\relax\ifdim\wd5=\wd4 % \divide\dimen49 by10000\relax\else% \setbox4\hbox{00000\the\count25}\relax\ifdim\wd5=\wd4 % \divide\dimen49 by100000\relax\fi\fi\fi\fi\fi\fi% \ifnum\count9<0 \multiply\dimen49 by-1\fi\relax% \advance\dimen49 by\count9\pt\relax#2\hss}% }\else\messAge{\diagramIgnored}\fi% \fontdimen2\tenrm\dimen252\fontdimen3\tenrm\dimen253% \fontdimen4\tenrm\dimen254\fontdimen7\tenrm\dimen255% \parindent\dimen251}}% % \def\xaxIs{\ifnum\count30=1 \raise\dimen8\hbox to\dimen1{% \kern\dimen5\kern-.5\dimen7\loop\count11=\count12% \divide\count11 by\count18\count13=\count11% \multiply\count13 by-\count18\advance\count13 by\count12% \relax\ifnum\count13<0 \multiply\count13 by-1\fi% \ifnum\count11<0 \multiply\count11 by-1\fi% \setbox0\hbox{\the\count13}% \ifdim\wd0<\dimen13 \setbox0\hbox{0\the\count13}\fi% \ifdim\wd0<\dimen13 \setbox0\hbox{00\the\count13}\fi% \ifdim\wd0<\dimen13 \setbox0\hbox{000\the\count13}\fi% \ifdim\wd0<\dimen13 \setbox0\hbox{0000\the\count13}\fi% \ifdim\wd0<\dimen13 \setbox0\hbox{00000\the\count13}\fi% \ifdim\wd0<\dimen13 \setbox0\hbox{000000\the\count13}\fi% \hbox to\dimen7{% \hss\ifnum\count12<0 $-$\fi\number\count11.\box0}% \ifnum\count12<\count14 \advance\count12 by\count16\hss% \else\count19=1\fi\relax\ifnum\count19<1 \repeat% }\kern-\dimen1\fi}% % \def\yaxIs{\ifnum\count40=1 \raise\dimen10% \hbox to\dimen5{\advance\dimen4 by\ht2% \vbox to\dimen4{\count19=0\count29=0\loop% \advance\count19 by1\count11=\count22% \divide\count11 by\count28\count23=\count11% \multiply\count23 by-\count28\advance\count23 by\count22% \relax\ifnum\count23<0 \multiply\count23 by-1\fi% \ifnum\count11<0 \multiply\count11 by-1\fi% \setbox0\hbox{\the\count23}% \ifdim\wd0<\dimen14 \setbox0\hbox{0\the\count23}\fi% \ifdim\wd0<\dimen14 \setbox0\hbox{00\the\count23}\fi% \ifdim\wd0<\dimen14 \setbox0\hbox{000\the\count23}\fi% \ifdim\wd0<\dimen14 \setbox0\hbox{0000\the\count23}\fi% \ifdim\wd0<\dimen14 \setbox0\hbox{00000\the\count23}\fi% \ifdim\wd0<\dimen14 \setbox0\hbox{000000\the\count23}\fi% \setbox\count19\hbox to\dimen5{\hfill% \ifnum\count22<0 $-$\fi\number\count11.\box0\kern.5\em}% \advance\count22 by\count26\ifnum\count22<\count24 % \else\count29=1\fi\relax\ifnum\count29=0 \repeat% \loop\box\count19\advance\count19 by-1\relax% \ifnum\count19>0 \vss\repeat}% }\kern-\dimen5\fi}%