
apl>" <-APL2-------------------- sam316.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> '6Ox' graph 1,1,1,i,5  ,xpi     ,0.5 , 0  ,0 " coshdaty.tex

\begin{figure}[tbh]
\caption{Graph of y\#11O6Ox+nX0j1}
\begin{center}
\setlength{\unitlength}{ .573733in}
\begin{picture}(7.843374,10.45783)
%Draw a frame around the picture
 \put(0,0){\line(1,0){7.843374}}% bottom
 \put(0,0){\line(0,1){10.45783}}% left
 \put(0,10.45783){\line(1,0){7.843374}}% top
 \put(7.843374,0){\line(0,1){10.45783}}% right
%Draw the x axis
 \put(0,5.228916){\line(1,0){7.843374}}%x axis
  \put(  .980422 , 5.228916 ){\circle*{ .03573093}} 
  \put( 1.960844 , 5.228916 ){\circle*{ .03573093}} 
  \put( 2.941265 , 5.228916 ){\circle*{ .03573093}} 
  \put( 3.921687 , 5.228916 ){\circle*{ .03573093}} 
  \put( 4.902109 , 5.228916 ){\circle*{ .03573093}} 
  \put(  5.88253 , 5.228916 ){\circle*{ .03573093}} 
  \put( 6.862953 , 5.228916 ){\circle*{ .03573093}} 
%Draw the x axis marker values in pi
  \put(  .900314 , 4.9849 ){$ -\frac{3\pi}{4} $} 
  \put( 1.880735 , 4.9849 ){$  -\frac{\pi}{2} $} 
  \put( 2.861157 , 4.9849 ){$  -\frac{\pi}{4} $} 
  \put( 3.921687 , 4.9849 ){$               0 $} 
  \put( 4.902109 , 4.9849 ){$   \frac{\pi}{4} $} 
  \put(  5.88253 , 4.9849 ){$   \frac{\pi}{2} $} 
  \put( 6.862953 , 4.9849 ){$  \frac{3\pi}{4} $} 
%Draw the y axis
 \put(3.921687,0){\line(0,1){10.45783}}%y axis
%Draw the y axis markers
  \put( 3.921687 , 1.228916 ){\circle*{ .03573093}} 
  \put( 3.921687 , 2.228916 ){\circle*{ .03573093}} 
  \put( 3.921687 , 3.228916 ){\circle*{ .03573093}} 
  \put( 3.921687 , 4.228916 ){\circle*{ .03573093}} 
  \put( 3.921687 , 6.228916 ){\circle*{ .03573093}} 
  \put( 3.921687 , 7.228916 ){\circle*{ .03573093}} 
  \put( 3.921687 , 8.228916 ){\circle*{ .03573093}} 
  \put( 3.921687 , 9.228916 ){\circle*{ .03573093}} 
%Draw the y axis marker values
  \put( 4.008836 , 1.128916 ){$ -4 $} 
  \put( 4.008836 , 2.128916 ){$ -3 $} 
  \put( 4.008836 , 3.128916 ){$ -2 $} 
  \put( 4.008836 , 4.128916 ){$ -1 $} 
  \put( 4.008836 , 6.228916 ){$  1 $} 
  \put( 4.008836 , 7.228916 ){$  2 $} 
  \put( 4.008836 , 8.228916 ){$  3 $} 
  \put( 4.008836 , 9.228916 ){$  4 $} 
%Label the curve
  \put(  .15686749 , .10457832    ){n\# .5} 
%Draw the data points
  \put(  .19608436 , .500269    ){\circle*{ .03573093}} 
  \put(  .23530123 , .647276    ){\circle*{ .03573093}} 
  \put(   .2745181 , .789761    ){\circle*{ .03573093}} 
  \put(  .31373497 , .927865    ){\circle*{ .03573093}} 
  \put(  .35295185 , 1.061723   ){\circle*{ .03573093}} 
  \put(  .39216872 , 1.191468   ){\circle*{ .03573093}} 
  \put(  .43138559 , 1.317227   ){\circle*{ .03573093}} 
  \put(  .47060246 , 1.439126   ){\circle*{ .03573093}} 
  \put(    .509819 , 1.557284   ){\circle*{ .03573093}} 
  \put(    .549036 , 1.671818   ){\circle*{ .03573093}} 
  \put(    .588253 , 1.782841   ){\circle*{ .03573093}} 
  \put(     .62747 , 1.890463   ){\circle*{ .03573093}} 
  \put(    .666687 , 1.994789   ){\circle*{ .03573093}} 
  \put(    .705904 , 2.095923   ){\circle*{ .03573093}} 
  \put(     .74512 , 2.193965   ){\circle*{ .03573093}} 
  \put(    .784337 , 2.289011   ){\circle*{ .03573093}} 
  \put(    .823554 , 2.381156   ){\circle*{ .03573093}} 
  \put(    .862771 , 2.470489   ){\circle*{ .03573093}} 
  \put(    .901988 ,   2.5571   ){\circle*{ .03573093}} 
  \put(    .941205 , 2.641074   ){\circle*{ .03573093}} 
  \put(    .980422 , 2.722493   ){\circle*{ .03573093}} 
  \put(   1.019639 , 2.801438   ){\circle*{ .03573093}} 
  \put(   1.058856 , 2.877988   ){\circle*{ .03573093}} 
  \put(   1.098072 , 2.952217   ){\circle*{ .03573093}} 
  \put(   1.137289 , 3.024198   ){\circle*{ .03573093}} 
  \put(   1.176506 , 3.094004   ){\circle*{ .03573093}} 
  \put(   1.215723 , 3.161702   ){\circle*{ .03573093}} 
  \put(   1.254940 ,  3.22736   ){\circle*{ .03573093}} 
  \put(   1.294157 , 3.291042   ){\circle*{ .03573093}} 
  \put(   1.333374 , 3.352812   ){\circle*{ .03573093}} 
  \put(    1.37259 , 3.412729   ){\circle*{ .03573093}} 
  \put(   1.411807 , 3.470854   ){\circle*{ .03573093}} 
  \put(   1.451024 , 3.527244   ){\circle*{ .03573093}} 
  \put(   1.490241 , 3.581954   ){\circle*{ .03573093}} 
  \put(   1.529458 , 3.635039   ){\circle*{ .03573093}} 
  \put(   1.568675 ,  3.68655   ){\circle*{ .03573093}} 
  \put(   1.607892 , 3.736539   ){\circle*{ .03573093}} 
  \put(   1.647109 , 3.785055   ){\circle*{ .03573093}} 
  \put(   1.686325 , 3.832146   ){\circle*{ .03573093}} 
  \put(   1.725542 , 3.877858   ){\circle*{ .03573093}} 
  \put(   1.764759 , 3.922236   ){\circle*{ .03573093}} 
  \put(   1.803976 , 3.965325   ){\circle*{ .03573093}} 
  \put(   1.843193 , 4.007166   ){\circle*{ .03573093}} 
  \put(   1.882410 , 4.047802   ){\circle*{ .03573093}} 
  \put(   1.921627 , 4.087272   ){\circle*{ .03573093}} 
  \put(   1.960844 , 4.125615   ){\circle*{ .03573093}} 
  \put(    2.00006 , 4.162869   ){\circle*{ .03573093}} 
  \put(   2.039277 ,  4.19907   ){\circle*{ .03573093}} 
  \put(   2.078494 , 4.234256   ){\circle*{ .03573093}} 
  \put(   2.117711 , 4.268459   ){\circle*{ .03573093}} 
  \put(   2.156928 , 4.301715   ){\circle*{ .03573093}} 
  \put(   2.196145 , 4.334055   ){\circle*{ .03573093}} 
  \put(   2.235362 , 4.365512   ){\circle*{ .03573093}} 
  \put(   2.274579 , 4.396117   ){\circle*{ .03573093}} 
  \put(   2.313795 , 4.425899   ){\circle*{ .03573093}} 
  \put(   2.353012 , 4.454889   ){\circle*{ .03573093}} 
  \put(   2.392229 , 4.483116   ){\circle*{ .03573093}} 
  \put(   2.431446 , 4.510606   ){\circle*{ .03573093}} 
  \put(   2.470663 , 4.537387   ){\circle*{ .03573093}} 
  \put(   2.509880 , 4.563485   ){\circle*{ .03573093}} 
  \put(   2.549097 , 4.588927   ){\circle*{ .03573093}} 
  \put(   2.588314 , 4.613737   ){\circle*{ .03573093}} 
  \put(    2.62753 , 4.637939   ){\circle*{ .03573093}} 
  \put(   2.666747 , 4.661559   ){\circle*{ .03573093}} 
  \put(   2.705964 , 4.684618   ){\circle*{ .03573093}} 
  \put(   2.745181 ,  4.70714   ){\circle*{ .03573093}} 
  \put(   2.784398 , 4.729147   ){\circle*{ .03573093}} 
  \put(   2.823615 , 4.750661   ){\circle*{ .03573093}} 
  \put(   2.862832 , 4.771703   ){\circle*{ .03573093}} 
  \put(   2.902049 , 4.792294   ){\circle*{ .03573093}} 
  \put(   2.941265 , 4.812453   ){\circle*{ .03573093}} 
  \put(   2.980482 , 4.832202   ){\circle*{ .03573093}} 
  \put(   3.019699 , 4.851559   ){\circle*{ .03573093}} 
  \put(   3.058916 , 4.870543   ){\circle*{ .03573093}} 
  \put(   3.098133 , 4.889174   ){\circle*{ .03573093}} 
  \put(   3.137350 , 4.907469   ){\circle*{ .03573093}} 
  \put(   3.176567 , 4.925447   ){\circle*{ .03573093}} 
  \put(   3.215783 , 4.943126   ){\circle*{ .03573093}} 
  \put(      3.255 , 4.960522   ){\circle*{ .03573093}} 
  \put(   3.294217 , 4.977654   ){\circle*{ .03573093}} 
  \put(   3.333434 , 4.994537   ){\circle*{ .03573093}} 
  \put(   3.372651 , 5.011189   ){\circle*{ .03573093}} 
  \put(   3.411868 , 5.027627   ){\circle*{ .03573093}} 
  \put(   3.451085 , 5.043865   ){\circle*{ .03573093}} 
  \put(   3.490302 , 5.059921   ){\circle*{ .03573093}} 
  \put(   3.529518 ,  5.07581   ){\circle*{ .03573093}} 
  \put(   3.568735 , 5.091549   ){\circle*{ .03573093}} 
  \put(   3.607952 , 5.107151   ){\circle*{ .03573093}} 
  \put(   3.647169 , 5.122633   ){\circle*{ .03573093}} 
  \put(   3.686386 ,  5.13801   ){\circle*{ .03573093}} 
  \put(   3.725603 , 5.153298   ){\circle*{ .03573093}} 
  \put(   3.764820 , 5.168511   ){\circle*{ .03573093}} 
  \put(   3.804037 , 5.183665   ){\circle*{ .03573093}} 
  \put(   3.843253 , 5.198773   ){\circle*{ .03573093}} 
  \put(    3.88247 , 5.213852   ){\circle*{ .03573093}} 
  \put(   3.921687 , 5.228916   ){\circle*{ .03573093}} 
  \put(   3.960904 ,  5.24398   ){\circle*{ .03573093}} 
  \put(   4.000121 , 5.259059   ){\circle*{ .03573093}} 
  \put(   4.039338 , 5.274168   ){\circle*{ .03573093}} 
  \put(   4.078555 , 5.289321   ){\circle*{ .03573093}} 
  \put(   4.117772 , 5.304534   ){\circle*{ .03573093}} 
  \put(   4.156988 , 5.319822   ){\circle*{ .03573093}} 
  \put(   4.196205 , 5.335199   ){\circle*{ .03573093}} 
  \put(   4.235422 , 5.350682   ){\circle*{ .03573093}} 
  \put(   4.274639 , 5.366284   ){\circle*{ .03573093}} 
  \put(   4.313856 , 5.382022   ){\circle*{ .03573093}} 
  \put(   4.353073 , 5.397911   ){\circle*{ .03573093}} 
  \put(   4.392290 , 5.413967   ){\circle*{ .03573093}} 
  \put(   4.431507 , 5.430206   ){\circle*{ .03573093}} 
  \put(   4.470723 , 5.446643   ){\circle*{ .03573093}} 
  \put(    4.50994 , 5.463295   ){\circle*{ .03573093}} 
  \put(   4.549157 , 5.480179   ){\circle*{ .03573093}} 
  \put(   4.588374 ,  5.49731   ){\circle*{ .03573093}} 
  \put(    4.62759 , 5.514707   ){\circle*{ .03573093}} 
  \put(   4.666808 , 5.532385   ){\circle*{ .03573093}} 
  \put(   4.706025 , 5.550363   ){\circle*{ .03573093}} 
  \put(   4.745241 , 5.568659   ){\circle*{ .03573093}} 
  \put(   4.784458 , 5.587289   ){\circle*{ .03573093}} 
  \put(   4.823675 , 5.606274   ){\circle*{ .03573093}} 
  \put(   4.862892 ,  5.62563   ){\circle*{ .03573093}} 
  \put(   4.902109 , 5.645379   ){\circle*{ .03573093}} 
  \put(   4.941326 , 5.665539   ){\circle*{ .03573093}} 
  \put(   4.980543 , 5.686129   ){\circle*{ .03573093}} 
  \put(   5.019760 , 5.707171   ){\circle*{ .03573093}} 
  \put(   5.058976 , 5.728685   ){\circle*{ .03573093}} 
  \put(   5.098193 , 5.750692   ){\circle*{ .03573093}} 
  \put(    5.13741 , 5.773214   ){\circle*{ .03573093}} 
  \put(   5.176627 , 5.796274   ){\circle*{ .03573093}} 
  \put(   5.215844 , 5.819893   ){\circle*{ .03573093}} 
  \put(    5.25506 , 5.844096   ){\circle*{ .03573093}} 
  \put(   5.294278 , 5.868906   ){\circle*{ .03573093}} 
  \put(   5.333495 , 5.894347   ){\circle*{ .03573093}} 
  \put(   5.372711 , 5.920446   ){\circle*{ .03573093}} 
  \put(   5.411928 , 5.947227   ){\circle*{ .03573093}} 
  \put(   5.451145 , 5.974717   ){\circle*{ .03573093}} 
  \put(   5.490362 , 6.002943   ){\circle*{ .03573093}} 
  \put(   5.529579 , 6.031933   ){\circle*{ .03573093}} 
  \put(   5.568796 , 6.061716   ){\circle*{ .03573093}} 
  \put(   5.608013 ,  6.09232   ){\circle*{ .03573093}} 
  \put(   5.647230 , 6.123778   ){\circle*{ .03573093}} 
  \put(   5.686446 , 6.156118   ){\circle*{ .03573093}} 
  \put(   5.725663 , 6.189373   ){\circle*{ .03573093}} 
  \put(    5.76488 , 6.223577   ){\circle*{ .03573093}} 
  \put(   5.804097 , 6.258762   ){\circle*{ .03573093}} 
  \put(   5.843314 , 6.294964   ){\circle*{ .03573093}} 
  \put(    5.88253 , 6.332218   ){\circle*{ .03573093}} 
  \put(   5.921748 ,  6.37056   ){\circle*{ .03573093}} 
  \put(   5.960965 ,  6.41003   ){\circle*{ .03573093}} 
  \put(   6.000181 , 6.450666   ){\circle*{ .03573093}} 
  \put(   6.039398 , 6.492508   ){\circle*{ .03573093}} 
  \put(   6.078615 , 6.535596   ){\circle*{ .03573093}} 
  \put(   6.117832 , 6.579975   ){\circle*{ .03573093}} 
  \put(   6.157049 , 6.625687   ){\circle*{ .03573093}} 
  \put(   6.196266 , 6.672778   ){\circle*{ .03573093}} 
  \put(   6.235483 , 6.721293   ){\circle*{ .03573093}} 
  \put(   6.274699 , 6.771282   ){\circle*{ .03573093}} 
  \put(   6.313916 , 6.822794   ){\circle*{ .03573093}} 
  \put(   6.353133 , 6.875878   ){\circle*{ .03573093}} 
  \put(    6.39235 , 6.930588   ){\circle*{ .03573093}} 
  \put(   6.431567 , 6.986978   ){\circle*{ .03573093}} 
  \put(   6.470784 , 7.045103   ){\circle*{ .03573093}} 
  \put(       6.51 ,  7.10502   ){\circle*{ .03573093}} 
  \put(   6.549218 ,  7.16679   ){\circle*{ .03573093}} 
  \put(   6.588434 , 7.230473   ){\circle*{ .03573093}} 
  \put(   6.627651 ,  7.29613   ){\circle*{ .03573093}} 
  \put(   6.666868 , 7.363829   ){\circle*{ .03573093}} 
  \put(   6.706085 , 7.433634   ){\circle*{ .03573093}} 
  \put(   6.745302 , 7.505616   ){\circle*{ .03573093}} 
  \put(   6.784519 , 7.579845   ){\circle*{ .03573093}} 
  \put(   6.823736 , 7.656394   ){\circle*{ .03573093}} 
  \put(   6.862953 , 7.735339   ){\circle*{ .03573093}} 
  \put(   6.902169 , 7.816759   ){\circle*{ .03573093}} 
  \put(   6.941386 , 7.900732   ){\circle*{ .03573093}} 
  \put(   6.980603 , 7.987343   ){\circle*{ .03573093}} 
  \put(    7.01982 , 8.076677   ){\circle*{ .03573093}} 
  \put(   7.059037 , 8.168821   ){\circle*{ .03573093}} 
  \put(   7.098254 , 8.263867   ){\circle*{ .03573093}} 
  \put(    7.13747 , 8.361909   ){\circle*{ .03573093}} 
  \put(   7.176688 , 8.463043   ){\circle*{ .03573093}} 
  \put(   7.215904 , 8.567370   ){\circle*{ .03573093}} 
  \put(   7.255121 , 8.674991   ){\circle*{ .03573093}} 
  \put(   7.294338 , 8.786014   ){\circle*{ .03573093}} 
  \put(   7.333555 , 8.900548   ){\circle*{ .03573093}} 
  \put(   7.372772 , 9.018706   ){\circle*{ .03573093}} 
  \put(   7.411989 , 9.140605   ){\circle*{ .03573093}} 
  \put(   7.451206 , 9.266365   ){\circle*{ .03573093}} 
  \put(   7.490423 , 9.396110   ){\circle*{ .03573093}} 
  \put(   7.529639 , 9.52997    ){\circle*{ .03573093}} 
  \put(   7.568856 , 9.66807    ){\circle*{ .03573093}} 
  \put(   7.608073 , 9.81056    ){\circle*{ .03573093}} 
  \put(    7.64729 , 9.95756    ){\circle*{ .03573093}} 
%Finis.

apl> '6Ox' graph 2,1,1,i,5  ,xpi     ,2   , 0  ,0 " coshdaty.tex

%Label the curve
  \put(  .941205 , .07669564    ){n\#2} 
%Draw the data points
  \put(  .980422 , .47513482    ){\circle*{ .03573093}} 
  \put( 1.019639 ,   .624866    ){\circle*{ .03573093}} 
  \put( 1.058856 ,   .770052    ){\circle*{ .03573093}} 
  \put( 1.098072 ,   .910838    ){\circle*{ .03573093}} 
  \put( 1.137289 ,   1.047361   ){\circle*{ .03573093}} 
  \put( 1.176506 ,   1.179757   ){\circle*{ .03573093}} 
  \put( 1.215723 ,   1.308156   ){\circle*{ .03573093}} 
  \put( 1.254940 ,   1.432685   ){\circle*{ .03573093}} 
  \put( 1.294157 ,   1.553468   ){\circle*{ .03573093}} 
  \put( 1.333374 ,   1.670622   ){\circle*{ .03573093}} 
  \put(  1.37259 ,   1.784264   ){\circle*{ .03573093}} 
  \put( 1.411807 ,   1.894507   ){\circle*{ .03573093}} 
  \put( 1.451024 ,   2.001458   ){\circle*{ .03573093}} 
  \put( 1.490241 ,   2.105223   ){\circle*{ .03573093}} 
  \put( 1.529458 ,   2.205905   ){\circle*{ .03573093}} 
  \put( 1.568675 ,   2.303604   ){\circle*{ .03573093}} 
  \put( 1.607892 ,   2.398415   ){\circle*{ .03573093}} 
  \put( 1.647109 ,   2.490432   ){\circle*{ .03573093}} 
  \put( 1.686325 ,   2.579746   ){\circle*{ .03573093}} 
  \put( 1.725542 ,   2.666445   ){\circle*{ .03573093}} 
  \put( 1.764759 ,   2.750615   ){\circle*{ .03573093}} 
  \put( 1.803976 ,   2.832339   ){\circle*{ .03573093}} 
  \put( 1.843193 ,   2.911697   ){\circle*{ .03573093}} 
  \put( 1.882410 ,   2.988768   ){\circle*{ .03573093}} 
  \put( 1.921627 ,   3.063628   ){\circle*{ .03573093}} 
  \put( 1.960844 ,   3.136351   ){\circle*{ .03573093}} 
  \put(  2.00006 ,   3.207008   ){\circle*{ .03573093}} 
  \put( 2.039277 ,    3.27567   ){\circle*{ .03573093}} 
  \put( 2.078494 ,   3.342404   ){\circle*{ .03573093}} 
  \put( 2.117711 ,   3.407275   ){\circle*{ .03573093}} 
  \put( 2.156928 ,   3.470349   ){\circle*{ .03573093}} 
  \put( 2.196145 ,   3.531687   ){\circle*{ .03573093}} 
  \put( 2.235362 ,   3.591349   ){\circle*{ .03573093}} 
  \put( 2.274579 ,   3.649395   ){\circle*{ .03573093}} 
  \put( 2.313795 ,   3.705883   ){\circle*{ .03573093}} 
  \put( 2.353012 ,   3.760866   ){\circle*{ .03573093}} 
  \put( 2.392229 ,   3.814401   ){\circle*{ .03573093}} 
  \put( 2.431446 ,   3.866540   ){\circle*{ .03573093}} 
  \put( 2.470663 ,   3.917334   ){\circle*{ .03573093}} 
  \put( 2.509880 ,   3.966833   ){\circle*{ .03573093}} 
  \put( 2.549097 ,   4.015087   ){\circle*{ .03573093}} 
  \put( 2.588314 ,   4.062142   ){\circle*{ .03573093}} 
  \put(  2.62753 ,   4.108046   ){\circle*{ .03573093}} 
  \put( 2.666747 ,   4.152844   ){\circle*{ .03573093}} 
  \put( 2.705964 ,   4.196579   ){\circle*{ .03573093}} 
  \put( 2.745181 ,   4.239295   ){\circle*{ .03573093}} 
  \put( 2.784398 ,   4.281035   ){\circle*{ .03573093}} 
  \put( 2.823615 ,   4.321839   ){\circle*{ .03573093}} 
  \put( 2.862832 ,   4.361748   ){\circle*{ .03573093}} 
  \put( 2.902049 ,     4.4008   ){\circle*{ .03573093}} 
  \put( 2.941265 ,   4.439036   ){\circle*{ .03573093}} 
  \put( 2.980482 ,   4.476492   ){\circle*{ .03573093}} 
  \put( 3.019699 ,   4.513205   ){\circle*{ .03573093}} 
  \put( 3.058916 ,   4.549211   ){\circle*{ .03573093}} 
  \put( 3.098133 ,   4.584547   ){\circle*{ .03573093}} 
  \put( 3.137350 ,   4.619247   ){\circle*{ .03573093}} 
  \put( 3.176567 ,   4.653345   ){\circle*{ .03573093}} 
  \put( 3.215783 ,   4.686875   ){\circle*{ .03573093}} 
  \put(    3.255 ,   4.719869   ){\circle*{ .03573093}} 
  \put( 3.294217 ,   4.752362   ){\circle*{ .03573093}} 
  \put( 3.333434 ,   4.784384   ){\circle*{ .03573093}} 
  \put( 3.372651 ,   4.815967   ){\circle*{ .03573093}} 
  \put( 3.411868 ,   4.847143   ){\circle*{ .03573093}} 
  \put( 3.451085 ,   4.877941   ){\circle*{ .03573093}} 
  \put( 3.490302 ,   4.908394   ){\circle*{ .03573093}} 
  \put( 3.529518 ,   4.938530   ){\circle*{ .03573093}} 
  \put( 3.568735 ,   4.968379   ){\circle*{ .03573093}} 
  \put( 3.607952 ,   4.997971   ){\circle*{ .03573093}} 
  \put( 3.647169 ,   5.027336   ){\circle*{ .03573093}} 
  \put( 3.686386 ,   5.056501   ){\circle*{ .03573093}} 
  \put( 3.725603 ,   5.085496   ){\circle*{ .03573093}} 
  \put( 3.764820 ,   5.114350   ){\circle*{ .03573093}} 
  \put( 3.804037 ,    5.14309   ){\circle*{ .03573093}} 
  \put( 3.843253 ,   5.171746   ){\circle*{ .03573093}} 
  \put(  3.88247 ,   5.200345   ){\circle*{ .03573093}} 
  \put( 3.921687 ,   5.228916   ){\circle*{ .03573093}} 
  \put( 3.960904 ,   5.257487   ){\circle*{ .03573093}} 
  \put( 4.000121 ,   5.286087   ){\circle*{ .03573093}} 
  \put( 4.039338 ,   5.314742   ){\circle*{ .03573093}} 
  \put( 4.078555 ,   5.343483   ){\circle*{ .03573093}} 
  \put( 4.117772 ,   5.372336   ){\circle*{ .03573093}} 
  \put( 4.156988 ,   5.401332   ){\circle*{ .03573093}} 
  \put( 4.196205 ,   5.430497   ){\circle*{ .03573093}} 
  \put( 4.235422 ,   5.459861   ){\circle*{ .03573093}} 
  \put( 4.274639 ,   5.489453   ){\circle*{ .03573093}} 
  \put( 4.313856 ,   5.519303   ){\circle*{ .03573093}} 
  \put( 4.353073 ,   5.549439   ){\circle*{ .03573093}} 
  \put( 4.392290 ,   5.579891   ){\circle*{ .03573093}} 
  \put( 4.431507 ,   5.610690   ){\circle*{ .03573093}} 
  \put( 4.470723 ,   5.641865   ){\circle*{ .03573093}} 
  \put(  4.50994 ,   5.673449   ){\circle*{ .03573093}} 
  \put( 4.549157 ,    5.70547   ){\circle*{ .03573093}} 
  \put( 4.588374 ,   5.737963   ){\circle*{ .03573093}} 
  \put(  4.62759 ,   5.770958   ){\circle*{ .03573093}} 
  \put( 4.666808 ,   5.804488   ){\circle*{ .03573093}} 
  \put( 4.706025 ,   5.838586   ){\circle*{ .03573093}} 
  \put( 4.745241 ,   5.873285   ){\circle*{ .03573093}} 
  \put( 4.784458 ,   5.908621   ){\circle*{ .03573093}} 
  \put( 4.823675 ,   5.944628   ){\circle*{ .03573093}} 
  \put( 4.862892 ,    5.98134   ){\circle*{ .03573093}} 
  \put( 4.902109 ,   6.018797   ){\circle*{ .03573093}} 
  \put( 4.941326 ,   6.057032   ){\circle*{ .03573093}} 
  \put( 4.980543 ,   6.096085   ){\circle*{ .03573093}} 
  \put( 5.019760 ,   6.135993   ){\circle*{ .03573093}} 
  \put( 5.058976 ,   6.176797   ){\circle*{ .03573093}} 
  \put( 5.098193 ,   6.218537   ){\circle*{ .03573093}} 
  \put(  5.13741 ,   6.261253   ){\circle*{ .03573093}} 
  \put( 5.176627 ,   6.304989   ){\circle*{ .03573093}} 
  \put( 5.215844 ,   6.349786   ){\circle*{ .03573093}} 
  \put(  5.25506 ,    6.39569   ){\circle*{ .03573093}} 
  \put( 5.294278 ,   6.442746   ){\circle*{ .03573093}} 
  \put( 5.333495 ,   6.490999   ){\circle*{ .03573093}} 
  \put( 5.372711 ,   6.540499   ){\circle*{ .03573093}} 
  \put( 5.411928 ,   6.591293   ){\circle*{ .03573093}} 
  \put( 5.451145 ,   6.643431   ){\circle*{ .03573093}} 
  \put( 5.490362 ,   6.696966   ){\circle*{ .03573093}} 
  \put( 5.529579 ,    6.75195   ){\circle*{ .03573093}} 
  \put( 5.568796 ,   6.808437   ){\circle*{ .03573093}} 
  \put( 5.608013 ,   6.866483   ){\circle*{ .03573093}} 
  \put( 5.647230 ,   6.926146   ){\circle*{ .03573093}} 
  \put( 5.686446 ,   6.987484   ){\circle*{ .03573093}} 
  \put( 5.725663 ,   7.050557   ){\circle*{ .03573093}} 
  \put(  5.76488 ,   7.115429   ){\circle*{ .03573093}} 
  \put( 5.804097 ,   7.182162   ){\circle*{ .03573093}} 
  \put( 5.843314 ,   7.250824   ){\circle*{ .03573093}} 
  \put(  5.88253 ,   7.321481   ){\circle*{ .03573093}} 
  \put( 5.921748 ,   7.394204   ){\circle*{ .03573093}} 
  \put( 5.960965 ,   7.469064   ){\circle*{ .03573093}} 
  \put( 6.000181 ,   7.546135   ){\circle*{ .03573093}} 
  \put( 6.039398 ,   7.625494   ){\circle*{ .03573093}} 
  \put( 6.078615 ,   7.707217   ){\circle*{ .03573093}} 
  \put( 6.117832 ,   7.791387   ){\circle*{ .03573093}} 
  \put( 6.157049 ,   7.878087   ){\circle*{ .03573093}} 
  \put( 6.196266 ,     7.9674   ){\circle*{ .03573093}} 
  \put( 6.235483 ,   8.059418   ){\circle*{ .03573093}} 
  \put( 6.274699 ,   8.154229   ){\circle*{ .03573093}} 
  \put( 6.313916 ,   8.251927   ){\circle*{ .03573093}} 
  \put( 6.353133 ,   8.352609   ){\circle*{ .03573093}} 
  \put(  6.39235 ,   8.456375   ){\circle*{ .03573093}} 
  \put( 6.431567 ,   8.563326   ){\circle*{ .03573093}} 
  \put( 6.470784 ,   8.673568   ){\circle*{ .03573093}} 
  \put(     6.51 ,    8.78721   ){\circle*{ .03573093}} 
  \put( 6.549218 ,   8.904365   ){\circle*{ .03573093}} 
  \put( 6.588434 ,   9.025147   ){\circle*{ .03573093}} 
  \put( 6.627651 ,   9.149676   ){\circle*{ .03573093}} 
  \put( 6.666868 ,   9.278076   ){\circle*{ .03573093}} 
  \put( 6.706085 ,   9.410472   ){\circle*{ .03573093}} 
  \put( 6.745302 ,   9.54699    ){\circle*{ .03573093}} 
  \put( 6.784519 ,   9.68778    ){\circle*{ .03573093}} 
  \put( 6.823736 ,   9.83297    ){\circle*{ .03573093}} 
  \put( 6.862953 ,   9.98270    ){\circle*{ .03573093}} 
\end{picture}
\end{center}
%Finis.

apl>)off

