
apl>" <-APL2-------------------- sam304.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 0,0,1,r,1e6,-5,5,1,1,10,0 " expdatx.tex

\begin{figure}[tbh]
\caption{Graph of y\#9O*x+(n\#1)X0j1}
\begin{center}
\setlength{\unitlength}{ .06983908in}
\begin{picture}(64.43384,85.91178)
%Draw a frame around the picture
 \put(0,0){\line(1,0){64.43384}}% bottom
 \put(0,0){\line(0,1){85.91178}}% left
 \put(0,85.91178){\line(1,0){64.43384}}% top
 \put(64.43384,0){\line(0,1){85.91178}}% right
%Draw the x axis
 \put(0,0){\line(1,0){64.43384}}%x axis
  \put( 6.443384 , 0 ){\circle*{ .29353193}} 
  \put( 12.88677 , 0 ){\circle*{ .29353193}} 
  \put( 19.33015 , 0 ){\circle*{ .29353193}} 
  \put( 25.77354 , 0 ){\circle*{ .29353193}} 
  \put( 32.21692 , 0 ){\circle*{ .29353193}} 
  \put(  38.6603 , 0 ){\circle*{ .29353193}} 
  \put( 45.10369 , 0 ){\circle*{ .29353193}} 
  \put( 51.54707 , 0 ){\circle*{ .29353193}} 
  \put( 57.99045 , 0 ){\circle*{ .29353193}} 
%Draw the x axis marker values
  \put( 6.427864 , 0 ){$ -4 $} 
  \put( 12.87125 , 0 ){$ -3 $} 
  \put( 19.31463 , 0 ){$ -2 $} 
  \put( 25.75802 , 0 ){$ -1 $} 
  \put( 32.21692 , 0 ){$  0 $} 
  \put(  38.6603 , 0 ){$  1 $} 
  \put( 45.10369 , 0 ){$  2 $} 
  \put( 51.54707 , 0 ){$  3 $} 
  \put( 57.99045 , 0 ){$  4 $} 
%Draw the y axis
 \put(32.21692,0){\line(0,1){85.91178}}%y axis
%Draw the y axis markers
  \put( 32.21692 , 12.86009 ){\circle*{ .29353193}} 
  \put( 32.21692 , 22.86009 ){\circle*{ .29353193}} 
  \put( 32.21692 , 32.86009 ){\circle*{ .29353193}} 
  \put( 32.21692 , 42.86009 ){\circle*{ .29353193}} 
  \put( 32.21692 , 52.86009 ){\circle*{ .29353193}} 
  \put( 32.21692 , 62.86009 ){\circle*{ .29353193}} 
  \put( 32.21692 , 72.86009 ){\circle*{ .29353193}} 
  \put( 32.21692 , 82.86009 ){\circle*{ .29353193}} 
%Draw the y axis marker values
  \put( 32.93285 , 12.86009 ){$ 10 $} 
  \put( 32.93285 , 22.86009 ){$ 20 $} 
  \put( 32.93285 , 32.86009 ){$ 30 $} 
  \put( 32.93285 , 42.86009 ){$ 40 $} 
  \put( 32.93285 , 52.86009 ){$ 50 $} 
  \put( 32.93285 , 62.86009 ){$ 60 $} 
  \put( 32.93285 , 72.86009 ){$ 70 $} 
  \put( 32.93285 , 82.86009 ){$ 80 $} 
%Draw the data points
  \put(  .32216919 , 2.863913   ){\circle*{ .29353193}} 
  \put(    .644338 , 2.864109   ){\circle*{ .29353193}} 
  \put(    .966508 , 2.864315   ){\circle*{ .29353193}} 
  \put(   1.288677 , 2.864532   ){\circle*{ .29353193}} 
  \put(   1.610846 ,  2.86476   ){\circle*{ .29353193}} 
  \put(   1.933015 , 2.865000   ){\circle*{ .29353193}} 
  \put(   2.255184 , 2.865252   ){\circle*{ .29353193}} 
  \put(   2.577354 , 2.865517   ){\circle*{ .29353193}} 
  \put(   2.899523 , 2.865795   ){\circle*{ .29353193}} 
  \put(   3.221692 , 2.866088   ){\circle*{ .29353193}} 
  \put(   3.543861 , 2.866396   ){\circle*{ .29353193}} 
  \put(    3.86603 , 2.866719   ){\circle*{ .29353193}} 
  \put(   4.188199 , 2.867059   ){\circle*{ .29353193}} 
  \put(   4.510369 , 2.867417   ){\circle*{ .29353193}} 
  \put(   4.832538 , 2.867793   ){\circle*{ .29353193}} 
  \put(   5.154707 , 2.868188   ){\circle*{ .29353193}} 
  \put(   5.476876 , 2.868603   ){\circle*{ .29353193}} 
  \put(   5.799045 , 2.869040   ){\circle*{ .29353193}} 
  \put(   6.121215 , 2.869499   ){\circle*{ .29353193}} 
  \put(   6.443384 , 2.869982   ){\circle*{ .29353193}} 
  \put(   6.765553 , 2.870489   ){\circle*{ .29353193}} 
  \put(   7.087722 , 2.871022   ){\circle*{ .29353193}} 
  \put(   7.409891 , 2.871583   ){\circle*{ .29353193}} 
  \put(    7.73206 , 2.872173   ){\circle*{ .29353193}} 
  \put(   8.054230 , 2.872792   ){\circle*{ .29353193}} 
  \put(   8.376399 , 2.873444   ){\circle*{ .29353193}} 
  \put(   8.698568 , 2.874129   ){\circle*{ .29353193}} 
  \put(   9.020737 , 2.874849   ){\circle*{ .29353193}} 
  \put(   9.342906 , 2.875606   ){\circle*{ .29353193}} 
  \put(    9.66508 , 2.876401   ){\circle*{ .29353193}} 
  \put(    9.98724 , 2.877238   ){\circle*{ .29353193}} 
  \put(   10.30941 , 2.878117   ){\circle*{ .29353193}} 
  \put(   10.63158 , 2.879042   ){\circle*{ .29353193}} 
  \put(   10.95375 , 2.880014   ){\circle*{ .29353193}} 
  \put(   11.27592 , 2.881035   ){\circle*{ .29353193}} 
  \put(   11.59809 , 2.882110   ){\circle*{ .29353193}} 
  \put(   11.92026 , 2.883239   ){\circle*{ .29353193}} 
  \put(   12.24243 , 2.884426   ){\circle*{ .29353193}} 
  \put(   12.56460 , 2.885674   ){\circle*{ .29353193}} 
  \put(   12.88677 , 2.886986   ){\circle*{ .29353193}} 
  \put(   13.20894 , 2.888365   ){\circle*{ .29353193}} 
  \put(    13.5311 , 2.889815   ){\circle*{ .29353193}} 
  \put(   13.85328 , 2.891339   ){\circle*{ .29353193}} 
  \put(   14.17544 , 2.892941   ){\circle*{ .29353193}} 
  \put(   14.49761 , 2.894626   ){\circle*{ .29353193}} 
  \put(   14.81978 , 2.896397   ){\circle*{ .29353193}} 
  \put(   15.14195 , 2.898259   ){\circle*{ .29353193}} 
  \put(   15.46412 , 2.900216   ){\circle*{ .29353193}} 
  \put(   15.78629 , 2.902273   ){\circle*{ .29353193}} 
  \put(   16.10846 , 2.904436   ){\circle*{ .29353193}} 
  \put(   16.43063 ,  2.90671   ){\circle*{ .29353193}} 
  \put(   16.75280 ,   2.9091   ){\circle*{ .29353193}} 
  \put(   17.07497 , 2.911614   ){\circle*{ .29353193}} 
  \put(   17.39714 , 2.914256   ){\circle*{ .29353193}} 
  \put(    17.7193 , 2.917033   ){\circle*{ .29353193}} 
  \put(   18.04147 , 2.919953   ){\circle*{ .29353193}} 
  \put(   18.36364 , 2.923022   ){\circle*{ .29353193}} 
  \put(   18.68581 , 2.926249   ){\circle*{ .29353193}} 
  \put(   19.00798 , 2.929641   ){\circle*{ .29353193}} 
  \put(   19.33015 , 2.933208   ){\circle*{ .29353193}} 
  \put(   19.65232 , 2.936957   ){\circle*{ .29353193}} 
  \put(   19.97449 , 2.940898   ){\circle*{ .29353193}} 
  \put(   20.29666 , 2.945041   ){\circle*{ .29353193}} 
  \put(   20.61883 , 2.949397   ){\circle*{ .29353193}} 
  \put(   20.94100 , 2.953976   ){\circle*{ .29353193}} 
  \put(   21.26317 ,  2.95879   ){\circle*{ .29353193}} 
  \put(   21.58534 ,  2.96385   ){\circle*{ .29353193}} 
  \put(    21.9075 ,  2.96917   ){\circle*{ .29353193}} 
  \put(   22.22967 , 2.974764   ){\circle*{ .29353193}} 
  \put(   22.55184 , 2.980643   ){\circle*{ .29353193}} 
  \put(   22.87401 , 2.986824   ){\circle*{ .29353193}} 
  \put(   23.19618 , 2.993323   ){\circle*{ .29353193}} 
  \put(   23.51835 , 3.000154   ){\circle*{ .29353193}} 
  \put(   23.84052 , 3.007335   ){\circle*{ .29353193}} 
  \put(   24.16269 , 3.014885   ){\circle*{ .29353193}} 
  \put(   24.48486 , 3.022822   ){\circle*{ .29353193}} 
  \put(   24.80703 , 3.031165   ){\circle*{ .29353193}} 
  \put(   25.12920 , 3.039937   ){\circle*{ .29353193}} 
  \put(   25.45137 , 3.049158   ){\circle*{ .29353193}} 
  \put(   25.77354 , 3.058852   ){\circle*{ .29353193}} 
  \put(    26.0957 , 3.069043   ){\circle*{ .29353193}} 
  \put(   26.41787 , 3.079756   ){\circle*{ .29353193}} 
  \put(   26.74004 , 3.091019   ){\circle*{ .29353193}} 
  \put(   27.06221 , 3.102859   ){\circle*{ .29353193}} 
  \put(   27.38438 , 3.115306   ){\circle*{ .29353193}} 
  \put(   27.70655 , 3.128392   ){\circle*{ .29353193}} 
  \put(   28.02872 , 3.142148   ){\circle*{ .29353193}} 
  \put(   28.35089 , 3.156610   ){\circle*{ .29353193}} 
  \put(   28.67306 , 3.171813   ){\circle*{ .29353193}} 
  \put(   28.99523 , 3.187796   ){\circle*{ .29353193}} 
  \put(   29.31740 , 3.204598   ){\circle*{ .29353193}} 
  \put(   29.63957 , 3.222261   ){\circle*{ .29353193}} 
  \put(   29.96173 ,  3.24083   ){\circle*{ .29353193}} 
  \put(    30.2839 , 3.260351   ){\circle*{ .29353193}} 
  \put(   30.60607 , 3.280873   ){\circle*{ .29353193}} 
  \put(   30.92824 , 3.302448   ){\circle*{ .29353193}} 
  \put(   31.25041 , 3.325128   ){\circle*{ .29353193}} 
  \put(   31.57258 , 3.348971   ){\circle*{ .29353193}} 
  \put(   31.89475 , 3.374037   ){\circle*{ .29353193}} 
  \put(   32.21692 , 3.400388   ){\circle*{ .29353193}} 
  \put(   32.53909 , 3.428090   ){\circle*{ .29353193}} 
  \put(   32.86126 , 3.457212   ){\circle*{ .29353193}} 
  \put(   33.18343 , 3.487827   ){\circle*{ .29353193}} 
  \put(   33.50560 , 3.520012   ){\circle*{ .29353193}} 
  \put(   33.82776 , 3.553847   ){\circle*{ .29353193}} 
  \put(   34.14993 , 3.589417   ){\circle*{ .29353193}} 
  \put(    34.4721 , 3.626811   ){\circle*{ .29353193}} 
  \put(   34.79427 , 3.666122   ){\circle*{ .29353193}} 
  \put(   35.11644 , 3.707448   ){\circle*{ .29353193}} 
  \put(   35.43861 , 3.750894   ){\circle*{ .29353193}} 
  \put(   35.76078 , 3.796566   ){\circle*{ .29353193}} 
  \put(   36.08295 ,  3.84458   ){\circle*{ .29353193}} 
  \put(   36.40512 , 3.895057   ){\circle*{ .29353193}} 
  \put(   36.72729 ,  3.94812   ){\circle*{ .29353193}} 
  \put(   37.04946 , 4.003906   ){\circle*{ .29353193}} 
  \put(   37.37163 ,  4.06255   ){\circle*{ .29353193}} 
  \put(   37.69380 , 4.124202   ){\circle*{ .29353193}} 
  \put(   38.01596 , 4.189015   ){\circle*{ .29353193}} 
  \put(   38.33813 ,  4.25715   ){\circle*{ .29353193}} 
  \put(    38.6603 , 4.328780   ){\circle*{ .29353193}} 
  \put(   38.98247 , 4.404081   ){\circle*{ .29353193}} 
  \put(   39.30464 , 4.483243   ){\circle*{ .29353193}} 
  \put(   39.62681 , 4.566465   ){\circle*{ .29353193}} 
  \put(   39.94898 , 4.653952   ){\circle*{ .29353193}} 
  \put(   40.27115 , 4.745926   ){\circle*{ .29353193}} 
  \put(   40.59332 , 4.842615   ){\circle*{ .29353193}} 
  \put(   40.91549 , 4.944262   ){\circle*{ .29353193}} 
  \put(   41.23766 , 5.051119   ){\circle*{ .29353193}} 
  \put(   41.55983 , 5.163456   ){\circle*{ .29353193}} 
  \put(   41.88199 , 5.281553   ){\circle*{ .29353193}} 
  \put(   42.20416 , 5.405704   ){\circle*{ .29353193}} 
  \put(   42.52633 ,  5.53622   ){\circle*{ .29353193}} 
  \put(    42.8485 , 5.673429   ){\circle*{ .29353193}} 
  \put(   43.17067 , 5.817672   ){\circle*{ .29353193}} 
  \put(   43.49284 ,  5.96931   ){\circle*{ .29353193}} 
  \put(   43.81501 , 6.128724   ){\circle*{ .29353193}} 
  \put(   44.13718 ,  6.29631   ){\circle*{ .29353193}} 
  \put(   44.45935 , 6.472490   ){\circle*{ .29353193}} 
  \put(   44.78152 , 6.657702   ){\circle*{ .29353193}} 
  \put(   45.10369 , 6.852410   ){\circle*{ .29353193}} 
  \put(   45.42586 ,   7.0571   ){\circle*{ .29353193}} 
  \put(   45.74802 , 7.272286   ){\circle*{ .29353193}} 
  \put(   46.07019 , 7.498504   ){\circle*{ .29353193}} 
  \put(   46.39236 , 7.736321   ){\circle*{ .29353193}} 
  \put(   46.71453 , 7.986331   ){\circle*{ .29353193}} 
  \put(    47.0367 , 8.249159   ){\circle*{ .29353193}} 
  \put(   47.35887 , 8.525463   ){\circle*{ .29353193}} 
  \put(   47.68104 , 8.815933   ){\circle*{ .29353193}} 
  \put(   48.00321 , 9.121296   ){\circle*{ .29353193}} 
  \put(   48.32538 , 9.442315   ){\circle*{ .29353193}} 
  \put(   48.64755 , 9.77979    ){\circle*{ .29353193}} 
  \put(   48.96972 , 10.13457   ){\circle*{ .29353193}} 
  \put(   49.29189 , 10.50755   ){\circle*{ .29353193}} 
  \put(   49.61406 , 10.89964   ){\circle*{ .29353193}} 
  \put(   49.93622 , 11.31184   ){\circle*{ .29353193}} 
  \put(   50.25839 , 11.74517   ){\circle*{ .29353193}} 
  \put(   50.58056 , 12.20071   ){\circle*{ .29353193}} 
  \put(   50.90273 , 12.67962   ){\circle*{ .29353193}} 
  \put(    51.2249 , 13.18308   ){\circle*{ .29353193}} 
  \put(   51.54707 , 13.71235   ){\circle*{ .29353193}} 
  \put(   51.86924 , 14.26875   ){\circle*{ .29353193}} 
  \put(    52.1914 , 14.85369   ){\circle*{ .29353193}} 
  \put(   52.51358 , 15.46862   ){\circle*{ .29353193}} 
  \put(   52.83575 , 16.11507   ){\circle*{ .29353193}} 
  \put(   53.15792 , 16.79467   ){\circle*{ .29353193}} 
  \put(   53.48009 ,  17.5091   ){\circle*{ .29353193}} 
  \put(   53.80225 , 18.26018   ){\circle*{ .29353193}} 
  \put(   54.12442 , 19.04976   ){\circle*{ .29353193}} 
  \put(   54.44659 , 19.87982   ){\circle*{ .29353193}} 
  \put(   54.76876 , 20.75244   ){\circle*{ .29353193}} 
  \put(   55.09093 ,  21.6698   ){\circle*{ .29353193}} 
  \put(    55.4131 , 22.63420   ){\circle*{ .29353193}} 
  \put(   55.73527 , 23.64804   ){\circle*{ .29353193}} 
  \put(   56.05744 , 24.71386   ){\circle*{ .29353193}} 
  \put(    56.3796 , 25.83432   ){\circle*{ .29353193}} 
  \put(   56.70178 , 27.01224   ){\circle*{ .29353193}} 
  \put(   57.02395 , 28.25055   ){\circle*{ .29353193}} 
  \put(   57.34612 , 29.55234   ){\circle*{ .29353193}} 
  \put(   57.66828 , 30.92088   ){\circle*{ .29353193}} 
  \put(   57.99045 , 32.35959   ){\circle*{ .29353193}} 
  \put(   58.31262 , 33.87206   ){\circle*{ .29353193}} 
  \put(   58.63479 , 35.46208   ){\circle*{ .29353193}} 
  \put(   58.95696 , 37.13362   ){\circle*{ .29353193}} 
  \put(   59.27913 , 38.89086   ){\circle*{ .29353193}} 
  \put(    59.6013 ,  40.7382   ){\circle*{ .29353193}} 
  \put(   59.92347 , 42.68025   ){\circle*{ .29353193}} 
  \put(   60.24564 , 44.72188   ){\circle*{ .29353193}} 
  \put(    60.5678 , 46.86818   ){\circle*{ .29353193}} 
  \put(   60.88998 , 49.12452   ){\circle*{ .29353193}} 
  \put(   61.21215 , 51.49655   ){\circle*{ .29353193}} 
  \put(   61.53432 , 53.99019   ){\circle*{ .29353193}} 
  \put(   61.85648 , 56.61169   ){\circle*{ .29353193}} 
  \put(   62.17865 , 59.36759   ){\circle*{ .29353193}} 
  \put(   62.50082 , 62.26480   ){\circle*{ .29353193}} 
  \put(   62.82299 , 65.31054   ){\circle*{ .29353193}} 
  \put(   63.14516 , 68.51244   ){\circle*{ .29353193}} 
  \put(   63.46733 , 71.87851   ){\circle*{ .29353193}} 
  \put(    63.7895 , 75.41716   ){\circle*{ .29353193}} 
  \put(   64.11167 , 79.13724   ){\circle*{ .29353193}} 
\end{picture}
\end{center}
%Finis.

apl>)off

