apl>" <-APL2-------------------- sam321.txt ----------------------------> apl>)run cap2/sample/graph.inc apl>" <-APL2-------------------- graph.txt -----------------------------> apl>" Legend describing various global values: apl>" apl>" World coordinates(wc) are those of the real data. apl>" Graph coordinates(gc) are those of the graph. apl>" apl>" caption - Override to text for graph caption. If null, a caption apl>" will be generated. The graph function resets the global apl>" caption variable to null at the end of its processing. apl>" apl>" hk ------ Constant coefficient of input. If xr=1 (see below) then apl>" hk becomes the constant imaginary coefficient for all apl>" values of x on the graph. If xr=0, hk will be the constant apl>" real coefficient. apl>" apl>" htl ----- 0 = both, 1 = headers, 2 = trailers, 3 = neither. apl>" apl>" maxx ---- Maximum x axis value in world coordinates. apl>" apl>" maxy ---- Maximum y axis value in world coordinates. apl>" apl>" minx ---- Minimum x axis value in world coordinates. apl>" apl>" miny ---- Minimum y axis value in world coordinates. apl>" apl>" mgc ----- Vertical margin in graphic coordinates. apl>" apl>" n ------- Synonymous with hk (see above). The x values to which apl>" the function is applied to obtain y values are derived apl>" by first creating xwc as a vector of integers uniformly apl>" distributed between minx and maxx inclusive. Then, either apl>" 'x#(nX0j1)+xwc' or 'x#n+0j1Xxwc' is evaluated. apl>" apl>" nlb ----- 1 = Label the curve with the n value. apl>" apl>" points -- Number of points to generate. apl>" apl>" xgc ----- Array of x values for data points in graph coordinates. apl>" apl>" xiv ----- x axis marker interval in world coordinates. apl>" apl>" xlin ---- Width of graph in inches. apl>" apl>" xpg ----- Divide xwc by xpg to get xgc. apl>" apl>" xpi ----- Array of three values for minx, maxx, and xiv, used when apl>" invoking the graph function and the array of x values apl>" spans -pi to +pi. apl>" apl>" xr ------ 1=vary real x coefficient, 0=vary imaginary coefficient, apl>" holding the other coefficient to the constant hk (see above.). apl>" apl>" xt ------ Used in a variety of places to temporarily generate apl>" graphics coordinates. apl>" apl>" xwc ----- Array of x values in world coordinates. apl>" apl>" yadj ---- Adjustment down to print text below a line. apl>" apl>" yabm ---- Maximum absolute value (|y) to appear on graph. apl>" apl>" ygc ----- Array of y values for data points in graph coordinates. apl>" apl>" ylin ---- Height of graph in inches. apl>" apl>" ymgn ---- Margin in inches at top and bottom of y axis. apl>" apl>" ypg ----- Divide ywc by ypg to get ygc. apl>" apl>" yt ------ Used in a variety of places to temporarily generate apl>" graphics coordinates. apl>" apl>" ywc ----- Array of y values for data points in world coordinates. apl>" apl>" Set global values. --------------------------------------------> apl>" apl>caption#'' " Empty caption causes one to be generated. apl>i#11 " Circle function code to extract imag. coef. of complex number. apl>points#200 " Number of data points to generate on graph. apl>r#9 " Circle function code to extract real coef. of complex number. apl>xlin#4.5 " Width of graph in inches. apl>" minx = -3.14159.... apl>" | maxx = 3.14159.... apl>" | | xiv apl>" | | | apl>" V V V apl>xpi#(O-1),(O1),O.25 apl>ylin#6 " Height of graph in inches. apl>ymgn#.2 " Margin in inches at top and bottom of y axis. apl>" apl>" <-----------------------------------------------------------------> apl>" Generates the LaTeX \put statements for the data points to appear apl>" on the graph. apl>" apl>Lex 'dodata' 1 apl>Gdodata [1] xgc#(xwc_minx)%xpg " xgc=x graphic coordinates for data points. [2] ygc#mgc+(ywc_miny)%ypg " ygc=y graphic coordinates for data points. [3] $bylabXI0=nlb " Branch if the curve is not to be labelled. [4] '%Label the curve' [5] xt#1Y(u=S/u#|ywc)/xgc " x coord where maximum/mininum occurs [6] yt#(_yadjX0>vs/ywc)+(vs#xt=xgc)/ygc " y coord of maximum/minimum [7] " Note: Calculation for yt works only if all minima occur below [8] " y axis, and all maxima occur above. [9] pcon,(xt,',',[1.5]yt),`Z'){n\#',(Fhk),'}' [10] bylab:'%Draw the data points' [11] pcon,((xgc#-1U1Uxgc),',',[1.5](ygc#-1U1Uygc)),circon [12] G apl>" <-----------------------------------------------------------------> apl>" Generate xwc and ywc, the arrays of x/y coordinates for the data apl>" points to appear on the graph. apl>" apl>Lex 'genxy' 1 apl>Ggenxy [1] xwc#minx+(xlwc#maxx_minx)X(-1+Ipoints+1)%points [2] $varyrealXIxr [3] x#hk+0j1Xxwc " real part is constant, imaginary varies. [4] $calcy " Branch to compute values of y for data points. [5] varyreal:x#(hkX0j1)+xwc " Imaginary is constant, real varies. [6] calcy:ywc#eOCfun " Compute values of y for data points [7] ywcm#yabm>|ywc " Mask of keepers, magnitudes of y < yabm. [8] xwc#ywcm/xwc " Pick the keepers. [9] ywc#ywcm/ywc " Pick the keepers. [10] G apl>" apl>" <-----------------------------------------------------------------> apl>" Main graph routine. apl>" apl>Lex 'graph' 1 apl>Gfun graph a [1] "Graphs the imaginary or real coefficient of result of fun. [2] " fun = expression to evaluate. [3] (htl nlb xr e yabm minx maxx xiv hk yiv yca)#a [4] genxy " Generate the data points. [5] $dataXIhtl>1 " Branch if htl greater than 1. [6] scale " Calculate global scaling values. [7] headers " Generate LaTeX figure headers. [8] data:dodata " Process and graph data points. [9] trailers " Generate Latex figure trailers, maybe. [10] G apl>" apl>" <-----------------------------------------------------------------> apl>" Generates the LaTeX statements to begin the graph. apl>" apl>Lex 'headers' 1 apl>Gheaders [1] '\begin{figure}[tbh]' [2] $gencapXI0=Rcaption " Branch if no caption override. [3] '\caption{',caption,'}' [4] $begin [5] gencap:$realcapXI(xr=1)&hk=0 " Branch if x data are not complex. [6] $ncaptionXInlb=0 " Branch if curves are not labelled with n value. [7] '\caption{Graph of y\#',(Fe),'O',fun,'+nX0j1}' [8] $begin [9] ncaption:$cplxcapXIxr " Branch if varying real coefficient. [10] '\caption{Graph of y\#',(Fe),'O',(-1Ufun),(Fhk),'+xX0j1}' [11] $begin [12] cplxcap:'\caption{Graph of y\#',(Fe),'O',fun,'+(n\#',(Fhk),')X0j1}' [13] $begin [14] realcap:'\caption{Graph of y\#',fun,'}' [15] begin:'\begin{center}' [16] '\setlength{\unitlength}{',(Flin),'in}' [17] '\begin{picture}(',(Fxlin%lin),',',(Fylin%lin),')' [18] '%Draw a frame around the picture' [19] ' \put(0,0){\line(1,0){',(Fxlgc),'}}% bottom' [20] ' \put(0,0){\line(0,1){',(Fylgc),'}}% left' [21] ' \put(0,',(Fylgc),'){\line(1,0){',(Fxlgc),'}}% top' [22] ' \put(',(Fxlgc),',0){\line(0,1){',(Fylgc),'}}% right' [23] '%Draw the x axis' [24] ' \put(0,',(Fxax),'){\line(1,0){',(Fxlgc),'}}%x axis' [25] xt#xoff%xpg [26] pcon,((xt,[1.5]','),xax),circon " Draw the x axis markers. [27] xt#xt_xpgX.1Xxmk<0 [28] yt#xax+((.05%lin)Xxax=mgc)_yadjXxax>mgc [29] $dopaxXIpix [30] '%Draw the x axis marker values' [31] pcon,xt,',',yt,econ,xmk,[1.5]scon [32] $doyax [33] dopax:'%Draw the x axis marker values in pi' [34] picon#(`Z'\frac{') ,`1 '\pi}{4}' '\pi}{2}' '3\pi}{4}' [35] picon#('-',`1`Rpicon),'0',picon [36] pcon,xt,',',yt,econ,picon,[1.5]scon [37] doyax:'%Draw the y axis' [38] $putymkXI(yax=0) [39] ' \put(',(Fyax),',0){\line(0,1){',(Fylgc),'}}%y axis' [40] putymk:'%Draw the y axis markers' [41] ymask#ymk^=0 [42] yt#ymask/mgc+(ymk_miny)%ypg [43] pcon,yax,',',yt,[1.5]circon [44] '%Draw the y axis marker values' [45] xt#yax+.05%lin [46] yt#yt_ypgX.1X(ymask/ymk)<0 [47] pcon,xt,',',yt,econ,(ymask/ymk),[1.5]scon [48] G apl>" apl>" <-----------------------------------------------------------------> apl>" Calculates a variety of values needed to produce the graph. apl>" apl>Lex 'scale' 1 apl>Gscale [1] $byyXIyca " Branch if ylwc, maxy, miny are precalculated. [2] ylwc#(maxy#S/ywc)_miny#D/ywc [3] byy:ylap#ylin_2Xymgn " ylap=height allowed for data points. [4] lin#(xlin%xlwc)Dylap%ylwc " unitlength in inches. [5] yadj#.14%lin " y graphic coordinate adjustment to print text below line. [6] mgc#ymgn%lin " Margin in graph coordinates. [7] xpg#xlwc%xlgc#xlin%lin " Divide xwc by xpg to get gc. [8] ypg#ylwc%(_2Xymgn%lin)+ylgc#ylin%lin " Divide ywc by ypg to get gc. [9] xax#(yz#(minyK0)&maxyZ0)Xmgc+(|miny)%ypg " xaxis in graph coordinates. [10] yax#(xz#(minx<0)&maxx>0)X(|minx)%xpg " yaxis in graph coordinates. [11] $piaxisXIpix#(minx=O-1)&maxx=O1 " branch if pi units on x axis. [12] xic#(yax=0)+Dxlwc%xiv [13] $doyiv [14] piaxis:xic#Dxlwc%xiv#O.25 [15] doyiv:$doyicXIyiv^=0 [16] yiv#10*D10@ylwc [17] doyic:yic#yic+0=2|yic#Dylwc%yiv [18] xoff#(I-1+xic)Xxiv " Offset from minx in world coord. of x markers. [19] yoff#(_yiv)+(Iyic)Xyiv " Offset from miny in world coord. of y markers. [20] $yoffplusXIminy>0 [21] ymk#yoff+miny+yiv||miny [22] $yoffdone [23] yoffplus:ymk#yoff+miny_yiv|miny " y for y axis markers in world coord. [24] yoffdone:xmk#minx+xoff " x for x axis markers in world coord. [25] circon#`Z'){\circle*{',(F.0205%lin),'}}' [26] scon#`Z'$}' [27] econ#`Z'){$' [28] pcon#`Z' \put(' [29] G apl>" apl>" <-----------------------------------------------------------------> apl>" Generates the LaTeX statements to finish the graph. apl>" apl>Lex 'trailers' 1 apl>Gtrailers [1] $epicXIhtl=0 " Branch if both headers and trailers. [2] $eojckXInlb " Branch if graph already labelled. [3] pcon,(1Yxgc+xpgX.1),',',(1Yygc),'){',fun,'}' " Label the graph. [4] eojck:$eojXI(htl=1)+htl=3 " br if headers only, or neither. [5] epic:'\end{picture}' [6] '\end{center}' [7] eoj:'%Finis.' [8] caption#'' " Reset global caption [9] G apl>" htl: 0=both, 1=headers, 2=trailers, 3=neither. apl>" | nlb 1 = Label the curve. apl>" | | xr = 1=vary real x coeff, 0=vary imaginary coeff. apl>" | | | e = i(11) or r(9) to select coefficient to graph. apl>" | | | | yabm = maximum |y printed on graph. apl>" | | | | | minx = minimum value of x. apl>" | | | | | | maxx = maximum value of x. apl>" | | | | | | | xiv = x axis marker interval. apl>" | | | | | | | | hk = Constant coefficient of input. apl>" | | | | | | | | | yiv = y axis marker interval, or 0. apl>" | | | | | | | | | | yca = ylwc, maxy, miny are precalculated. apl>" | | | | | | | | | | | apl>" V V V V V V V V V V V apl>ylwc#(maxy#2)_miny#-2 apl> '7Ox' graph 1,1,1,i,2 ,-5 ,5 ,1,1 , .5 ,1 " tanhdaty.tex \begin{figure}[tbh] \caption{Graph of y\#11O7Ox+nX0j1} \begin{center} \setlength{\unitlength}{ .45in} \begin{picture}(10,13.33333) %Draw a frame around the picture \put(0,0){\line(1,0){10}}% bottom \put(0,0){\line(0,1){13.33333}}% left \put(0,13.33333){\line(1,0){10}}% top \put(10,0){\line(0,1){13.33333}}% right %Draw the x axis \put(0,6.666667){\line(1,0){10}}%x axis \put( 1 , 6.666667 ){\circle*{ .04555556}} \put( 2 , 6.666667 ){\circle*{ .04555556}} \put( 3 , 6.666667 ){\circle*{ .04555556}} \put( 4 , 6.666667 ){\circle*{ .04555556}} \put( 5 , 6.666667 ){\circle*{ .04555556}} \put( 6 , 6.666667 ){\circle*{ .04555556}} \put( 7 , 6.666667 ){\circle*{ .04555556}} \put( 8 , 6.666667 ){\circle*{ .04555556}} \put( 9 , 6.666667 ){\circle*{ .04555556}} %Draw the x axis marker values \put( .9 , 6.355556 ){$ -4 $} \put( 1.9 , 6.355556 ){$ -3 $} \put( 2.9 , 6.355556 ){$ -2 $} \put( 3.9 , 6.355556 ){$ -1 $} \put( 5 , 6.355556 ){$ 0 $} \put( 6 , 6.355556 ){$ 1 $} \put( 7 , 6.355556 ){$ 2 $} \put( 8 , 6.355556 ){$ 3 $} \put( 9 , 6.355556 ){$ 4 $} %Draw the y axis \put(5,0){\line(0,1){13.33333}}%y axis %Draw the y axis markers \put( 5 , .44444444 ){\circle*{ .04555556}} \put( 5 , 2 ){\circle*{ .04555556}} \put( 5 , 3.555556 ){\circle*{ .04555556}} \put( 5 , 5.111111 ){\circle*{ .04555556}} \put( 5 , 8.222222 ){\circle*{ .04555556}} \put( 5 , 9.77778 ){\circle*{ .04555556}} \put( 5 , 11.33333 ){\circle*{ .04555556}} \put( 5 , 12.88889 ){\circle*{ .04555556}} %Draw the y axis marker values \put( 5.111111 , .41230159 ){$ -2 $} \put( 5.111111 , 1.967857 ){$ -1.5 $} \put( 5.111111 , 3.523413 ){$ -1 $} \put( 5.111111 , 5.078968 ){$ -0.5 $} \put( 5.111111 , 8.222222 ){$ .5 $} \put( 5.111111 , 9.77778 ){$ 1 $} \put( 5.111111 , 11.33333 ){$ 1.5 $} \put( 5.111111 , 12.88889 ){$ 2 $} %Label the curve \put( 5 , 11.51194 ){n\#1} %Draw the data points \put( .05 , 6.66695 ){\circle*{ .04555556}} \put( .1 , 6.66698 ){\circle*{ .04555556}} \put( .15 , 6.667013 ){\circle*{ .04555556}} \put( .2 , 6.667050 ){\circle*{ .04555556}} \put( .25 , 6.66709 ){\circle*{ .04555556}} \put( .3 , 6.667135 ){\circle*{ .04555556}} \put( .35 , 6.667184 ){\circle*{ .04555556}} \put( .4 , 6.667238 ){\circle*{ .04555556}} \put( .45 , 6.667299 ){\circle*{ .04555556}} \put( .5 , 6.667365 ){\circle*{ .04555556}} \put( .55 , 6.667438 ){\circle*{ .04555556}} \put( .6 , 6.667520 ){\circle*{ .04555556}} \put( .65 , 6.667609 ){\circle*{ .04555556}} \put( .7 , 6.667708 ){\circle*{ .04555556}} \put( .75 , 6.667818 ){\circle*{ .04555556}} \put( .8 , 6.667939 ){\circle*{ .04555556}} \put( .85 , 6.668073 ){\circle*{ .04555556}} \put( .9 , 6.668221 ){\circle*{ .04555556}} \put( .95 , 6.668384 ){\circle*{ .04555556}} \put( 1 , 6.668565 ){\circle*{ .04555556}} \put( 1.05 , 6.668765 ){\circle*{ .04555556}} \put( 1.1 , 6.668986 ){\circle*{ .04555556}} \put( 1.15 , 6.669230 ){\circle*{ .04555556}} \put( 1.2 , 6.669499 ){\circle*{ .04555556}} \put( 1.25 , 6.669797 ){\circle*{ .04555556}} \put( 1.3 , 6.670127 ){\circle*{ .04555556}} \put( 1.35 , 6.670491 ){\circle*{ .04555556}} \put( 1.4 , 6.670893 ){\circle*{ .04555556}} \put( 1.45 , 6.671338 ){\circle*{ .04555556}} \put( 1.5 , 6.671830 ){\circle*{ .04555556}} \put( 1.55 , 6.672373 ){\circle*{ .04555556}} \put( 1.6 , 6.672974 ){\circle*{ .04555556}} \put( 1.65 , 6.673638 ){\circle*{ .04555556}} \put( 1.7 , 6.674372 ){\circle*{ .04555556}} \put( 1.75 , 6.675184 ){\circle*{ .04555556}} \put( 1.8 , 6.67608 ){\circle*{ .04555556}} \put( 1.85 , 6.677072 ){\circle*{ .04555556}} \put( 1.9 , 6.678168 ){\circle*{ .04555556}} \put( 1.95 , 6.67938 ){\circle*{ .04555556}} \put( 2 , 6.68072 ){\circle*{ .04555556}} \put( 2.05 , 6.682201 ){\circle*{ .04555556}} \put( 2.1 , 6.683839 ){\circle*{ .04555556}} \put( 2.15 , 6.68565 ){\circle*{ .04555556}} \put( 2.2 , 6.687653 ){\circle*{ .04555556}} \put( 2.25 , 6.689868 ){\circle*{ .04555556}} \put( 2.3 , 6.692317 ){\circle*{ .04555556}} \put( 2.35 , 6.695025 ){\circle*{ .04555556}} \put( 2.4 , 6.698022 ){\circle*{ .04555556}} \put( 2.45 , 6.701336 ){\circle*{ .04555556}} \put( 2.5 , 6.705002 ){\circle*{ .04555556}} \put( 2.55 , 6.709059 ){\circle*{ .04555556}} \put( 2.6 , 6.713547 ){\circle*{ .04555556}} \put( 2.65 , 6.718515 ){\circle*{ .04555556}} \put( 2.7 , 6.724012 ){\circle*{ .04555556}} \put( 2.75 , 6.730098 ){\circle*{ .04555556}} \put( 2.8 , 6.736836 ){\circle*{ .04555556}} \put( 2.85 , 6.744298 ){\circle*{ .04555556}} \put( 2.9 , 6.752562 ){\circle*{ .04555556}} \put( 2.95 , 6.761717 ){\circle*{ .04555556}} \put( 3 , 6.771862 ){\circle*{ .04555556}} \put( 3.05 , 6.783106 ){\circle*{ .04555556}} \put( 3.1 , 6.795573 ){\circle*{ .04555556}} \put( 3.15 , 6.809398 ){\circle*{ .04555556}} \put( 3.2 , 6.824737 ){\circle*{ .04555556}} \put( 3.25 , 6.84176 ){\circle*{ .04555556}} \put( 3.3 , 6.86066 ){\circle*{ .04555556}} \put( 3.35 , 6.881653 ){\circle*{ .04555556}} \put( 3.4 , 6.904982 ){\circle*{ .04555556}} \put( 3.45 , 6.93092 ){\circle*{ .04555556}} \put( 3.5 , 6.959774 ){\circle*{ .04555556}} \put( 3.55 , 6.991889 ){\circle*{ .04555556}} \put( 3.6 , 7.027656 ){\circle*{ .04555556}} \put( 3.65 , 7.067516 ){\circle*{ .04555556}} \put( 3.7 , 7.111966 ){\circle*{ .04555556}} \put( 3.75 , 7.161568 ){\circle*{ .04555556}} \put( 3.8 , 7.216956 ){\circle*{ .04555556}} \put( 3.85 , 7.278846 ){\circle*{ .04555556}} \put( 3.9 , 7.348046 ){\circle*{ .04555556}} \put( 3.95 , 7.425465 ){\circle*{ .04555556}} \put( 4 , 7.512119 ){\circle*{ .04555556}} \put( 4.05 , 7.609144 ){\circle*{ .04555556}} \put( 4.1 , 7.717793 ){\circle*{ .04555556}} \put( 4.15 , 7.839439 ){\circle*{ .04555556}} \put( 4.2 , 7.975556 ){\circle*{ .04555556}} \put( 4.25 , 8.12769 ){\circle*{ .04555556}} \put( 4.3 , 8.297405 ){\circle*{ .04555556}} \put( 4.35 , 8.486183 ){\circle*{ .04555556}} \put( 4.4 , 8.695285 ){\circle*{ .04555556}} \put( 4.45 , 8.925521 ){\circle*{ .04555556}} \put( 4.5 , 9.176952 ){\circle*{ .04555556}} \put( 4.55 , 9.448470 ){\circle*{ .04555556}} \put( 4.6 , 9.73729 ){\circle*{ .04555556}} \put( 4.65 , 10.03836 ){\circle*{ .04555556}} \put( 4.7 , 10.34385 ){\circle*{ .04555556}} \put( 4.75 , 10.64279 ){\circle*{ .04555556}} \put( 4.8 , 10.92117 ){\circle*{ .04555556}} \put( 4.85 , 11.16279 ){\circle*{ .04555556}} \put( 4.9 , 11.35094 ){\circle*{ .04555556}} \put( 4.95 , 11.47076 ){\circle*{ .04555556}} \put( 5 , 11.51194 ){\circle*{ .04555556}} \put( 5.05 , 11.47076 ){\circle*{ .04555556}} \put( 5.1 , 11.35094 ){\circle*{ .04555556}} \put( 5.15 , 11.16279 ){\circle*{ .04555556}} \put( 5.2 , 10.92117 ){\circle*{ .04555556}} \put( 5.25 , 10.64279 ){\circle*{ .04555556}} \put( 5.3 , 10.34385 ){\circle*{ .04555556}} \put( 5.35 , 10.03836 ){\circle*{ .04555556}} \put( 5.4 , 9.73729 ){\circle*{ .04555556}} \put( 5.45 , 9.448470 ){\circle*{ .04555556}} \put( 5.5 , 9.176952 ){\circle*{ .04555556}} \put( 5.55 , 8.925521 ){\circle*{ .04555556}} \put( 5.6 , 8.695285 ){\circle*{ .04555556}} \put( 5.65 , 8.486183 ){\circle*{ .04555556}} \put( 5.7 , 8.297405 ){\circle*{ .04555556}} \put( 5.75 , 8.12769 ){\circle*{ .04555556}} \put( 5.8 , 7.975556 ){\circle*{ .04555556}} \put( 5.85 , 7.839439 ){\circle*{ .04555556}} \put( 5.9 , 7.717793 ){\circle*{ .04555556}} \put( 5.95 , 7.609144 ){\circle*{ .04555556}} \put( 6 , 7.512119 ){\circle*{ .04555556}} \put( 6.05 , 7.425465 ){\circle*{ .04555556}} \put( 6.1 , 7.348046 ){\circle*{ .04555556}} \put( 6.15 , 7.278846 ){\circle*{ .04555556}} \put( 6.2 , 7.216956 ){\circle*{ .04555556}} \put( 6.25 , 7.161568 ){\circle*{ .04555556}} \put( 6.3 , 7.111966 ){\circle*{ .04555556}} \put( 6.35 , 7.067516 ){\circle*{ .04555556}} \put( 6.4 , 7.027656 ){\circle*{ .04555556}} \put( 6.45 , 6.991889 ){\circle*{ .04555556}} \put( 6.5 , 6.959774 ){\circle*{ .04555556}} \put( 6.55 , 6.93092 ){\circle*{ .04555556}} \put( 6.6 , 6.904982 ){\circle*{ .04555556}} \put( 6.65 , 6.881653 ){\circle*{ .04555556}} \put( 6.7 , 6.86066 ){\circle*{ .04555556}} \put( 6.75 , 6.84176 ){\circle*{ .04555556}} \put( 6.8 , 6.824737 ){\circle*{ .04555556}} \put( 6.85 , 6.809398 ){\circle*{ .04555556}} \put( 6.9 , 6.795573 ){\circle*{ .04555556}} \put( 6.95 , 6.783106 ){\circle*{ .04555556}} \put( 7 , 6.771862 ){\circle*{ .04555556}} \put( 7.05 , 6.761717 ){\circle*{ .04555556}} \put( 7.1 , 6.752562 ){\circle*{ .04555556}} \put( 7.15 , 6.744298 ){\circle*{ .04555556}} \put( 7.2 , 6.736836 ){\circle*{ .04555556}} \put( 7.25 , 6.730098 ){\circle*{ .04555556}} \put( 7.3 , 6.724012 ){\circle*{ .04555556}} \put( 7.35 , 6.718515 ){\circle*{ .04555556}} \put( 7.4 , 6.713547 ){\circle*{ .04555556}} \put( 7.45 , 6.709059 ){\circle*{ .04555556}} \put( 7.5 , 6.705002 ){\circle*{ .04555556}} \put( 7.55 , 6.701336 ){\circle*{ .04555556}} \put( 7.6 , 6.698022 ){\circle*{ .04555556}} \put( 7.65 , 6.695025 ){\circle*{ .04555556}} \put( 7.7 , 6.692317 ){\circle*{ .04555556}} \put( 7.75 , 6.689868 ){\circle*{ .04555556}} \put( 7.8 , 6.687653 ){\circle*{ .04555556}} \put( 7.85 , 6.68565 ){\circle*{ .04555556}} \put( 7.9 , 6.683839 ){\circle*{ .04555556}} \put( 7.95 , 6.682201 ){\circle*{ .04555556}} \put( 8 , 6.68072 ){\circle*{ .04555556}} \put( 8.05 , 6.67938 ){\circle*{ .04555556}} \put( 8.1 , 6.678168 ){\circle*{ .04555556}} \put( 8.15 , 6.677072 ){\circle*{ .04555556}} \put( 8.2 , 6.67608 ){\circle*{ .04555556}} \put( 8.25 , 6.675184 ){\circle*{ .04555556}} \put( 8.3 , 6.674372 ){\circle*{ .04555556}} \put( 8.35 , 6.673638 ){\circle*{ .04555556}} \put( 8.4 , 6.672974 ){\circle*{ .04555556}} \put( 8.45 , 6.672373 ){\circle*{ .04555556}} \put( 8.5 , 6.671830 ){\circle*{ .04555556}} \put( 8.55 , 6.671338 ){\circle*{ .04555556}} \put( 8.6 , 6.670893 ){\circle*{ .04555556}} \put( 8.65 , 6.670491 ){\circle*{ .04555556}} \put( 8.7 , 6.670127 ){\circle*{ .04555556}} \put( 8.75 , 6.669797 ){\circle*{ .04555556}} \put( 8.8 , 6.669499 ){\circle*{ .04555556}} \put( 8.85 , 6.669230 ){\circle*{ .04555556}} \put( 8.9 , 6.668986 ){\circle*{ .04555556}} \put( 8.95 , 6.668765 ){\circle*{ .04555556}} \put( 9 , 6.668565 ){\circle*{ .04555556}} \put( 9.05 , 6.668384 ){\circle*{ .04555556}} \put( 9.1 , 6.668221 ){\circle*{ .04555556}} \put( 9.15 , 6.668073 ){\circle*{ .04555556}} \put( 9.2 , 6.667939 ){\circle*{ .04555556}} \put( 9.25 , 6.667818 ){\circle*{ .04555556}} \put( 9.3 , 6.667708 ){\circle*{ .04555556}} \put( 9.35 , 6.667609 ){\circle*{ .04555556}} \put( 9.4 , 6.667520 ){\circle*{ .04555556}} \put( 9.45 , 6.667438 ){\circle*{ .04555556}} \put( 9.5 , 6.667365 ){\circle*{ .04555556}} \put( 9.55 , 6.667299 ){\circle*{ .04555556}} \put( 9.6 , 6.667238 ){\circle*{ .04555556}} \put( 9.65 , 6.667184 ){\circle*{ .04555556}} \put( 9.7 , 6.667135 ){\circle*{ .04555556}} \put( 9.75 , 6.66709 ){\circle*{ .04555556}} \put( 9.8 , 6.667050 ){\circle*{ .04555556}} \put( 9.85 , 6.667013 ){\circle*{ .04555556}} \put( 9.9 , 6.66698 ){\circle*{ .04555556}} \put( 9.95 , 6.66695 ){\circle*{ .04555556}} %Finis. apl> '7Ox' graph 2,1,1,i,2 ,-5 ,5 ,1,2 , .5 ,1 " tanhdaty.tex %Label the curve \put( 4.85 , .34450795 ){n\#2} %Draw the data points \put( .05 , 6.66643 ){\circle*{ .04555556}} \put( .1 , 6.666406 ){\circle*{ .04555556}} \put( .15 , 6.666378 ){\circle*{ .04555556}} \put( .2 , 6.666348 ){\circle*{ .04555556}} \put( .25 , 6.666314 ){\circle*{ .04555556}} \put( .3 , 6.666277 ){\circle*{ .04555556}} \put( .35 , 6.666236 ){\circle*{ .04555556}} \put( .4 , 6.66619 ){\circle*{ .04555556}} \put( .45 , 6.66614 ){\circle*{ .04555556}} \put( .5 , 6.666085 ){\circle*{ .04555556}} \put( .55 , 6.666024 ){\circle*{ .04555556}} \put( .6 , 6.665957 ){\circle*{ .04555556}} \put( .65 , 6.665882 ){\circle*{ .04555556}} \put( .7 , 6.665800 ){\circle*{ .04555556}} \put( .75 , 6.665708 ){\circle*{ .04555556}} \put( .8 , 6.665607 ){\circle*{ .04555556}} \put( .85 , 6.665496 ){\circle*{ .04555556}} \put( .9 , 6.665373 ){\circle*{ .04555556}} \put( .95 , 6.665237 ){\circle*{ .04555556}} \put( 1 , 6.665086 ){\circle*{ .04555556}} \put( 1.05 , 6.66492 ){\circle*{ .04555556}} \put( 1.1 , 6.664736 ){\circle*{ .04555556}} \put( 1.15 , 6.664533 ){\circle*{ .04555556}} \put( 1.2 , 6.664309 ){\circle*{ .04555556}} \put( 1.25 , 6.66406 ){\circle*{ .04555556}} \put( 1.3 , 6.663786 ){\circle*{ .04555556}} \put( 1.35 , 6.663483 ){\circle*{ .04555556}} \put( 1.4 , 6.663148 ){\circle*{ .04555556}} \put( 1.45 , 6.662777 ){\circle*{ .04555556}} \put( 1.5 , 6.662367 ){\circle*{ .04555556}} \put( 1.55 , 6.661915 ){\circle*{ .04555556}} \put( 1.6 , 6.661414 ){\circle*{ .04555556}} \put( 1.65 , 6.660861 ){\circle*{ .04555556}} \put( 1.7 , 6.660249 ){\circle*{ .04555556}} \put( 1.75 , 6.659573 ){\circle*{ .04555556}} \put( 1.8 , 6.658825 ){\circle*{ .04555556}} \put( 1.85 , 6.657999 ){\circle*{ .04555556}} \put( 1.9 , 6.657085 ){\circle*{ .04555556}} \put( 1.95 , 6.656074 ){\circle*{ .04555556}} \put( 2 , 6.654956 ){\circle*{ .04555556}} \put( 2.05 , 6.65372 ){\circle*{ .04555556}} \put( 2.1 , 6.652353 ){\circle*{ .04555556}} \put( 2.15 , 6.650841 ){\circle*{ .04555556}} \put( 2.2 , 6.649169 ){\circle*{ .04555556}} \put( 2.25 , 6.647319 ){\circle*{ .04555556}} \put( 2.3 , 6.645272 ){\circle*{ .04555556}} \put( 2.35 , 6.643007 ){\circle*{ .04555556}} \put( 2.4 , 6.640501 ){\circle*{ .04555556}} \put( 2.45 , 6.637728 ){\circle*{ .04555556}} \put( 2.5 , 6.634657 ){\circle*{ .04555556}} \put( 2.55 , 6.631258 ){\circle*{ .04555556}} \put( 2.6 , 6.627494 ){\circle*{ .04555556}} \put( 2.65 , 6.623325 ){\circle*{ .04555556}} \put( 2.7 , 6.618707 ){\circle*{ .04555556}} \put( 2.75 , 6.61359 ){\circle*{ .04555556}} \put( 2.8 , 6.607919 ){\circle*{ .04555556}} \put( 2.85 , 6.60163 ){\circle*{ .04555556}} \put( 2.9 , 6.594657 ){\circle*{ .04555556}} \put( 2.95 , 6.58692 ){\circle*{ .04555556}} \put( 3 , 6.578333 ){\circle*{ .04555556}} \put( 3.05 , 6.568798 ){\circle*{ .04555556}} \put( 3.1 , 6.558205 ){\circle*{ .04555556}} \put( 3.15 , 6.546431 ){\circle*{ .04555556}} \put( 3.2 , 6.533336 ){\circle*{ .04555556}} \put( 3.25 , 6.518764 ){\circle*{ .04555556}} \put( 3.3 , 6.502534 ){\circle*{ .04555556}} \put( 3.35 , 6.484446 ){\circle*{ .04555556}} \put( 3.4 , 6.464269 ){\circle*{ .04555556}} \put( 3.45 , 6.44174 ){\circle*{ .04555556}} \put( 3.5 , 6.416561 ){\circle*{ .04555556}} \put( 3.55 , 6.388388 ){\circle*{ .04555556}} \put( 3.6 , 6.356827 ){\circle*{ .04555556}} \put( 3.65 , 6.321424 ){\circle*{ .04555556}} \put( 3.7 , 6.281653 ){\circle*{ .04555556}} \put( 3.75 , 6.236908 ){\circle*{ .04555556}} \put( 3.8 , 6.18648 ){\circle*{ .04555556}} \put( 3.85 , 6.129549 ){\circle*{ .04555556}} \put( 3.9 , 6.065150 ){\circle*{ .04555556}} \put( 3.95 , 5.992155 ){\circle*{ .04555556}} \put( 4 , 5.909241 ){\circle*{ .04555556}} \put( 4.05 , 5.814850 ){\circle*{ .04555556}} \put( 4.1 , 5.707147 ){\circle*{ .04555556}} \put( 4.15 , 5.583976 ){\circle*{ .04555556}} \put( 4.2 , 5.442802 ){\circle*{ .04555556}} \put( 4.25 , 5.280663 ){\circle*{ .04555556}} \put( 4.3 , 5.094124 ){\circle*{ .04555556}} \put( 4.35 , 4.879261 ){\circle*{ .04555556}} \put( 4.4 , 4.631686 ){\circle*{ .04555556}} \put( 4.45 , 4.346680 ){\circle*{ .04555556}} \put( 4.5 , 4.01949 ){\circle*{ .04555556}} \put( 4.55 , 3.645923 ){\circle*{ .04555556}} \put( 4.6 , 3.223370 ){\circle*{ .04555556}} \put( 4.65 , 2.752457 ){\circle*{ .04555556}} \put( 4.7 , 2.239436 ){\circle*{ .04555556}} \put( 4.75 , 1.699189 ){\circle*{ .04555556}} \put( 4.8 , 1.158154 ){\circle*{ .04555556}} \put( 4.85 , .655619 ){\circle*{ .04555556}} \put( 5.15 , .655619 ){\circle*{ .04555556}} \put( 5.2 , 1.158154 ){\circle*{ .04555556}} \put( 5.25 , 1.699189 ){\circle*{ .04555556}} \put( 5.3 , 2.239436 ){\circle*{ .04555556}} \put( 5.35 , 2.752457 ){\circle*{ .04555556}} \put( 5.4 , 3.223370 ){\circle*{ .04555556}} \put( 5.45 , 3.645923 ){\circle*{ .04555556}} \put( 5.5 , 4.01949 ){\circle*{ .04555556}} \put( 5.55 , 4.346680 ){\circle*{ .04555556}} \put( 5.6 , 4.631686 ){\circle*{ .04555556}} \put( 5.65 , 4.879261 ){\circle*{ .04555556}} \put( 5.7 , 5.094124 ){\circle*{ .04555556}} \put( 5.75 , 5.280663 ){\circle*{ .04555556}} \put( 5.8 , 5.442802 ){\circle*{ .04555556}} \put( 5.85 , 5.583976 ){\circle*{ .04555556}} \put( 5.9 , 5.707147 ){\circle*{ .04555556}} \put( 5.95 , 5.814850 ){\circle*{ .04555556}} \put( 6 , 5.909241 ){\circle*{ .04555556}} \put( 6.05 , 5.992155 ){\circle*{ .04555556}} \put( 6.1 , 6.065150 ){\circle*{ .04555556}} \put( 6.15 , 6.129549 ){\circle*{ .04555556}} \put( 6.2 , 6.18648 ){\circle*{ .04555556}} \put( 6.25 , 6.236908 ){\circle*{ .04555556}} \put( 6.3 , 6.281653 ){\circle*{ .04555556}} \put( 6.35 , 6.321424 ){\circle*{ .04555556}} \put( 6.4 , 6.356827 ){\circle*{ .04555556}} \put( 6.45 , 6.388388 ){\circle*{ .04555556}} \put( 6.5 , 6.416561 ){\circle*{ .04555556}} \put( 6.55 , 6.44174 ){\circle*{ .04555556}} \put( 6.6 , 6.464269 ){\circle*{ .04555556}} \put( 6.65 , 6.484446 ){\circle*{ .04555556}} \put( 6.7 , 6.502534 ){\circle*{ .04555556}} \put( 6.75 , 6.518764 ){\circle*{ .04555556}} \put( 6.8 , 6.533336 ){\circle*{ .04555556}} \put( 6.85 , 6.546431 ){\circle*{ .04555556}} \put( 6.9 , 6.558205 ){\circle*{ .04555556}} \put( 6.95 , 6.568798 ){\circle*{ .04555556}} \put( 7 , 6.578333 ){\circle*{ .04555556}} \put( 7.05 , 6.58692 ){\circle*{ .04555556}} \put( 7.1 , 6.594657 ){\circle*{ .04555556}} \put( 7.15 , 6.60163 ){\circle*{ .04555556}} \put( 7.2 , 6.607919 ){\circle*{ .04555556}} \put( 7.25 , 6.61359 ){\circle*{ .04555556}} \put( 7.3 , 6.618707 ){\circle*{ .04555556}} \put( 7.35 , 6.623325 ){\circle*{ .04555556}} \put( 7.4 , 6.627494 ){\circle*{ .04555556}} \put( 7.45 , 6.631258 ){\circle*{ .04555556}} \put( 7.5 , 6.634657 ){\circle*{ .04555556}} \put( 7.55 , 6.637728 ){\circle*{ .04555556}} \put( 7.6 , 6.640501 ){\circle*{ .04555556}} \put( 7.65 , 6.643007 ){\circle*{ .04555556}} \put( 7.7 , 6.645272 ){\circle*{ .04555556}} \put( 7.75 , 6.647319 ){\circle*{ .04555556}} \put( 7.8 , 6.649169 ){\circle*{ .04555556}} \put( 7.85 , 6.650841 ){\circle*{ .04555556}} \put( 7.9 , 6.652353 ){\circle*{ .04555556}} \put( 7.95 , 6.65372 ){\circle*{ .04555556}} \put( 8 , 6.654956 ){\circle*{ .04555556}} \put( 8.05 , 6.656074 ){\circle*{ .04555556}} \put( 8.1 , 6.657085 ){\circle*{ .04555556}} \put( 8.15 , 6.657999 ){\circle*{ .04555556}} \put( 8.2 , 6.658825 ){\circle*{ .04555556}} \put( 8.25 , 6.659573 ){\circle*{ .04555556}} \put( 8.3 , 6.660249 ){\circle*{ .04555556}} \put( 8.35 , 6.660861 ){\circle*{ .04555556}} \put( 8.4 , 6.661414 ){\circle*{ .04555556}} \put( 8.45 , 6.661915 ){\circle*{ .04555556}} \put( 8.5 , 6.662367 ){\circle*{ .04555556}} \put( 8.55 , 6.662777 ){\circle*{ .04555556}} \put( 8.6 , 6.663148 ){\circle*{ .04555556}} \put( 8.65 , 6.663483 ){\circle*{ .04555556}} \put( 8.7 , 6.663786 ){\circle*{ .04555556}} \put( 8.75 , 6.66406 ){\circle*{ .04555556}} \put( 8.8 , 6.664309 ){\circle*{ .04555556}} \put( 8.85 , 6.664533 ){\circle*{ .04555556}} \put( 8.9 , 6.664736 ){\circle*{ .04555556}} \put( 8.95 , 6.66492 ){\circle*{ .04555556}} \put( 9 , 6.665086 ){\circle*{ .04555556}} \put( 9.05 , 6.665237 ){\circle*{ .04555556}} \put( 9.1 , 6.665373 ){\circle*{ .04555556}} \put( 9.15 , 6.665496 ){\circle*{ .04555556}} \put( 9.2 , 6.665607 ){\circle*{ .04555556}} \put( 9.25 , 6.665708 ){\circle*{ .04555556}} \put( 9.3 , 6.665800 ){\circle*{ .04555556}} \put( 9.35 , 6.665882 ){\circle*{ .04555556}} \put( 9.4 , 6.665957 ){\circle*{ .04555556}} \put( 9.45 , 6.666024 ){\circle*{ .04555556}} \put( 9.5 , 6.666085 ){\circle*{ .04555556}} \put( 9.55 , 6.66614 ){\circle*{ .04555556}} \put( 9.6 , 6.66619 ){\circle*{ .04555556}} \put( 9.65 , 6.666236 ){\circle*{ .04555556}} \put( 9.7 , 6.666277 ){\circle*{ .04555556}} \put( 9.75 , 6.666314 ){\circle*{ .04555556}} \put( 9.8 , 6.666348 ){\circle*{ .04555556}} \put( 9.85 , 6.666378 ){\circle*{ .04555556}} \put( 9.9 , 6.666406 ){\circle*{ .04555556}} \put( 9.95 , 6.66643 ){\circle*{ .04555556}} \end{picture} \end{center} %Finis. apl>)off