
apl>" <-APL2-------------------- sam308.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> '*x'  graph 1,1,0,i,1e6,xpi   ,1  ,0 ,0 " expdatv.tex

\begin{figure}[tbh]
\caption{Graph of y\#11O*x+nX0j1}
\begin{center}
\setlength{\unitlength}{ .716197in}
\begin{picture}(6.283185,8.37758)
%Draw a frame around the picture
 \put(0,0){\line(1,0){6.283185}}% bottom
 \put(0,0){\line(0,1){8.37758}}% left
 \put(0,8.37758){\line(1,0){6.283185}}% top
 \put(6.283185,0){\line(0,1){8.37758}}% right
%Draw the x axis
 \put(0,4.18879){\line(1,0){6.283185}}%x axis
  \put(  .785398 , 4.18879 ){\circle*{ .0286234}} 
  \put( 1.570796 , 4.18879 ){\circle*{ .0286234}} 
  \put( 2.356194 , 4.18879 ){\circle*{ .0286234}} 
  \put( 3.141593 , 4.18879 ){\circle*{ .0286234}} 
  \put(  3.92699 , 4.18879 ){\circle*{ .0286234}} 
  \put( 4.712389 , 4.18879 ){\circle*{ .0286234}} 
  \put( 5.497787 , 4.18879 ){\circle*{ .0286234}} 
%Draw the x axis marker values in pi
  \put(  .685398 , 3.993313 ){$ -\frac{3\pi}{4} $} 
  \put( 1.470796 , 3.993313 ){$  -\frac{\pi}{2} $} 
  \put( 2.256194 , 3.993313 ){$  -\frac{\pi}{4} $} 
  \put( 3.141593 , 3.993313 ){$               0 $} 
  \put(  3.92699 , 3.993313 ){$   \frac{\pi}{4} $} 
  \put( 4.712389 , 3.993313 ){$   \frac{\pi}{2} $} 
  \put( 5.497787 , 3.993313 ){$  \frac{3\pi}{4} $} 
%Draw the y axis
 \put(3.141593,0){\line(0,1){8.37758}}%y axis
%Draw the y axis markers
  \put( 3.141593 , 1.312313 ){\circle*{ .0286234}} 
  \put( 3.141593 , 2.750552 ){\circle*{ .0286234}} 
  \put( 3.141593 , 5.627029 ){\circle*{ .0286234}} 
  \put( 3.141593 , 7.065267 ){\circle*{ .0286234}} 
%Draw the y axis marker values
  \put( 3.211406 , 1.242784 ){$ -2 $} 
  \put( 3.211406 , 2.681022 ){$ -1 $} 
  \put( 3.211406 , 5.627029 ){$  1 $} 
  \put( 3.211406 , 7.065267 ){$  2 $} 
%Label the curve
  \put( 1.570796 , .0837758    ){n\#1} 
%Draw the data points
  \put(  .03141593 ,   4.065989   ){\circle*{ .0286234}} 
  \put(  .06283185 ,   3.943308   ){\circle*{ .0286234}} 
  \put(  .09424778 ,    3.82087   ){\circle*{ .0286234}} 
  \put(   .1256637 ,   3.698795   ){\circle*{ .0286234}} 
  \put(  .15707963 ,   3.577204   ){\circle*{ .0286234}} 
  \put(  .18849556 ,   3.456216   ){\circle*{ .0286234}} 
  \put(  .21991149 ,   3.335951   ){\circle*{ .0286234}} 
  \put(  .25132741 ,   3.216528   ){\circle*{ .0286234}} 
  \put(  .28274334 ,   3.098064   ){\circle*{ .0286234}} 
  \put(  .31415927 ,   2.980677   ){\circle*{ .0286234}} 
  \put(  .34557519 ,   2.864482   ){\circle*{ .0286234}} 
  \put(  .37699112 ,   2.749593   ){\circle*{ .0286234}} 
  \put(  .40840704 ,   2.636126   ){\circle*{ .0286234}} 
  \put(  .43982297 ,    2.52419   ){\circle*{ .0286234}} 
  \put(  .47123890 ,   2.413897   ){\circle*{ .0286234}} 
  \put(    .502655 ,   2.305356   ){\circle*{ .0286234}} 
  \put(     .53407 ,   2.198674   ){\circle*{ .0286234}} 
  \put(    .565487 ,   2.093955   ){\circle*{ .0286234}} 
  \put(    .596903 ,   1.991304   ){\circle*{ .0286234}} 
  \put(    .628319 ,   1.890822   ){\circle*{ .0286234}} 
  \put(    .659734 ,   1.792607   ){\circle*{ .0286234}} 
  \put(     .69115 ,   1.696757   ){\circle*{ .0286234}} 
  \put(    .722566 ,   1.603367   ){\circle*{ .0286234}} 
  \put(    .753982 ,   1.512528   ){\circle*{ .0286234}} 
  \put(    .785398 ,   1.424330   ){\circle*{ .0286234}} 
  \put(    .816814 ,    1.33886   ){\circle*{ .0286234}} 
  \put(     .84823 ,   1.256203   ){\circle*{ .0286234}} 
  \put(    .879646 ,   1.176440   ){\circle*{ .0286234}} 
  \put(    .911062 ,   1.099650   ){\circle*{ .0286234}} 
  \put(    .942478 ,   1.025908   ){\circle*{ .0286234}} 
  \put(    .973894 ,   .955288    ){\circle*{ .0286234}} 
  \put(   1.005310 ,   .887858    ){\circle*{ .0286234}} 
  \put(   1.036726 ,   .823687    ){\circle*{ .0286234}} 
  \put(   1.068142 ,   .762836    ){\circle*{ .0286234}} 
  \put(   1.099557 ,   .705367    ){\circle*{ .0286234}} 
  \put(   1.130973 ,   .651335    ){\circle*{ .0286234}} 
  \put(   1.162389 ,   .600794    ){\circle*{ .0286234}} 
  \put(   1.193805 ,   .553794    ){\circle*{ .0286234}} 
  \put(   1.225221 ,   .510382    ){\circle*{ .0286234}} 
  \put(   1.256637 , .47059907    ){\circle*{ .0286234}} 
  \put(   1.288053 ,   .434486    ){\circle*{ .0286234}} 
  \put(   1.319469 , .40207799    ){\circle*{ .0286234}} 
  \put(   1.350885 ,   .373407    ){\circle*{ .0286234}} 
  \put(     1.3823 , .34850134    ){\circle*{ .0286234}} 
  \put(   1.413717 , .32738557    ){\circle*{ .0286234}} 
  \put(   1.445133 , .31008055    ){\circle*{ .0286234}} 
  \put(   1.476549 , .29660335    ){\circle*{ .0286234}} 
  \put(   1.507964 , .28696726    ){\circle*{ .0286234}} 
  \put(    1.53938 ,  .2811818    ){\circle*{ .0286234}} 
  \put(   1.570796 , .27925268    ){\circle*{ .0286234}} 
  \put(   1.602212 ,  .2811818    ){\circle*{ .0286234}} 
  \put(   1.633628 , .28696726    ){\circle*{ .0286234}} 
  \put(   1.665044 , .29660335    ){\circle*{ .0286234}} 
  \put(    1.69646 , .31008055    ){\circle*{ .0286234}} 
  \put(   1.727876 , .32738557    ){\circle*{ .0286234}} 
  \put(   1.759292 , .34850134    ){\circle*{ .0286234}} 
  \put(   1.790708 ,   .373407    ){\circle*{ .0286234}} 
  \put(   1.822124 , .40207799    ){\circle*{ .0286234}} 
  \put(   1.853540 ,   .434486    ){\circle*{ .0286234}} 
  \put(   1.884956 , .47059907    ){\circle*{ .0286234}} 
  \put(   1.916372 ,   .510382    ){\circle*{ .0286234}} 
  \put(   1.947787 ,   .553794    ){\circle*{ .0286234}} 
  \put(   1.979203 ,   .600794    ){\circle*{ .0286234}} 
  \put(   2.010619 ,   .651335    ){\circle*{ .0286234}} 
  \put(   2.042035 ,   .705367    ){\circle*{ .0286234}} 
  \put(   2.073451 ,   .762836    ){\circle*{ .0286234}} 
  \put(   2.104867 ,   .823687    ){\circle*{ .0286234}} 
  \put(   2.136283 ,   .887858    ){\circle*{ .0286234}} 
  \put(   2.167699 ,   .955288    ){\circle*{ .0286234}} 
  \put(   2.199115 ,   1.025908   ){\circle*{ .0286234}} 
  \put(    2.23053 ,   1.099650   ){\circle*{ .0286234}} 
  \put(   2.261947 ,   1.176440   ){\circle*{ .0286234}} 
  \put(   2.293363 ,   1.256203   ){\circle*{ .0286234}} 
  \put(   2.324779 ,    1.33886   ){\circle*{ .0286234}} 
  \put(   2.356194 ,   1.424330   ){\circle*{ .0286234}} 
  \put(    2.38761 ,   1.512528   ){\circle*{ .0286234}} 
  \put(   2.419026 ,   1.603367   ){\circle*{ .0286234}} 
  \put(   2.450442 ,   1.696757   ){\circle*{ .0286234}} 
  \put(   2.481858 ,   1.792607   ){\circle*{ .0286234}} 
  \put(   2.513274 ,   1.890822   ){\circle*{ .0286234}} 
  \put(    2.54469 ,   1.991304   ){\circle*{ .0286234}} 
  \put(   2.576106 ,   2.093955   ){\circle*{ .0286234}} 
  \put(   2.607522 ,   2.198674   ){\circle*{ .0286234}} 
  \put(   2.638938 ,   2.305356   ){\circle*{ .0286234}} 
  \put(   2.670354 ,   2.413897   ){\circle*{ .0286234}} 
  \put(   2.701770 ,    2.52419   ){\circle*{ .0286234}} 
  \put(   2.733186 ,   2.636126   ){\circle*{ .0286234}} 
  \put(   2.764602 ,   2.749593   ){\circle*{ .0286234}} 
  \put(   2.796017 ,   2.864482   ){\circle*{ .0286234}} 
  \put(   2.827433 ,   2.980677   ){\circle*{ .0286234}} 
  \put(   2.858849 ,   3.098064   ){\circle*{ .0286234}} 
  \put(   2.890265 ,   3.216528   ){\circle*{ .0286234}} 
  \put(   2.921681 ,   3.335951   ){\circle*{ .0286234}} 
  \put(   2.953097 ,   3.456216   ){\circle*{ .0286234}} 
  \put(   2.984513 ,   3.577204   ){\circle*{ .0286234}} 
  \put(   3.015929 ,   3.698795   ){\circle*{ .0286234}} 
  \put(   3.047345 ,    3.82087   ){\circle*{ .0286234}} 
  \put(    3.07876 ,   3.943308   ){\circle*{ .0286234}} 
  \put(   3.110177 ,   4.065989   ){\circle*{ .0286234}} 
  \put(   3.141593 ,    4.18879   ){\circle*{ .0286234}} 
  \put(   3.173009 ,   4.311592   ){\circle*{ .0286234}} 
  \put(   3.204425 ,   4.434272   ){\circle*{ .0286234}} 
  \put(    3.23584 ,    4.55671   ){\circle*{ .0286234}} 
  \put(   3.267256 ,   4.678785   ){\circle*{ .0286234}} 
  \put(   3.298672 ,   4.800377   ){\circle*{ .0286234}} 
  \put(   3.330088 ,   4.921364   ){\circle*{ .0286234}} 
  \put(   3.361504 ,   5.041629   ){\circle*{ .0286234}} 
  \put(    3.39292 ,   5.161053   ){\circle*{ .0286234}} 
  \put(   3.424336 ,   5.279516   ){\circle*{ .0286234}} 
  \put(   3.455752 ,   5.396904   ){\circle*{ .0286234}} 
  \put(   3.487168 ,   5.513099   ){\circle*{ .0286234}} 
  \put(   3.518584 ,   5.627987   ){\circle*{ .0286234}} 
  \put(   3.550000 ,   5.741455   ){\circle*{ .0286234}} 
  \put(   3.581416 ,    5.85339   ){\circle*{ .0286234}} 
  \put(   3.612832 ,   5.963683   ){\circle*{ .0286234}} 
  \put(   3.644247 ,   6.072224   ){\circle*{ .0286234}} 
  \put(   3.675663 ,   6.178907   ){\circle*{ .0286234}} 
  \put(   3.707079 ,   6.283625   ){\circle*{ .0286234}} 
  \put(   3.738495 ,   6.386276   ){\circle*{ .0286234}} 
  \put(   3.769911 ,   6.486759   ){\circle*{ .0286234}} 
  \put(   3.801327 ,   6.584973   ){\circle*{ .0286234}} 
  \put(   3.832743 ,   6.680823   ){\circle*{ .0286234}} 
  \put(   3.864159 ,   6.774214   ){\circle*{ .0286234}} 
  \put(   3.895575 ,   6.865053   ){\circle*{ .0286234}} 
  \put(    3.92699 ,    6.95325   ){\circle*{ .0286234}} 
  \put(   3.958407 ,    7.03872   ){\circle*{ .0286234}} 
  \put(   3.989823 ,   7.121378   ){\circle*{ .0286234}} 
  \put(   4.021239 ,    7.20114   ){\circle*{ .0286234}} 
  \put(   4.052655 ,    7.27793   ){\circle*{ .0286234}} 
  \put(    4.08407 ,   7.351673   ){\circle*{ .0286234}} 
  \put(   4.115486 ,   7.422293   ){\circle*{ .0286234}} 
  \put(   4.146902 ,   7.489722   ){\circle*{ .0286234}} 
  \put(   4.178318 ,   7.553893   ){\circle*{ .0286234}} 
  \put(   4.209734 ,   7.614744   ){\circle*{ .0286234}} 
  \put(    4.24115 ,   7.672214   ){\circle*{ .0286234}} 
  \put(   4.272566 ,   7.726246   ){\circle*{ .0286234}} 
  \put(   4.303982 ,   7.776786   ){\circle*{ .0286234}} 
  \put(   4.335398 ,   7.823786   ){\circle*{ .0286234}} 
  \put(   4.366814 ,   7.867199   ){\circle*{ .0286234}} 
  \put(   4.398230 ,   7.906981   ){\circle*{ .0286234}} 
  \put(   4.429646 ,   7.943094   ){\circle*{ .0286234}} 
  \put(   4.461062 ,   7.975502   ){\circle*{ .0286234}} 
  \put(   4.492477 ,   8.004173   ){\circle*{ .0286234}} 
  \put(   4.523893 ,   8.029079   ){\circle*{ .0286234}} 
  \put(   4.555309 ,   8.050195   ){\circle*{ .0286234}} 
  \put(   4.586725 ,   8.067500   ){\circle*{ .0286234}} 
  \put(   4.618141 ,   8.080977   ){\circle*{ .0286234}} 
  \put(   4.649557 ,   8.090613   ){\circle*{ .0286234}} 
  \put(   4.680973 ,   8.096399   ){\circle*{ .0286234}} 
  \put(   4.712389 ,   8.098328   ){\circle*{ .0286234}} 
  \put(   4.743805 ,   8.096399   ){\circle*{ .0286234}} 
  \put(    4.77522 ,   8.090613   ){\circle*{ .0286234}} 
  \put(   4.806637 ,   8.080977   ){\circle*{ .0286234}} 
  \put(   4.838053 ,   8.067500   ){\circle*{ .0286234}} 
  \put(   4.869469 ,   8.050195   ){\circle*{ .0286234}} 
  \put(   4.900885 ,   8.029079   ){\circle*{ .0286234}} 
  \put(     4.9323 ,   8.004173   ){\circle*{ .0286234}} 
  \put(   4.963716 ,   7.975502   ){\circle*{ .0286234}} 
  \put(   4.995132 ,   7.943094   ){\circle*{ .0286234}} 
  \put(   5.026548 ,   7.906981   ){\circle*{ .0286234}} 
  \put(   5.057964 ,   7.867199   ){\circle*{ .0286234}} 
  \put(    5.08938 ,   7.823786   ){\circle*{ .0286234}} 
  \put(   5.120796 ,   7.776786   ){\circle*{ .0286234}} 
  \put(   5.152212 ,   7.726246   ){\circle*{ .0286234}} 
  \put(   5.183628 ,   7.672214   ){\circle*{ .0286234}} 
  \put(   5.215044 ,   7.614744   ){\circle*{ .0286234}} 
  \put(   5.246460 ,   7.553893   ){\circle*{ .0286234}} 
  \put(   5.277876 ,   7.489722   ){\circle*{ .0286234}} 
  \put(   5.309292 ,   7.422293   ){\circle*{ .0286234}} 
  \put(   5.340708 ,   7.351673   ){\circle*{ .0286234}} 
  \put(   5.372123 ,    7.27793   ){\circle*{ .0286234}} 
  \put(   5.403539 ,    7.20114   ){\circle*{ .0286234}} 
  \put(   5.434955 ,   7.121378   ){\circle*{ .0286234}} 
  \put(   5.466371 ,    7.03872   ){\circle*{ .0286234}} 
  \put(   5.497787 ,    6.95325   ){\circle*{ .0286234}} 
  \put(   5.529203 ,   6.865053   ){\circle*{ .0286234}} 
  \put(   5.560619 ,   6.774214   ){\circle*{ .0286234}} 
  \put(   5.592035 ,   6.680823   ){\circle*{ .0286234}} 
  \put(    5.62345 ,   6.584973   ){\circle*{ .0286234}} 
  \put(   5.654867 ,   6.486759   ){\circle*{ .0286234}} 
  \put(   5.686283 ,   6.386276   ){\circle*{ .0286234}} 
  \put(   5.717699 ,   6.283625   ){\circle*{ .0286234}} 
  \put(   5.749115 ,   6.178907   ){\circle*{ .0286234}} 
  \put(    5.78053 ,   6.072224   ){\circle*{ .0286234}} 
  \put(   5.811946 ,   5.963683   ){\circle*{ .0286234}} 
  \put(   5.843362 ,    5.85339   ){\circle*{ .0286234}} 
  \put(   5.874778 ,   5.741455   ){\circle*{ .0286234}} 
  \put(   5.906194 ,   5.627987   ){\circle*{ .0286234}} 
  \put(    5.93761 ,   5.513099   ){\circle*{ .0286234}} 
  \put(   5.969026 ,   5.396904   ){\circle*{ .0286234}} 
  \put(   6.000442 ,   5.279516   ){\circle*{ .0286234}} 
  \put(   6.031858 ,   5.161053   ){\circle*{ .0286234}} 
  \put(   6.063274 ,   5.041629   ){\circle*{ .0286234}} 
  \put(   6.094690 ,   4.921364   ){\circle*{ .0286234}} 
  \put(   6.126106 ,   4.800377   ){\circle*{ .0286234}} 
  \put(   6.157522 ,   4.678785   ){\circle*{ .0286234}} 
  \put(   6.188938 ,    4.55671   ){\circle*{ .0286234}} 
  \put(   6.220353 ,   4.434272   ){\circle*{ .0286234}} 
  \put(   6.251769 ,   4.311592   ){\circle*{ .0286234}} 
%Finis.

apl> '*x'  graph 2,1,0,i,1e6,xpi   ,0.5,0 ,0 " expdatv.tex

%Label the curve
  \put( 1.570796 , 1.622059   ){n\# .5} 
%Draw the data points
  \put(  .03141593 , 4.114307   ){\circle*{ .0286234}} 
  \put(  .06283185 , 4.039898   ){\circle*{ .0286234}} 
  \put(  .09424778 , 3.965635   ){\circle*{ .0286234}} 
  \put(   .1256637 , 3.891593   ){\circle*{ .0286234}} 
  \put(  .15707963 , 3.817844   ){\circle*{ .0286234}} 
  \put(  .18849556 , 3.744461   ){\circle*{ .0286234}} 
  \put(  .21991149 , 3.671517   ){\circle*{ .0286234}} 
  \put(  .25132741 , 3.599083   ){\circle*{ .0286234}} 
  \put(  .28274334 , 3.527231   ){\circle*{ .0286234}} 
  \put(  .31415927 , 3.456032   ){\circle*{ .0286234}} 
  \put(  .34557519 , 3.385556   ){\circle*{ .0286234}} 
  \put(  .37699112 , 3.315873   ){\circle*{ .0286234}} 
  \put(  .40840704 , 3.247052   ){\circle*{ .0286234}} 
  \put(  .43982297 , 3.179159   ){\circle*{ .0286234}} 
  \put(  .47123890 , 3.112263   ){\circle*{ .0286234}} 
  \put(    .502655 , 3.046430   ){\circle*{ .0286234}} 
  \put(     .53407 , 2.981724   ){\circle*{ .0286234}} 
  \put(    .565487 , 2.918209   ){\circle*{ .0286234}} 
  \put(    .596903 , 2.855948   ){\circle*{ .0286234}} 
  \put(    .628319 , 2.795002   ){\circle*{ .0286234}} 
  \put(    .659734 , 2.735432   ){\circle*{ .0286234}} 
  \put(     .69115 , 2.677296   ){\circle*{ .0286234}} 
  \put(    .722566 , 2.620652   ){\circle*{ .0286234}} 
  \put(    .753982 , 2.565555   ){\circle*{ .0286234}} 
  \put(    .785398 ,  2.51206   ){\circle*{ .0286234}} 
  \put(    .816814 ,  2.46022   ){\circle*{ .0286234}} 
  \put(     .84823 , 2.410086   ){\circle*{ .0286234}} 
  \put(    .879646 , 2.361707   ){\circle*{ .0286234}} 
  \put(    .911062 , 2.315132   ){\circle*{ .0286234}} 
  \put(    .942478 , 2.270405   ){\circle*{ .0286234}} 
  \put(    .973894 , 2.227572   ){\circle*{ .0286234}} 
  \put(   1.005310 , 2.186674   ){\circle*{ .0286234}} 
  \put(   1.036726 , 2.147752   ){\circle*{ .0286234}} 
  \put(   1.068142 , 2.110844   ){\circle*{ .0286234}} 
  \put(   1.099557 , 2.075987   ){\circle*{ .0286234}} 
  \put(   1.130973 , 2.043215   ){\circle*{ .0286234}} 
  \put(   1.162389 ,  2.01256   ){\circle*{ .0286234}} 
  \put(   1.193805 , 1.984054   ){\circle*{ .0286234}} 
  \put(   1.225221 , 1.957723   ){\circle*{ .0286234}} 
  \put(   1.256637 , 1.933593   ){\circle*{ .0286234}} 
  \put(   1.288053 , 1.911690   ){\circle*{ .0286234}} 
  \put(   1.319469 , 1.892033   ){\circle*{ .0286234}} 
  \put(   1.350885 , 1.874643   ){\circle*{ .0286234}} 
  \put(     1.3823 , 1.859537   ){\circle*{ .0286234}} 
  \put(   1.413717 ,  1.84673   ){\circle*{ .0286234}} 
  \put(   1.445133 , 1.836234   ){\circle*{ .0286234}} 
  \put(   1.476549 , 1.828060   ){\circle*{ .0286234}} 
  \put(   1.507964 , 1.822215   ){\circle*{ .0286234}} 
  \put(    1.53938 , 1.818706   ){\circle*{ .0286234}} 
  \put(   1.570796 , 1.817536   ){\circle*{ .0286234}} 
  \put(   1.602212 , 1.818706   ){\circle*{ .0286234}} 
  \put(   1.633628 , 1.822215   ){\circle*{ .0286234}} 
  \put(   1.665044 , 1.828060   ){\circle*{ .0286234}} 
  \put(    1.69646 , 1.836234   ){\circle*{ .0286234}} 
  \put(   1.727876 ,  1.84673   ){\circle*{ .0286234}} 
  \put(   1.759292 , 1.859537   ){\circle*{ .0286234}} 
  \put(   1.790708 , 1.874643   ){\circle*{ .0286234}} 
  \put(   1.822124 , 1.892033   ){\circle*{ .0286234}} 
  \put(   1.853540 , 1.911690   ){\circle*{ .0286234}} 
  \put(   1.884956 , 1.933593   ){\circle*{ .0286234}} 
  \put(   1.916372 , 1.957723   ){\circle*{ .0286234}} 
  \put(   1.947787 , 1.984054   ){\circle*{ .0286234}} 
  \put(   1.979203 ,  2.01256   ){\circle*{ .0286234}} 
  \put(   2.010619 , 2.043215   ){\circle*{ .0286234}} 
  \put(   2.042035 , 2.075987   ){\circle*{ .0286234}} 
  \put(   2.073451 , 2.110844   ){\circle*{ .0286234}} 
  \put(   2.104867 , 2.147752   ){\circle*{ .0286234}} 
  \put(   2.136283 , 2.186674   ){\circle*{ .0286234}} 
  \put(   2.167699 , 2.227572   ){\circle*{ .0286234}} 
  \put(   2.199115 , 2.270405   ){\circle*{ .0286234}} 
  \put(    2.23053 , 2.315132   ){\circle*{ .0286234}} 
  \put(   2.261947 , 2.361707   ){\circle*{ .0286234}} 
  \put(   2.293363 , 2.410086   ){\circle*{ .0286234}} 
  \put(   2.324779 ,  2.46022   ){\circle*{ .0286234}} 
  \put(   2.356194 ,  2.51206   ){\circle*{ .0286234}} 
  \put(    2.38761 , 2.565555   ){\circle*{ .0286234}} 
  \put(   2.419026 , 2.620652   ){\circle*{ .0286234}} 
  \put(   2.450442 , 2.677296   ){\circle*{ .0286234}} 
  \put(   2.481858 , 2.735432   ){\circle*{ .0286234}} 
  \put(   2.513274 , 2.795002   ){\circle*{ .0286234}} 
  \put(    2.54469 , 2.855948   ){\circle*{ .0286234}} 
  \put(   2.576106 , 2.918209   ){\circle*{ .0286234}} 
  \put(   2.607522 , 2.981724   ){\circle*{ .0286234}} 
  \put(   2.638938 , 3.046430   ){\circle*{ .0286234}} 
  \put(   2.670354 , 3.112263   ){\circle*{ .0286234}} 
  \put(   2.701770 , 3.179159   ){\circle*{ .0286234}} 
  \put(   2.733186 , 3.247052   ){\circle*{ .0286234}} 
  \put(   2.764602 , 3.315873   ){\circle*{ .0286234}} 
  \put(   2.796017 , 3.385556   ){\circle*{ .0286234}} 
  \put(   2.827433 , 3.456032   ){\circle*{ .0286234}} 
  \put(   2.858849 , 3.527231   ){\circle*{ .0286234}} 
  \put(   2.890265 , 3.599083   ){\circle*{ .0286234}} 
  \put(   2.921681 , 3.671517   ){\circle*{ .0286234}} 
  \put(   2.953097 , 3.744461   ){\circle*{ .0286234}} 
  \put(   2.984513 , 3.817844   ){\circle*{ .0286234}} 
  \put(   3.015929 , 3.891593   ){\circle*{ .0286234}} 
  \put(   3.047345 , 3.965635   ){\circle*{ .0286234}} 
  \put(    3.07876 , 4.039898   ){\circle*{ .0286234}} 
  \put(   3.110177 , 4.114307   ){\circle*{ .0286234}} 
  \put(   3.141593 ,  4.18879   ){\circle*{ .0286234}} 
  \put(   3.173009 , 4.263273   ){\circle*{ .0286234}} 
  \put(   3.204425 , 4.337682   ){\circle*{ .0286234}} 
  \put(    3.23584 , 4.411945   ){\circle*{ .0286234}} 
  \put(   3.267256 , 4.485987   ){\circle*{ .0286234}} 
  \put(   3.298672 , 4.559736   ){\circle*{ .0286234}} 
  \put(   3.330088 , 4.633119   ){\circle*{ .0286234}} 
  \put(   3.361504 , 4.706063   ){\circle*{ .0286234}} 
  \put(    3.39292 , 4.778497   ){\circle*{ .0286234}} 
  \put(   3.424336 , 4.850349   ){\circle*{ .0286234}} 
  \put(   3.455752 , 4.921548   ){\circle*{ .0286234}} 
  \put(   3.487168 , 4.992024   ){\circle*{ .0286234}} 
  \put(   3.518584 , 5.061707   ){\circle*{ .0286234}} 
  \put(   3.550000 , 5.130529   ){\circle*{ .0286234}} 
  \put(   3.581416 , 5.198421   ){\circle*{ .0286234}} 
  \put(   3.612832 , 5.265317   ){\circle*{ .0286234}} 
  \put(   3.644247 ,  5.33115   ){\circle*{ .0286234}} 
  \put(   3.675663 , 5.395857   ){\circle*{ .0286234}} 
  \put(   3.707079 , 5.459372   ){\circle*{ .0286234}} 
  \put(   3.738495 , 5.521633   ){\circle*{ .0286234}} 
  \put(   3.769911 , 5.582579   ){\circle*{ .0286234}} 
  \put(   3.801327 , 5.642149   ){\circle*{ .0286234}} 
  \put(   3.832743 , 5.700285   ){\circle*{ .0286234}} 
  \put(   3.864159 , 5.756929   ){\circle*{ .0286234}} 
  \put(   3.895575 , 5.812026   ){\circle*{ .0286234}} 
  \put(    3.92699 ,  5.86552   ){\circle*{ .0286234}} 
  \put(   3.958407 ,  5.91736   ){\circle*{ .0286234}} 
  \put(   3.989823 , 5.967494   ){\circle*{ .0286234}} 
  \put(   4.021239 , 6.015873   ){\circle*{ .0286234}} 
  \put(   4.052655 , 6.062449   ){\circle*{ .0286234}} 
  \put(    4.08407 , 6.107175   ){\circle*{ .0286234}} 
  \put(   4.115486 , 6.150009   ){\circle*{ .0286234}} 
  \put(   4.146902 , 6.190906   ){\circle*{ .0286234}} 
  \put(   4.178318 , 6.229829   ){\circle*{ .0286234}} 
  \put(   4.209734 , 6.266736   ){\circle*{ .0286234}} 
  \put(    4.24115 , 6.301593   ){\circle*{ .0286234}} 
  \put(   4.272566 , 6.334365   ){\circle*{ .0286234}} 
  \put(   4.303982 , 6.365020   ){\circle*{ .0286234}} 
  \put(   4.335398 , 6.393527   ){\circle*{ .0286234}} 
  \put(   4.366814 , 6.419858   ){\circle*{ .0286234}} 
  \put(   4.398230 , 6.443987   ){\circle*{ .0286234}} 
  \put(   4.429646 ,  6.46589   ){\circle*{ .0286234}} 
  \put(   4.461062 , 6.485547   ){\circle*{ .0286234}} 
  \put(   4.492477 , 6.502937   ){\circle*{ .0286234}} 
  \put(   4.523893 , 6.518043   ){\circle*{ .0286234}} 
  \put(   4.555309 ,  6.53085   ){\circle*{ .0286234}} 
  \put(   4.586725 , 6.541347   ){\circle*{ .0286234}} 
  \put(   4.618141 ,  6.54952   ){\circle*{ .0286234}} 
  \put(   4.649557 , 6.555365   ){\circle*{ .0286234}} 
  \put(   4.680973 , 6.558875   ){\circle*{ .0286234}} 
  \put(   4.712389 , 6.560045   ){\circle*{ .0286234}} 
  \put(   4.743805 , 6.558875   ){\circle*{ .0286234}} 
  \put(    4.77522 , 6.555365   ){\circle*{ .0286234}} 
  \put(   4.806637 ,  6.54952   ){\circle*{ .0286234}} 
  \put(   4.838053 , 6.541347   ){\circle*{ .0286234}} 
  \put(   4.869469 ,  6.53085   ){\circle*{ .0286234}} 
  \put(   4.900885 , 6.518043   ){\circle*{ .0286234}} 
  \put(     4.9323 , 6.502937   ){\circle*{ .0286234}} 
  \put(   4.963716 , 6.485547   ){\circle*{ .0286234}} 
  \put(   4.995132 ,  6.46589   ){\circle*{ .0286234}} 
  \put(   5.026548 , 6.443987   ){\circle*{ .0286234}} 
  \put(   5.057964 , 6.419858   ){\circle*{ .0286234}} 
  \put(    5.08938 , 6.393527   ){\circle*{ .0286234}} 
  \put(   5.120796 , 6.365020   ){\circle*{ .0286234}} 
  \put(   5.152212 , 6.334365   ){\circle*{ .0286234}} 
  \put(   5.183628 , 6.301593   ){\circle*{ .0286234}} 
  \put(   5.215044 , 6.266736   ){\circle*{ .0286234}} 
  \put(   5.246460 , 6.229829   ){\circle*{ .0286234}} 
  \put(   5.277876 , 6.190906   ){\circle*{ .0286234}} 
  \put(   5.309292 , 6.150009   ){\circle*{ .0286234}} 
  \put(   5.340708 , 6.107175   ){\circle*{ .0286234}} 
  \put(   5.372123 , 6.062449   ){\circle*{ .0286234}} 
  \put(   5.403539 , 6.015873   ){\circle*{ .0286234}} 
  \put(   5.434955 , 5.967494   ){\circle*{ .0286234}} 
  \put(   5.466371 ,  5.91736   ){\circle*{ .0286234}} 
  \put(   5.497787 ,  5.86552   ){\circle*{ .0286234}} 
  \put(   5.529203 , 5.812026   ){\circle*{ .0286234}} 
  \put(   5.560619 , 5.756929   ){\circle*{ .0286234}} 
  \put(   5.592035 , 5.700285   ){\circle*{ .0286234}} 
  \put(    5.62345 , 5.642149   ){\circle*{ .0286234}} 
  \put(   5.654867 , 5.582579   ){\circle*{ .0286234}} 
  \put(   5.686283 , 5.521633   ){\circle*{ .0286234}} 
  \put(   5.717699 , 5.459372   ){\circle*{ .0286234}} 
  \put(   5.749115 , 5.395857   ){\circle*{ .0286234}} 
  \put(    5.78053 ,  5.33115   ){\circle*{ .0286234}} 
  \put(   5.811946 , 5.265317   ){\circle*{ .0286234}} 
  \put(   5.843362 , 5.198421   ){\circle*{ .0286234}} 
  \put(   5.874778 , 5.130529   ){\circle*{ .0286234}} 
  \put(   5.906194 , 5.061707   ){\circle*{ .0286234}} 
  \put(    5.93761 , 4.992024   ){\circle*{ .0286234}} 
  \put(   5.969026 , 4.921548   ){\circle*{ .0286234}} 
  \put(   6.000442 , 4.850349   ){\circle*{ .0286234}} 
  \put(   6.031858 , 4.778497   ){\circle*{ .0286234}} 
  \put(   6.063274 , 4.706063   ){\circle*{ .0286234}} 
  \put(   6.094690 , 4.633119   ){\circle*{ .0286234}} 
  \put(   6.126106 , 4.559736   ){\circle*{ .0286234}} 
  \put(   6.157522 , 4.485987   ){\circle*{ .0286234}} 
  \put(   6.188938 , 4.411945   ){\circle*{ .0286234}} 
  \put(   6.220353 , 4.337682   ){\circle*{ .0286234}} 
  \put(   6.251769 , 4.263273   ){\circle*{ .0286234}} 
\end{picture}
\end{center}
%Finis.

apl>)off

