home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume31 / jgraph / patch01 < prev    next >
Encoding:
Text File  |  1992-07-27  |  47.5 KB  |  1,661 lines

  1. Newsgroups: comp.sources.misc
  2. From: jsp@Princeton.EDU (James Plank)
  3. Subject:  v31i056:  jgraph - A filter for plotting postscript graphs v8.0, Patch01
  4. Message-ID: <1992Jul27.024838.2499@sparky.imd.sterling.com>
  5. X-Md4-Signature: 71a21280b87e58ed0579de1a8b9575b8
  6. Date: Mon, 27 Jul 1992 02:48:38 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: jsp@Princeton.EDU (James Plank)
  10. Posting-number: Volume 31, Issue 56
  11. Archive-name: jgraph/patch01
  12. Environment: UNIX, VMS, postscript
  13. Patch-To: jgraph: Volume 31, Issue 55-61
  14.  
  15. Jgraph patch 8.1: Wed Jul 22 16:16:01 EDT 1992
  16.  
  17. This is a small patch to jgraph:
  18.  
  19. Fixed a bug where rarrow and larrow weren't getting copied 
  20.   on a copycurve
  21. Fixed a bug dealing with hash_label commands not exitting well
  22.   with EOF's.
  23. Increased the default linelength on legends
  24. Included more example graphs.
  25. Fixed the makefile to make the example .jps files.
  26. Created NeXT.help for NeXT users.
  27.  
  28. As usual, the new shar file is in princeton.edu:/pub/jgraph.Z,
  29. or you can get it from netlib  (mail "send jgraph.shar from jgraph"
  30. to netlib@ornl.gov).
  31.  
  32. Thanks to all who responded to my earlier query.
  33.  
  34. Let me know if there are any more problems.
  35.  
  36. Take it easy,
  37.  
  38. Jim
  39.  
  40. jsp@princeton.edu
  41.  
  42.  
  43. Patches from 8.0:
  44.  
  45. *** /dev/null    Wed Jul 22 14:07:57 1992
  46. --- NeXT.help    Wed Jul 22 16:05:24 1992
  47. ***************
  48. *** 0 ****
  49. --- 1,6 ----
  50. + To compile jgraph on the NeXT machines, compile with -DLCC.  This will
  51. + define LCC in jgraph.h so that <stdlib.h> will be included.  Otherwise,
  52. + the compilation will go fine, but there will be type conversion errors
  53. + in token.c which will give bogus output.
  54. + Jim
  55. *** ../work/README    Wed Jul 22 15:31:55 1992
  56. --- README    Wed Jul 22 16:05:25 1992
  57. ***************
  58. *** 1,4 ****
  59. ! $Revision: 8.0 $
  60.   
  61.   Jgraph takes the description of a graph or graphs in the standard
  62.   input, and produces a postscript file on the standard output.  Jgraph
  63. --- 1,4 ----
  64. ! $Revision: 8.1 $
  65.   
  66.   Jgraph takes the description of a graph or graphs in the standard
  67.   input, and produces a postscript file on the standard output.  Jgraph
  68. ***************
  69. *** 21,27 ****
  70.   example graphs.
  71.   
  72.   Jgraph is available via anonymous ftp to princeton.edu, in the
  73. ! file jgraph.Z.  This file is a compressed shell bundle file.
  74.   
  75.   Jgraph is also available from netlib, a mail archive server.
  76.   To acquire jgraph from netlib, send a mail message to
  77. --- 21,27 ----
  78.   example graphs.
  79.   
  80.   Jgraph is available via anonymous ftp to princeton.edu, in the
  81. ! file pub/jgraph.Z.  This file is a compressed shell bundle file.
  82.   
  83.   Jgraph is also available from netlib, a mail archive server.
  84.   To acquire jgraph from netlib, send a mail message to
  85. *** /dev/null    Wed Jul 22 14:07:57 1992
  86. --- bailey.jgr    Wed Jul 22 16:05:28 1992
  87. ***************
  88. *** 0 ****
  89. --- 1,30 ----
  90. + (* Example of Unix spline(1) to smooth a curve.
  91. + This is a file to draw sin(i) for i going from -pi to pi *)
  92. + newgraph
  93. + yaxis min -1 max 1 label : sin(i)
  94. + xaxis label : i
  95. + grid_lines
  96. + border
  97. + title : Example Unix spline(1) to interpolate points
  98. + (* Plot the sin curve *)
  99. + newline
  100. +   label : data
  101. +   pts include bailey.pts
  102. + copycurve
  103. +   label : splined
  104. +   linetype dotted
  105. +   pts shell : spline < bailey.pts
  106. + (* 
  107. + bailey.pts file:
  108. + -3.1416 0.0
  109. + -1.81 -0.9715
  110. + -0.55 -0.5226
  111. +  0.71  0.6518
  112. +  1.97  0.9213
  113. +  3.1416 0.0
  114. + *)
  115. *** /dev/null    Wed Jul 22 14:07:57 1992
  116. --- bailey.pts    Wed Jul 22 16:05:28 1992
  117. ***************
  118. *** 0 ****
  119. --- 1,6 ----
  120. + -3.1416 0.0
  121. + -1.81 -0.9715
  122. + -0.55 -0.5226
  123. +  0.71  0.6518
  124. +  1.97  0.9213
  125. +  3.1416 0.0
  126. *** /dev/null    Wed Jul 22 14:07:57 1992
  127. --- data.txt    Wed Jul 22 16:05:29 1992
  128. ***************
  129. *** 0 ****
  130. --- 1,60 ----
  131. + Number of records = 0        Time = 0
  132. + Number of records = 5000    Time = 2
  133. + Number of records = 10000    Time = 3
  134. + Number of records = 15000    Time = 4
  135. + Number of records = 20000    Time = 6
  136. + Number of records = 25000    Time = 9
  137. + Number of records = 30000    Time = 10
  138. + Number of records = 35000    Time = 11
  139. + Number of records = 40000    Time = 13
  140. + Number of records = 45000    Time = 15
  141. + Number of records = 50000    Time = 16
  142. + Number of records = 55000    Time = 18
  143. + Number of records = 60000    Time = 21
  144. + Number of records = 65000    Time = 21
  145. + Number of records = 70000    Time = 23
  146. + Number of records = 75000    Time = 26
  147. + Number of records = 80000    Time = 27
  148. + Number of records = 85000    Time = 28
  149. + Number of records = 90000    Time = 31
  150. + Number of records = 95000    Time = 32
  151. + Number of records = 100000    Time = 33
  152. + Number of records = 105000    Time = 36
  153. + Number of records = 110000    Time = 38
  154. + Number of records = 115000    Time = 38
  155. + Number of records = 120000    Time = 41
  156. + Number of records = 125000    Time = 45
  157. + Number of records = 130000    Time = 44
  158. + Number of records = 135000    Time = 46
  159. + Number of records = 140000    Time = 48
  160. + Number of records = 145000    Time = 49
  161. + Number of records = 150000    Time = 51
  162. + Number of records = 155000    Time = 52
  163. + Number of records = 160000    Time = 54
  164. + Number of records = 165000    Time = 56
  165. + Number of records = 170000    Time = 58
  166. + Number of records = 175000    Time = 61
  167. + Number of records = 180000    Time = 61
  168. + Number of records = 185000    Time = 63
  169. + Number of records = 190000    Time = 69
  170. + Number of records = 195000    Time = 66
  171. + Number of records = 200000 Time = 69
  172. + Number of records = 210000 Time = 73
  173. + Number of records = 220000 Time = 77
  174. + Number of records = 230000 Time = 78
  175. + Number of records = 240000 Time = 88
  176. + Number of records = 250000 Time = 86
  177. + Number of records = 260000 Time = 89
  178. + Number of records = 270000 Time = 94
  179. + Number of records = 280000 Time = 96
  180. + Number of records = 290000 Time = 102
  181. + Number of records = 300000 Time = 104
  182. + Number of records = 310000 Time = 106
  183. + Number of records = 320000 Time = 111
  184. + Number of records = 330000 Time = 113
  185. + Number of records = 340000 Time = 120
  186. + Number of records = 350000 Time = 122
  187. + Number of records = 360000 Time = 124
  188. + Number of records = 370000 Time = 133
  189. + Number of records = 380000 Time = 131
  190. + Number of records = 390000 Time = 134
  191. *** ../work/draw.c    Wed Jul 22 15:31:58 1992
  192. --- draw.c    Wed Jul 22 16:05:31 1992
  193. ***************
  194. *** 1,7 ****
  195.   /* 
  196. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/draw.c,v $
  197. !  * $Revision: 8.0 $
  198. !  * $Date: 92/07/03 14:15:39 $
  199.    * $Author: jsp $
  200.    */
  201.   
  202. --- 1,7 ----
  203.   /* 
  204. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/draw.c,v $
  205. !  * $Revision: 8.1 $
  206. !  * $Date: 92/07/20 16:44:32 $
  207.    * $Author: jsp $
  208.    */
  209.   
  210. *** ../work/edit.c    Wed Jul 22 15:32:00 1992
  211. --- edit.c    Wed Jul 22 16:05:33 1992
  212. ***************
  213. *** 1,7 ****
  214.   /* 
  215. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/edit.c,v $
  216. !  * $Revision: 8.0 $
  217. !  * $Date: 92/07/03 14:15:40 $
  218.    * $Author: jsp $
  219.    */
  220.   
  221. --- 1,7 ----
  222.   /* 
  223. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/edit.c,v $
  224. !  * $Revision: 8.1 $
  225. !  * $Date: 92/07/20 16:44:34 $
  226.    * $Author: jsp $
  227.    */
  228.   
  229. ***************
  230. *** 122,129 ****
  231.     c1->afill[2] = c2->afill[2];
  232.     c1->postscript = c2->postscript;
  233.     c1->postfile = c2->postfile;
  234. !   c1->rarrow = c2->rarrows;
  235. !   c1->larrow = c2->larrows;
  236.     c1->rarrows = c2->rarrows;
  237.     c1->larrows = c2->larrows;
  238.     c1->asize[0] = c2->asize[0];
  239. --- 122,129 ----
  240.     c1->afill[2] = c2->afill[2];
  241.     c1->postscript = c2->postscript;
  242.     c1->postfile = c2->postfile;
  243. !   c1->rarrow = c2->rarrow;
  244. !   c1->larrow = c2->larrow;
  245.     c1->rarrows = c2->rarrows;
  246.     c1->larrows = c2->larrows;
  247.     c1->asize[0] = c2->asize[0];
  248. ***************
  249. *** 617,634 ****
  250.     char *s;
  251.     char inp_str[256];
  252.     String st;
  253.   
  254.     s = CNULL;
  255.   
  256.     at = (first(a->hash_lines) == nil(a->hash_lines)) ? FSIG
  257.             : first(a->hash_lines)->loc;
  258. !   while (getstring(inp_str)) {
  259. !     if (strcmp(inp_str, ":") == 0) {
  260. !       if ((s = getlabel()) == CNULL) return;
  261. !     } else if (strcmp(inp_str, "at") == 0) {
  262. !       if (getfloat(&f)) at = f; else rejecttoken();
  263.       } else {
  264. !       rejecttoken();
  265.         if (s == CNULL) return;
  266.         if (at == FSIG) {
  267.           error_header();
  268. --- 617,648 ----
  269.     char *s;
  270.     char inp_str[256];
  271.     String st;
  272. +   int done;
  273.   
  274.     s = CNULL;
  275.   
  276.     at = (first(a->hash_lines) == nil(a->hash_lines)) ? FSIG
  277.             : first(a->hash_lines)->loc;
  278. !   while(1) {
  279. !     done = 0;
  280. !     if (getstring(inp_str)) {
  281. !       if (strcmp(inp_str, ":") == 0) {
  282. !         if ((s = getlabel()) == CNULL) return;
  283. !       } else if (strcmp(inp_str, "at") == 0) {
  284. !         if (getfloat(&f)) {
  285. !           at = f;  
  286. !         } else {
  287. !           rejecttoken();
  288. !           done = 1;
  289. !         }
  290. !       } else {
  291. !         rejecttoken();
  292. !         done = 1;
  293. !       }
  294.       } else {
  295. !       done = 1;
  296. !     }
  297. !     if (done) {
  298.         if (s == CNULL) return;
  299.         if (at == FSIG) {
  300.           error_header();
  301. *** /dev/null    Wed Jul 22 14:07:57 1992
  302. --- ex1.jgr    Wed Jul 22 16:05:34 1992
  303. ***************
  304. *** 0 ****
  305. --- 1,36 ----
  306. + (* This is a graph for Figure 1 of the USENIX jgraph abstract.  It shows
  307. +    three simple curves plotted with jgraph.
  308. +    There are two graphs plotted -- the first is the actual jgraph.  The
  309. +    second is a text string showing the input for the graph.  Print it 
  310. +    out -- you'll see what I mean.
  311. +    *)
  312. + newgraph
  313. + xaxis size 2 
  314. + yaxis size 1.5 
  315. + newcurve pts 0 6  1 9  2 11  3 14  4 18 5 20
  316. + newcurve marktype triangle linetype solid
  317. +          pts 0 3  1 4  2 7  3 9  4 10 5 13
  318. + newcurve marktype none linetype dashed
  319. +          pts 0 0  1 2  2 3  3 5  4 6  5 9
  320. + copygraph
  321. + x_translate -3.5
  322. + border
  323. + xaxis nodraw min 0 max 1 size 2.8
  324. + yaxis nodraw min 0 max 1
  325. + newstring hjl vjc x .05 y .5 font Courier fontsize 7 :
  326. + newgraph\
  327. +   newcurve \
  328. +     pts 0 6  1 9  2 11  3 14  4 18 5 20\
  329. +   newcurve \
  330. +     marktype triangle \
  331. +     linetype solid\
  332. +     pts 0 3  1 4  2 7  3 9  4 10 5 13\
  333. +   newcurve \
  334. +     marktype none \
  335. +     linetype dashed\
  336. +     pts 0 0  1 2  2 3  3 5  4 6  5 9
  337. *** /dev/null    Wed Jul 22 14:07:57 1992
  338. --- ex2.jgr    Wed Jul 22 16:05:34 1992
  339. ***************
  340. *** 0 ****
  341. --- 1,58 ----
  342. + (* This is a graph for Figure 2 of the USENIX jgraph abstract.  It shows
  343. +    how to extract points from a data file with awk, and how to use awk
  344. +    to plot a function to match the data (the function that is plot here
  345. +    is (n/k)log(n), where k is expermentally chosen to be 35000.
  346. +    There are two graphs plotted -- the first is the actual jgraph.  The
  347. +    second is a text string showing the input for the graph.  Print it 
  348. +    out -- you'll see what I mean.
  349. +    *)
  350. + newgraph
  351. + xaxis size 2.5 
  352. +   hash_labels font Helvetica
  353. +   label : Number of indexed Records (N)
  354. + yaxis size 2.1 
  355. +   label : Running time (seconds)
  356. +   hash_labels font Helvetica
  357. + newcurve 
  358. +   marktype cross
  359. +   label : Data
  360. +   pts shell : awk '{print $5, $8}' data.txt
  361. + newcurve
  362. +   marktype none linetype solid
  363. +   label : N log N / 35000
  364. +    pts shell : nawk \
  365. +      ' $5 != 0 { \
  366. +        print $5,  $5 * log($5) / 35000}' \
  367. +      data.txt
  368. + copygraph
  369. + x_translate -3.1
  370. + border
  371. + xaxis nodraw min 0 max 1 size 2.3
  372. + yaxis nodraw min 0 max 1
  373. + newstring hjl vjc x .03 y .5 font Courier fontsize 6 :
  374. + xaxis size 2.5 \
  375. +   hash_labels font Helvetica\
  376. +   label : Number of indexed Records (N)\
  377. + yaxis size 2.1 \
  378. +   label : Running time (seconds)\
  379. +   hash_labels font Helvetica\
  380. + \
  381. + newcurve \
  382. +   marktype cross\
  383. +   label : Data\
  384. +   pts shell : awk '{print $5, $8}' data.txt\
  385. + \
  386. + newcurve\
  387. +   marktype none linetype solid\
  388. +   label : N log N / 35000\
  389. +    pts shell : nawk \\
  390. +      ' $5 != 0 { \\
  391. +        print $5,  $5 * log($5) / 35000}' \\
  392. +      data.txt\
  393. *** /dev/null    Wed Jul 22 14:07:57 1992
  394. --- g8col.jgr    Wed Jul 22 16:05:36 1992
  395. ***************
  396. *** 0 ****
  397. --- 1,72 ----
  398. + (* $Log:    g8.jgr,v $
  399. +  * Revision 1.1  90/10/12  17:33:33  jsp
  400. +  * Initial revision
  401. +  * 
  402. +  *)
  403. + Y 3
  404. + (* Graph #8: Frequency of Traps.   This graph shows examples of plotting
  405. +  * character strings. *) 
  406. + newgraph 
  407. + yaxis size 1.9 min 0 max 10 hash 1 mhash 0
  408. +   hash_labels fontsize 7
  409. +   label fontsize 8 : Traps per 0.1 second Interval
  410. + xaxis size 2.14 min 0 max 2.6001 hash .5 mhash 4 precision 1
  411. +   hash_labels fontsize 7
  412. +   label fontsize 8 : Starting Time of 0.1 second interval (sec)
  413. + newcurve marktype box cfill 1 1 0 marksize 11 60 pts 1.3 5
  414. + copygraph 
  415. + title fontsize 10 : Graph 8: Frequency of Traps.
  416. + newcurve
  417. +   marktype circle fill 0
  418. +   linetype none
  419. +   pts 
  420. +     0.0 9
  421. +     0.1 3
  422. +     0.2 5
  423. +     0.3 6
  424. +     0.4 6
  425. +     0.5 5
  426. +     0.6 6
  427. +     0.7 6
  428. +     0.8 6 
  429. +     0.9 6
  430. +     1.0 6
  431. +     1.1 4 
  432. +     1.2 5
  433. +     1.3 3
  434. +     1.4 4
  435. +     1.5 5
  436. +     1.6 3
  437. +     1.7 5
  438. +     1.8 5
  439. +     1.9 4
  440. +     2.0 3
  441. +     2.1 4
  442. +     2.2 5
  443. +     2.3 5
  444. +     2.4 4
  445. +     2.5 0
  446. +     2.6 0
  447. + newstring 
  448. +   : Average Trap Time = 0.015 seconds
  449. +   x 2.6 y 10
  450. +   hjr vjc
  451. +   fontsize 7
  452. + newstring
  453. +   : ...
  454. +   x 2.7 y 0
  455. +   hjl vjb
  456. +   fontsize 7
  457. *** ../work/jgraph.1    Wed Jul 22 15:32:04 1992
  458. --- jgraph.1    Wed Jul 22 16:05:41 1992
  459. ***************
  460. *** 1466,1471 ****
  461. --- 1466,1473 ----
  462.   Point interpolation is essentially the same as
  463.   function plotting, and therefore is left out of 
  464.   \fBjgraph.  \fR
  465. + The UNIX spline(1) routine is a simple way to get interpolation
  466. + between points.  See bailey.jgr described below.
  467.   Maybe in a future release.
  468.   .SH HINTS AND EXAMPLE GRAPHS
  469.   \fBJgraph \fR
  470. ***************
  471. *** 1482,1487 ****
  472. --- 1484,1491 ----
  473.   the file acc.jps in the acc.tex file.
  474.   .sp
  475.   - g8.jgr is a simple graph with some plotted text.
  476. + - g8col.jgr shows how to produce a color background -- it is 
  477. +   the same as g8.jgr only all on a yellow background.
  478.   - ebars.jgr is a simple graph with error bars.
  479.   - sin.jgr shows how a sin function can be plotted using a simple c
  480.   program to produce the sin wave.  Moreover, this file shows a use of
  481. ***************
  482. *** 1497,1507 ****
  483. --- 1501,1517 ----
  484.   - sin3.jgr shows how a bizarre effect can be gotten by sorting the
  485.   points in a different manner.
  486.   .sp
  487. + - bailey.jgr shows how to use the UNIX spline(1) routine to get
  488. + interpolation between points.
  489. + .sp
  490.   - gpaper.jgr shows how you can get jgraph to easily produce graph paper.
  491.   .sp
  492.   - g9n10.jgr contains two graphs with complicated legends.  It
  493.   contains a description of how the legend was created.
  494.   .sp
  495. + - ex1.jgr and ex2.jgr are two examples which were figures 1 and
  496. +   two in an extended abstract for a paper about jgraph.
  497. + .sp
  498.   - mab2.jgr is a graph created by Matt Blaze which shows how a 
  499.   complicated output graph can be quite concisely and simply stated.
  500.   In this graph, the x axis is a time line.  It shows usage of the 
  501. ***************
  502. *** 1518,1523 ****
  503. --- 1528,1537 ----
  504.   was created by an awk script which Adam Buchsbaum wrote to draw 
  505.   trees and graphs.
  506.   .sp
  507. + - wortman.jgr is a neat graph of processor utilization written 
  508. + by Dave Wortman for SIGPLAN '92.  It was created by an awk script,
  509. + which processed the data and emitted the jgraph.
  510. + .sp
  511.   To view these graphs, use jgraph -P, and view the resulting output
  512.   file with
  513.   \fIgs,\fB
  514. ***************
  515. *** 1531,1537 ****
  516.   preprocessor to make drawings.  There are two advantages 
  517.   using jgraph to draw pictures instead of using standard drawing tools like
  518.   \fIxfig\fB,
  519. ! \fIfibtool\fB,
  520.   or
  521.   \fIidraw\fB.
  522.   The first is that with jgraph, you know exactly where strings, lines,
  523. --- 1545,1551 ----
  524.   preprocessor to make drawings.  There are two advantages 
  525.   using jgraph to draw pictures instead of using standard drawing tools like
  526.   \fIxfig\fB,
  527. ! \fIfigtool\fB,
  528.   or
  529.   \fIidraw\fB.
  530.   The first is that with jgraph, you know exactly where strings, lines,
  531. ***************
  532. *** 1582,1585 ****
  533.   .sp
  534.   There may well be loads of other bugs.  Send to jsp@princeton.edu.
  535.   .sp
  536. ! This is $Revision: 8.0 $.
  537. --- 1596,1600 ----
  538.   .sp
  539.   There may well be loads of other bugs.  Send to jsp@princeton.edu.
  540.   .sp
  541. ! This is $Revision: 8.1 $.
  542. *** ../work/jgraph.c    Wed Jul 22 15:32:05 1992
  543. --- jgraph.c    Wed Jul 22 16:05:42 1992
  544. ***************
  545. *** 1,7 ****
  546.   /* 
  547. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/jgraph.c,v $
  548. !  * $Revision: 8.0 $
  549. !  * $Date: 92/07/03 14:15:54 $
  550.    * $Author: jsp $
  551.    */
  552.   
  553. --- 1,7 ----
  554.   /* 
  555. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/jgraph.c,v $
  556. !  * $Revision: 8.1 $
  557. !  * $Date: 92/07/20 16:44:39 $
  558.    * $Author: jsp $
  559.    */
  560.   
  561. *** ../work/jgraph.h    Wed Jul 22 15:32:06 1992
  562. --- jgraph.h    Wed Jul 22 16:05:43 1992
  563. ***************
  564. *** 1,7 ****
  565.   /* 
  566. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/jgraph.h,v $
  567. !  * $Revision: 8.0 $
  568. !  * $Date: 92/07/03 14:15:58 $
  569.    * $Author: jsp $
  570.    */
  571.   
  572. --- 1,7 ----
  573.   /* 
  574. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/jgraph.h,v $
  575. !  * $Revision: 8.1 $
  576. !  * $Date: 92/07/20 16:44:42 $
  577.    * $Author: jsp $
  578.    */
  579.   
  580. *** ../work/list.c    Wed Jul 22 15:32:07 1992
  581. --- list.c    Wed Jul 22 16:05:45 1992
  582. ***************
  583. *** 1,7 ****
  584.   /* 
  585. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/list.c,v $
  586. !  * $Revision: 8.0 $
  587. !  * $Date: 92/07/03 14:16:00 $
  588.    * $Author: jsp $
  589.    */
  590.   
  591. --- 1,7 ----
  592.   /* 
  593. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/list.c,v $
  594. !  * $Revision: 8.1 $
  595. !  * $Date: 92/07/20 16:44:43 $
  596.    * $Author: jsp $
  597.    */
  598.   
  599. *** ../work/list.h    Wed Jul 22 15:32:08 1992
  600. --- list.h    Wed Jul 22 16:05:46 1992
  601. ***************
  602. *** 1,7 ****
  603.   /* 
  604. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/list.h,v $
  605. !  * $Revision: 8.0 $
  606. !  * $Date: 92/07/03 14:16:02 $
  607.    * $Author: jsp $
  608.    */
  609.   
  610. --- 1,7 ----
  611.   /* 
  612. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/list.h,v $
  613. !  * $Revision: 8.1 $
  614. !  * $Date: 92/07/20 16:44:44 $
  615.    * $Author: jsp $
  616.    */
  617.   
  618. *** ../work/makefile    Wed Jul 22 15:32:09 1992
  619. --- makefile    Wed Jul 22 16:05:48 1992
  620. ***************
  621. *** 1,3 ****
  622. --- 1,11 ----
  623. + # If you're running this on a NeXT machine (or with an ansi-c compiler), 
  624. + # you should make sure that
  625. + # cc is run with -DLCC.  This makes sure that macro LCC is defined, and 
  626. + # should make sure that <stdlib.h> is included.
  627. + # Also, before installing, you should change the string "JGRAPH_DIR" in 
  628. + # jgraph.1 to be the directory containing the example jgraphs.
  629.   CC = cc
  630.   
  631.   OBJS = draw.o \
  632. ***************
  633. *** 10,21 ****
  634.           show.o \
  635.           token.o
  636.   
  637.   all: jgraph
  638.   
  639.   .SUFFIXES: .c .o .h .jgr .jps .tex .dvi
  640.   
  641.   .jgr.jps:
  642. !     jgraph < $*.jgr > *.jps
  643.   
  644.   .tex.dvi:
  645.       latex $*.tex
  646. --- 18,53 ----
  647.           show.o \
  648.           token.o
  649.   
  650. + EXAMPLES = \
  651. +     acc.jps        \
  652. +     alb.jps        \
  653. +     bailey.jps    \
  654. +     ebars.jps    \
  655. +     ex1.jps        \
  656. +     ex2.jps        \
  657. +     g8.jps        \
  658. +     g8col.jps    \
  659. +     g9n10.jps    \
  660. +     gpaper.jps    \
  661. +     hypercube.jps    \
  662. +     mab2.jps    \
  663. +     sin.jps        \
  664. +     sin1.jps    \
  665. +     sin2.jps    \
  666. +     sin3.jps    \
  667. +     tree1.jps    \
  668. +     tree2.jps    \
  669. +     wortman.jps
  670.   all: jgraph
  671.   
  672. + examples: $(EXAMPLES)
  673.   .SUFFIXES: .c .o .h .jgr .jps .tex .dvi
  674.   
  675.   .jgr.jps:
  676. !     jgraph -P < $*.jgr > $*.jps
  677.   
  678.   .tex.dvi:
  679.       latex $*.tex
  680. ***************
  681. *** 26,31 ****
  682. --- 58,80 ----
  683.   jgraph: $(OBJS)
  684.       $(CC) -g $(OBJS) -lm -o jgraph
  685.   
  686. + sin:    sin.o
  687. +     cc -o sin sin.o -lm
  688. + bailey.jps: bailey.pts
  689. + ex2.jps: data.txt
  690. + mab2.jps: mab2.times
  691. + sin.jps: sin
  692. + sin2.jps: sin2.pts
  693. + sin3.jps: sin3.pts
  694. + tree1.jps: tree.awk
  695. +     ( echo "4 3" | nawk -f tree.awk ; echo "xaxis size 5.4" ) | \
  696. +            jgraph -P > tree1.jps
  697. + tree2.jps: tree.awk
  698. +     ( echo "5 2" | nawk -f tree.awk ; echo "xaxis size 5.4" ) | \
  699. +            jgraph -P > tree2.jps
  700.   ###
  701.   draw.o: draw.c jgraph.h list.h prio_list.h
  702.   edit.o: edit.c jgraph.h list.h prio_list.h
  703. ***************
  704. *** 37,40 ****
  705.   show.o: show.c jgraph.h list.h prio_list.h 
  706.   token.o: token.c list.h
  707.   clean: 
  708. !     rm -f *.o a.out
  709. --- 86,89 ----
  710.   show.o: show.c jgraph.h list.h prio_list.h 
  711.   token.o: token.c list.h
  712.   clean: 
  713. !     rm -f *.o a.out *.jps
  714. *** ../work/printline.c    Wed Jul 22 15:32:10 1992
  715. --- printline.c    Wed Jul 22 16:05:49 1992
  716. ***************
  717. *** 1,7 ****
  718.   /* 
  719. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/printline.c,v $
  720. !  * $Revision: 8.0 $
  721. !  * $Date: 92/07/03 14:16:05 $
  722.    * $Author: jsp $
  723.    */
  724.   
  725. --- 1,7 ----
  726.   /* 
  727. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/printline.c,v $
  728. !  * $Revision: 8.1 $
  729. !  * $Date: 92/07/20 16:44:47 $
  730.    * $Author: jsp $
  731.    */
  732.   
  733. *** ../work/prio_list.c    Wed Jul 22 15:32:11 1992
  734. --- prio_list.c    Wed Jul 22 16:05:49 1992
  735. ***************
  736. *** 1,7 ****
  737.   /* 
  738. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/prio_list.c,v $
  739. !  * $Revision: 8.0 $
  740. !  * $Date: 92/07/03 14:16:06 $
  741.    * $Author: jsp $
  742.    */
  743.   
  744. --- 1,7 ----
  745.   /* 
  746. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/prio_list.c,v $
  747. !  * $Revision: 8.1 $
  748. !  * $Date: 92/07/20 16:44:48 $
  749.    * $Author: jsp $
  750.    */
  751.   
  752. *** ../work/prio_list.h    Wed Jul 22 15:32:11 1992
  753. --- prio_list.h    Wed Jul 22 16:05:50 1992
  754. ***************
  755. *** 1,7 ****
  756.   /* 
  757. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/prio_list.h,v $
  758. !  * $Revision: 8.0 $
  759. !  * $Date: 92/07/03 14:16:08 $
  760.    * $Author: jsp $
  761.    */
  762.   
  763. --- 1,7 ----
  764.   /* 
  765. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/prio_list.h,v $
  766. !  * $Revision: 8.1 $
  767. !  * $Date: 92/07/20 16:44:49 $
  768.    * $Author: jsp $
  769.    */
  770.   
  771. *** ../work/process.c    Wed Jul 22 15:32:12 1992
  772. --- process.c    Wed Jul 22 16:05:52 1992
  773. ***************
  774. *** 1,7 ****
  775.   /* 
  776. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/process.c,v $
  777. !  * $Revision: 8.0 $
  778. !  * $Date: 92/07/03 14:16:11 $
  779.    * $Author: jsp $
  780.    */
  781.   
  782. --- 1,7 ----
  783.   /* 
  784. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/process.c,v $
  785. !  * $Revision: 8.1 $
  786. !  * $Date: 92/07/20 16:44:51 $
  787.    * $Author: jsp $
  788.    */
  789.   
  790. ***************
  791. *** 73,79 ****
  792.       }
  793.     }
  794.     if (l->linelength == FSIG)
  795. !     l->linelength = (l->anylines) ? (MAX(maxmark + 6.0, 12.0)) : 0.0;
  796.       else l->linelength = disttop(l->linelength, g->x_axis);
  797.     if (l->midspace == FSIG)
  798.       l->midspace = (l->anylines) ? 4.0 : (maxmark / 2.0) + 4.0;
  799. --- 73,79 ----
  800.       }
  801.     }
  802.     if (l->linelength == FSIG)
  803. !     l->linelength = (l->anylines) ? (MAX(maxmark + 6.0, 24.0)) : 0.0;
  804.       else l->linelength = disttop(l->linelength, g->x_axis);
  805.     if (l->midspace == FSIG)
  806.       l->midspace = (l->anylines) ? 4.0 : (maxmark / 2.0) + 4.0;
  807. *** ../work/show.c    Wed Jul 22 15:32:14 1992
  808. --- show.c    Wed Jul 22 16:05:54 1992
  809. ***************
  810. *** 1,7 ****
  811.   /* 
  812. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/show.c,v $
  813. !  * $Revision: 8.0 $
  814. !  * $Date: 92/07/03 14:16:15 $
  815.    * $Author: jsp $
  816.    */ 
  817.   
  818. --- 1,7 ----
  819.   /* 
  820. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/show.c,v $
  821. !  * $Revision: 8.1 $
  822. !  * $Date: 92/07/20 16:44:53 $
  823.    * $Author: jsp $
  824.    */ 
  825.   
  826. *** ../work/token.c    Wed Jul 22 15:32:21 1992
  827. --- token.c    Wed Jul 22 16:06:01 1992
  828. ***************
  829. *** 1,14 ****
  830.   /* 
  831. !  * $Source: /n/fs/vd/jsp/src/jgraph/RCS/token.c,v $
  832. !  * $Revision: 8.0 $
  833. !  * $Date: 92/07/03 14:16:17 $
  834.    * $Author: jsp $
  835.    */
  836.   
  837.   #include <math.h>
  838. - #ifdef LCC
  839. - #include <stdlib.h>
  840. - #endif
  841.   /* On VMS, math.h does not have a definition for atof. Grrr. */
  842.   #ifdef VMS 
  843.   #include <stdlib.h>
  844. --- 1,11 ----
  845.   /* 
  846. !  * $Source: /n/fs/grad1/jsp/src/jgraph/RCS/token.c,v $
  847. !  * $Revision: 8.1 $
  848. !  * $Date: 92/07/20 16:44:55 $
  849.    * $Author: jsp $
  850.    */
  851.   
  852.   #include <math.h>
  853.   /* On VMS, math.h does not have a definition for atof. Grrr. */
  854.   #ifdef VMS 
  855.   #include <stdlib.h>
  856. *** /dev/null    Wed Jul 22 14:07:57 1992
  857. --- tree.awk    Wed Jul 22 16:06:02 1992
  858. ***************
  859. *** 0 ****
  860. --- 1,44 ----
  861. + # This is an nawk script for plotting m-level n-ary trees in jgraph.
  862. + # For each line of input, it will produce a new jgraph.  The line must
  863. + # contain two numbers: m and n, separated by white-space.
  864. + #
  865. + # Two nice outputs of this are: 
  866. + #
  867. + # ( echo "4 3" | nawk -f tree.awk ; echo "xaxis size 5.4" ) | jgraph -P
  868. + #
  869. + # and
  870. + # ( echo "5 2" | nawk -f tree.awk ; echo "xaxis size 5" ) | jgraph -P
  871. + #
  872. + { m = $1
  873. +   n = $2
  874. +   printf("newgraph xaxis nodraw yaxis nodraw\n")
  875. +   k = 0
  876. +   for (j = 0; j < m; j++) {
  877. +     if (j == 0) {
  878. +       numleaves = n ^ (m - 1)
  879. +       for (i = 0; i < numleaves; i++) newleafloc[i] = i
  880. +     } else {
  881. +       numleaves = numleaves / n
  882. +       for (i = 0; i < numleaves; i++) {
  883. +         newleafloc[i] =  (oldleafloc[i*n] + oldleafloc[i*n+n-1]) / 2.0
  884. +       }
  885. +     }
  886. +     for (i = 0; i < numleaves; i++) {
  887. +       printf("newcurve marktype box marksize 0.6 0.4 fill 1 pts %f %f\n",
  888. +               newleafloc[i], j)
  889. +       printf("newstring x %f y %f hjc vjc fontsize 6 : %d\n",
  890. +               newleafloc[i], j, ++k)
  891. +       if (j > 0) {
  892. +         for (l = 0; l < n; l++) {
  893. +           printf("newcurve marktype none linetype solid pts %f %f  %f %f\n",
  894. +               newleafloc[i], j-.2, oldleafloc[i*n+l], j-.8)
  895. +         }
  896. +       }
  897. +     }
  898. +     for (i = 0; i < numleaves; i++) {
  899. +       oldleafloc[i] = newleafloc[i]
  900. +     }
  901. +   }
  902. + }
  903. *** /dev/null    Wed Jul 22 14:07:57 1992
  904. --- wortman.jgr    Wed Jul 22 16:06:03 1992
  905. ***************
  906. *** 0 ****
  907. --- 1,709 ----
  908. + (* From dw@dragon.fly.toronto.edu Fri Jul 17 12:02:25 1992
  909. + Received: from Princeton.EDU by fs.Princeton.EDU (4.1/1.105)
  910. +     id AA19140; Fri, 17 Jul 92 12:02:22 EDT
  911. + Received: from dragon.fly.toronto.edu by Princeton.EDU (5.65b/2.93/princeton)
  912. +     id AA18519; Fri, 17 Jul 92 12:01:51 -0400
  913. + Received: by dragon.fly.toronto.edu id <39023>; Fri, 17 Jul 1992 12:01:33 -0400
  914. + From: Dave Wortman <dw@dragon.fly.toronto.edu>
  915. + To: jsp@Princeton.EDU
  916. + Subject: jgraph source for Wortman PLDI92 activity bar figure
  917. + Cc: dw@dragon.fly.toronto.edu
  918. + Message-Id: <92Jul17.120133edt.39023@dragon.fly.toronto.edu>
  919. + Date:     Fri, 17 Jul 1992 12:01:32 -0400
  920. + Status: R
  921. + Here is the source for the final version of the figure.
  922. + FYI it was generated by an awk program that post processed trace data
  923. + generated by the concurrent compiler.
  924. + ============================================================================
  925. + *)
  926. + newgraph
  927. + yaxis size 7.5 min 0 max 8.500000 gray 0.000000 hash 0.0 label fontsize 16 : Processor
  928. + hash_labels fontsize 18
  929. + hash_label at 1.0 : 1
  930. + hash_label at 2.0 : 2
  931. + hash_label at 3.0 : 3
  932. + hash_label at 4.0 : 4
  933. + hash_label at 5.0 : 5
  934. + hash_label at 6.0 : 6
  935. + hash_label at 7.0 : 7
  936. + hash_label at 8.0 : 8
  937. + xaxis size 7.5 min 0 max 4232 gray 0 label fontsize 16 : Time (clock ticks)
  938. + legend  custom linelength 500.0
  939. + newcurve marktype box fill 0.2  marksize 300.0 0.4
  940. + label vjt hjl x 500.0 y -1.0 fontsize 12 : Lexical Analysis
  941. + newcurve marktype box fill 0.5  marksize 300.0 0.4
  942. + label vjt hjl x 500.0 y -1.5 fontsize 12 : Import
  943. + newcurve marktype box fill 0.95  marksize 300.0 0.4
  944. + label vjt hjl x 1800.0 y -1.0 fontsize 12 : Splitter
  945. + newcurve marktype box fill 0.7  marksize 300.0 0.4
  946. + label vjt hjl x 1800.0 y -1.5 fontsize 12 : Parse/Dcl Analysis
  947. + newcurve marktype box fill 0.4  marksize 300.0 0.4
  948. + label vjt hjl x 3100.0 y -1.0 fontsize 12 : Stmt Processing
  949. + newcurve marktype box fill 0.8  marksize 300.0 0.4
  950. + label vjt hjl x 3100.0 y -1.5 fontsize 12 : Merge
  951. + newcurve marktype box fill 0.200000 
  952. + linethickness 0.0
  953. + marksize 1350 0.400000 pts  714 1
  954. + newcurve marktype box fill 0.700000
  955. + linethickness 0.0
  956. + marksize 53 0.400000 pts  1651 1.000000
  957. + newcurve marktype box fill 0.700000
  958. + linethickness 0.0
  959. + marksize 28 0.400000 pts  1693 1.000000
  960. + newcurve marktype box fill 0.700000
  961. + linethickness 0.0
  962. + marksize 183 0.400000 pts  1799 1.000000
  963. + newcurve marktype box fill 0.700000
  964. + linethickness 0.0
  965. + marksize 36 0.400000 pts  1911 1.000000
  966. + newcurve marktype box fill 0.700000
  967. + linethickness 0.0
  968. + marksize 71 0.400000 pts  1966 1.000000
  969. + newcurve marktype box fill 0.700000
  970. + linethickness 0.0
  971. + marksize 30 0.400000 pts  2018 1.000000
  972. + newcurve marktype box fill 0.400000
  973. + linethickness 0.0
  974. + marksize 782 0.400000 pts  2426 1.000000
  975. + newcurve marktype box fill 0.400000
  976. + linethickness 0.0
  977. + marksize 101 0.400000 pts  2868 1.000000
  978. + newcurve marktype box fill 0.400000
  979. + linethickness 0.0
  980. + marksize 63 0.400000 pts  2950 1.000000
  981. + newcurve marktype box fill 0.400000
  982. + linethickness 0.0
  983. + marksize 140 0.400000 pts  3054 1.000000
  984. + newcurve marktype box fill 0.400000
  985. + linethickness 0.0
  986. + marksize 159 0.400000 pts  3204 1.000000
  987. + newcurve marktype box fill 0.400000
  988. + linethickness 0.0
  989. + marksize 99 0.400000 pts  3334 1.000000
  990. + newcurve marktype box fill 0.400000
  991. + linethickness 0.0
  992. + marksize 181 0.400000 pts  3475 1.000000
  993. + newcurve marktype box fill 0.400000
  994. + linethickness 0.0
  995. + marksize 64 0.400000 pts  3599 1.000000
  996. + newcurve marktype box fill 0.400000
  997. + linethickness 0.0
  998. + marksize 135 0.400000 pts  3699 1.000000
  999. + newcurve marktype box fill 0.400000
  1000. + linethickness 0.0
  1001. + marksize 368 0.400000 pts  3953 1.000000
  1002. + newcurve marktype box fill 0.800000
  1003. + linethickness 0.0
  1004. + marksize 72 0.400000 pts  4174 1.000000
  1005. + newcurve marktype box fill 0.200000 
  1006. + linethickness 0.0
  1007. + marksize 114 0.400000 pts  154 2
  1008. + newcurve marktype box fill 0.200000 
  1009. + linethickness 0.0
  1010. + marksize 91 0.400000 pts  256 2
  1011. + newcurve marktype box fill 0.200000 
  1012. + linethickness 0.0
  1013. + marksize 101 0.400000 pts  354 2
  1014. + newcurve marktype box fill 0.500000 
  1015. + linethickness 0.0
  1016. + marksize 8 0.400000 pts  411 2.000000
  1017. + newcurve marktype box fill 0.500000 
  1018. + linethickness 0.0
  1019. + marksize 8 0.400000 pts  420 2.000000
  1020. + newcurve marktype box fill 0.500000 
  1021. + linethickness 0.0
  1022. + marksize 9 0.400000 pts  429 2.000000
  1023. + newcurve marktype box fill 0.500000 
  1024. + linethickness 0.0
  1025. + marksize 25 0.400000 pts  447 2.000000
  1026. + newcurve marktype box fill 0.200000 
  1027. + linethickness 0.0
  1028. + marksize 50 0.400000 pts  485 2
  1029. + newcurve marktype box fill 0.500000 
  1030. + linethickness 0.0
  1031. + marksize 8 0.400000 pts  515 2.000000
  1032. + newcurve marktype box fill 0.500000 
  1033. + linethickness 0.0
  1034. + marksize 6 0.400000 pts  522 2.000000
  1035. + newcurve marktype box fill 0.500000 
  1036. + linethickness 0.0
  1037. + marksize 28 0.400000 pts  539 2.000000
  1038. + newcurve marktype box fill 0.200000 
  1039. + linethickness 0.0
  1040. + marksize 59 0.400000 pts  583 2
  1041. + newcurve marktype box fill 0.200000 
  1042. + linethickness 0.0
  1043. + marksize 70 0.400000 pts  650 2
  1044. + newcurve marktype box fill 0.700000
  1045. + linethickness 0.0
  1046. + marksize 6 0.400000 pts  689 2.000000
  1047. + newcurve marktype box fill 0.700000
  1048. + linethickness 0.0
  1049. + marksize 82 0.400000 pts  737 2.000000
  1050. + newcurve marktype box fill 0.700000
  1051. + linethickness 0.0
  1052. + marksize 110 0.400000 pts  835 2.000000
  1053. + newcurve marktype box fill 0.700000
  1054. + linethickness 0.0
  1055. + marksize 67 0.400000 pts  1249 2.000000
  1056. + newcurve marktype box fill 0.700000
  1057. + linethickness 0.0
  1058. + marksize 30 0.400000 pts  1655 2.000000
  1059. + newcurve marktype box fill 0.700000
  1060. + linethickness 0.0
  1061. + marksize 16 0.400000 pts  1679 2.000000
  1062. + newcurve marktype box fill 0.700000
  1063. + linethickness 0.0
  1064. + marksize 33 0.400000 pts  1704 2.000000
  1065. + newcurve marktype box fill 0.400000
  1066. + linethickness 0.0
  1067. + marksize 80 0.400000 pts  1765 2.000000
  1068. + newcurve marktype box fill 0.700000
  1069. + linethickness 0.0
  1070. + marksize 16 0.400000 pts  1816 2.000000
  1071. + newcurve marktype box fill 0.700000
  1072. + linethickness 0.0
  1073. + marksize 10 0.400000 pts  1830 2.000000
  1074. + newcurve marktype box fill 0.700000
  1075. + linethickness 0.0
  1076. + marksize 6 0.400000 pts  1839 2.000000
  1077. + newcurve marktype box fill 0.700000
  1078. + linethickness 0.0
  1079. + marksize 7 0.400000 pts  1847 2.000000
  1080. + newcurve marktype box fill 0.700000
  1081. + linethickness 0.0
  1082. + marksize 9 0.400000 pts  1855 2.000000
  1083. + newcurve marktype box fill 0.700000
  1084. + linethickness 0.0
  1085. + marksize 33 0.400000 pts  1877 2.000000
  1086. + newcurve marktype box fill 0.700000
  1087. + linethickness 0.0
  1088. + marksize 15 0.400000 pts  1902 2.000000
  1089. + newcurve marktype box fill 0.700000
  1090. + linethickness 0.0
  1091. + marksize 18 0.400000 pts  1921 2.000000
  1092. + newcurve marktype box fill 0.700000
  1093. + linethickness 0.0
  1094. + marksize 31 0.400000 pts  1946 2.000000
  1095. + newcurve marktype box fill 0.700000
  1096. + linethickness 0.0
  1097. + marksize 54 0.400000 pts  1992 2.000000
  1098. + newcurve marktype box fill 0.700000
  1099. + linethickness 0.0
  1100. + marksize 61 0.400000 pts  2051 2.000000
  1101. + newcurve marktype box fill 0.400000
  1102. + linethickness 0.0
  1103. + marksize 916 0.400000 pts  2542 2.000000
  1104. + newcurve marktype box fill 0.400000
  1105. + linethickness 0.0
  1106. + marksize 144 0.400000 pts  3073 2.000000
  1107. + newcurve marktype box fill 0.400000
  1108. + linethickness 0.0
  1109. + marksize 178 0.400000 pts  3235 2.000000
  1110. + newcurve marktype box fill 0.400000
  1111. + linethickness 0.0
  1112. + marksize 181 0.400000 pts  3415 2.000000
  1113. + newcurve marktype box fill 0.400000
  1114. + linethickness 0.0
  1115. + marksize 147 0.400000 pts  3581 2.000000
  1116. + newcurve marktype box fill 0.400000
  1117. + linethickness 0.0
  1118. + marksize 137 0.400000 pts  3724 2.000000
  1119. + newcurve marktype box fill 0.500000 
  1120. + linethickness 0.0
  1121. + marksize 44 0.400000 pts  149 3.000000
  1122. + newcurve marktype box fill 0.200000 
  1123. + linethickness 0.0
  1124. + marksize 142 0.400000 pts  243 3
  1125. + newcurve marktype box fill 0.500000 
  1126. + linethickness 0.0
  1127. + marksize 5 0.400000 pts  317 3.000000
  1128. + newcurve marktype box fill 0.200000 
  1129. + linethickness 0.0
  1130. + marksize 105 0.400000 pts  372 3
  1131. + newcurve marktype box fill 0.500000 
  1132. + linethickness 0.0
  1133. + marksize 5 0.400000 pts  428 3.000000
  1134. + newcurve marktype box fill 0.200000 
  1135. + linethickness 0.0
  1136. + marksize 67 0.400000 pts  465 3
  1137. + newcurve marktype box fill 0.500000 
  1138. + linethickness 0.0
  1139. + marksize 9 0.400000 pts  504 3.000000
  1140. + newcurve marktype box fill 0.200000 
  1141. + linethickness 0.0
  1142. + marksize 82 0.400000 pts  550 3
  1143. + newcurve marktype box fill 0.200000 
  1144. + linethickness 0.0
  1145. + marksize 74 0.400000 pts  631 3
  1146. + newcurve marktype box fill 0.500000 
  1147. + linethickness 0.0
  1148. + marksize 6 0.400000 pts  672 3.000000
  1149. + newcurve marktype box fill 0.200000 
  1150. + linethickness 0.0
  1151. + marksize 41 0.400000 pts  696 3
  1152. + newcurve marktype box fill 0.700000
  1153. + linethickness 0.0
  1154. + marksize 28 0.400000 pts  732 3.000000
  1155. + newcurve marktype box fill 0.700000
  1156. + linethickness 0.0
  1157. + marksize 17 0.400000 pts  755 3.000000
  1158. + newcurve marktype box fill 0.700000
  1159. + linethickness 0.0
  1160. + marksize 72 0.400000 pts  802 3.000000
  1161. + newcurve marktype box fill 0.700000
  1162. + linethickness 0.0
  1163. + marksize 25 0.400000 pts  852 3.000000
  1164. + newcurve marktype box fill 0.700000
  1165. + linethickness 0.0
  1166. + marksize 8 0.400000 pts  872 3.000000
  1167. + newcurve marktype box fill 0.700000
  1168. + linethickness 0.0
  1169. + marksize 2 0.400000 pts  1328 3.000000
  1170. + newcurve marktype box fill 0.700000
  1171. + linethickness 0.0
  1172. + marksize 538 0.400000 pts  1792 3.000000
  1173. + newcurve marktype box fill 0.400000
  1174. + linethickness 0.0
  1175. + marksize 840 0.400000 pts  2486 3.000000
  1176. + newcurve marktype box fill 0.400000
  1177. + linethickness 0.0
  1178. + marksize 486 0.400000 pts  3150 3.000000
  1179. + newcurve marktype box fill 0.400000
  1180. + linethickness 0.0
  1181. + marksize 178 0.400000 pts  3484 3.000000
  1182. + newcurve marktype box fill 0.400000
  1183. + linethickness 0.0
  1184. + marksize 54 0.400000 pts  3602 3.000000
  1185. + newcurve marktype box fill 0.400000
  1186. + linethickness 0.0
  1187. + marksize 121 0.400000 pts  3690 3.000000
  1188. + newcurve marktype box fill 0.400000
  1189. + linethickness 0.0
  1190. + marksize 176 0.400000 pts  3840 3.000000
  1191. + newcurve marktype box fill 0.200000 
  1192. + linethickness 0.0
  1193. + marksize 174 0.400000 pts  226 4
  1194. + newcurve marktype box fill 0.500000 
  1195. + linethickness 0.0
  1196. + marksize 6 0.400000 pts  317 4.000000
  1197. + newcurve marktype box fill 0.500000 
  1198. + linethickness 0.0
  1199. + marksize 11 0.400000 pts  327 4.000000
  1200. + newcurve marktype box fill 0.200000 
  1201. + linethickness 0.0
  1202. + marksize 42 0.400000 pts  355 4
  1203. + newcurve marktype box fill 0.200000 
  1204. + linethickness 0.0
  1205. + marksize 79 0.400000 pts  416 4
  1206. + newcurve marktype box fill 0.200000 
  1207. + linethickness 0.0
  1208. + marksize 73 0.400000 pts  494 4
  1209. + newcurve marktype box fill 0.200000 
  1210. + linethickness 0.0
  1211. + marksize 73 0.400000 pts  568 4
  1212. + newcurve marktype box fill 0.200000 
  1213. + linethickness 0.0
  1214. + marksize 48 0.400000 pts  630 4
  1215. + newcurve marktype box fill 0.500000 
  1216. + linethickness 0.0
  1217. + marksize 6 0.400000 pts  658 4.000000
  1218. + newcurve marktype box fill 0.500000 
  1219. + linethickness 0.0
  1220. + marksize 16 0.400000 pts  670 4.000000
  1221. + newcurve marktype box fill 0.500000 
  1222. + linethickness 0.0
  1223. + marksize 8 0.400000 pts  683 4.000000
  1224. + newcurve marktype box fill 0.700000
  1225. + linethickness 0.0
  1226. + marksize 35 0.400000 pts  705 4.000000
  1227. + newcurve marktype box fill 0.700000
  1228. + linethickness 0.0
  1229. + marksize 25 0.400000 pts  736 4.000000
  1230. + newcurve marktype box fill 0.700000
  1231. + linethickness 0.0
  1232. + marksize 3 0.400000 pts  751 4.000000
  1233. + newcurve marktype box fill 0.700000
  1234. + linethickness 0.0
  1235. + marksize 15 0.400000 pts  763 4.000000
  1236. + newcurve marktype box fill 0.700000
  1237. + linethickness 0.0
  1238. + marksize 48 0.400000 pts  798 4.000000
  1239. + newcurve marktype box fill 0.700000
  1240. + linethickness 0.0
  1241. + marksize 9 0.400000 pts  828 4.000000
  1242. + newcurve marktype box fill 0.700000
  1243. + linethickness 0.0
  1244. + marksize 27 0.400000 pts  849 4.000000
  1245. + newcurve marktype box fill 0.700000
  1246. + linethickness 0.0
  1247. + marksize 59 0.400000 pts  893 4.000000
  1248. + newcurve marktype box fill 0.700000
  1249. + linethickness 0.0
  1250. + marksize 26 0.400000 pts  1645 4.000000
  1251. + newcurve marktype box fill 0.700000
  1252. + linethickness 0.0
  1253. + marksize 14 0.400000 pts  1667 4.000000
  1254. + newcurve marktype box fill 0.400000
  1255. + linethickness 0.0
  1256. + marksize 120 0.400000 pts  1736 4.000000
  1257. + newcurve marktype box fill 0.700000
  1258. + linethickness 0.0
  1259. + marksize 12 0.400000 pts  1803 4.000000
  1260. + newcurve marktype box fill 0.700000
  1261. + linethickness 0.0
  1262. + marksize 21 0.400000 pts  1819 4.000000
  1263. + newcurve marktype box fill 0.700000
  1264. + linethickness 0.0
  1265. + marksize 6 0.400000 pts  1834 4.000000
  1266. + newcurve marktype box fill 0.700000
  1267. + linethickness 0.0
  1268. + marksize 7 0.400000 pts  1841 4.000000
  1269. + newcurve marktype box fill 0.700000
  1270. + linethickness 0.0
  1271. + marksize 9 0.400000 pts  1852 4.000000
  1272. + newcurve marktype box fill 0.700000
  1273. + linethickness 0.0
  1274. + marksize 6 0.400000 pts  1861 4.000000
  1275. + newcurve marktype box fill 0.700000
  1276. + linethickness 0.0
  1277. + marksize 12 0.400000 pts  1871 4.000000
  1278. + newcurve marktype box fill 0.700000
  1279. + linethickness 0.0
  1280. + marksize 22 0.400000 pts  1889 4.000000
  1281. + newcurve marktype box fill 0.700000
  1282. + linethickness 0.0
  1283. + marksize 16 0.400000 pts  1909 4.000000
  1284. + newcurve marktype box fill 0.700000
  1285. + linethickness 0.0
  1286. + marksize 8 0.400000 pts  1921 4.000000
  1287. + newcurve marktype box fill 0.700000
  1288. + linethickness 0.0
  1289. + marksize 109 0.400000 pts  1980 4.000000
  1290. + newcurve marktype box fill 0.400000
  1291. + linethickness 0.0
  1292. + marksize 765 0.400000 pts  2419 4.000000
  1293. + newcurve marktype box fill 0.400000
  1294. + linethickness 0.0
  1295. + marksize 283 0.400000 pts  2945 4.000000
  1296. + newcurve marktype box fill 0.400000
  1297. + linethickness 0.0
  1298. + marksize 190 0.400000 pts  3184 4.000000
  1299. + newcurve marktype box fill 0.400000
  1300. + linethickness 0.0
  1301. + marksize 272 0.400000 pts  3417 4.000000
  1302. + newcurve marktype box fill 0.400000
  1303. + linethickness 0.0
  1304. + marksize 55 0.400000 pts  3582 4.000000
  1305. + newcurve marktype box fill 0.400000
  1306. + linethickness 0.0
  1307. + marksize 112 0.400000 pts  3667 4.000000
  1308. + newcurve marktype box fill 0.400000
  1309. + linethickness 0.0
  1310. + marksize 65 0.400000 pts  3757 4.000000
  1311. + newcurve marktype box fill 0.200000 
  1312. + linethickness 0.0
  1313. + marksize 448 0.400000 pts  365 5
  1314. + newcurve marktype box fill 0.200000 
  1315. + linethickness 0.0
  1316. + marksize 70 0.400000 pts  625 5
  1317. + newcurve marktype box fill 0.500000 
  1318. + linethickness 0.0
  1319. + marksize 13 0.400000 pts  669 5.000000
  1320. + newcurve marktype box fill 0.500000 
  1321. + linethickness 0.0
  1322. + marksize 6 0.400000 pts  681 5.000000
  1323. + newcurve marktype box fill 0.500000 
  1324. + linethickness 0.0
  1325. + marksize 6 0.400000 pts  688 5.000000
  1326. + newcurve marktype box fill 0.700000
  1327. + linethickness 0.0
  1328. + marksize 7 0.400000 pts  695 5.000000
  1329. + newcurve marktype box fill 0.500000 
  1330. + linethickness 0.0
  1331. + marksize 10 0.400000 pts  709 5.000000
  1332. + newcurve marktype box fill 0.700000
  1333. + linethickness 0.0
  1334. + marksize 84 0.400000 pts  819 5.000000
  1335. + newcurve marktype box fill 0.700000
  1336. + linethickness 0.0
  1337. + marksize 33 0.400000 pts  879 5.000000
  1338. + newcurve marktype box fill 0.700000
  1339. + linethickness 0.0
  1340. + marksize 18 0.400000 pts  1663 5.000000
  1341. + newcurve marktype box fill 0.400000
  1342. + linethickness 0.0
  1343. + marksize 152 0.400000 pts  1749 5.000000
  1344. + newcurve marktype box fill 0.700000
  1345. + linethickness 0.0
  1346. + marksize 10 0.400000 pts  1831 5.000000
  1347. + newcurve marktype box fill 0.700000
  1348. + linethickness 0.0
  1349. + marksize 9 0.400000 pts  1841 5.000000
  1350. + newcurve marktype box fill 0.700000
  1351. + linethickness 0.0
  1352. + marksize 95 0.400000 pts  1894 5.000000
  1353. + newcurve marktype box fill 0.700000
  1354. + linethickness 0.0
  1355. + marksize 12 0.400000 pts  1948 5.000000
  1356. + newcurve marktype box fill 0.700000
  1357. + linethickness 0.0
  1358. + marksize 15 0.400000 pts  1962 5.000000
  1359. + newcurve marktype box fill 0.700000
  1360. + linethickness 0.0
  1361. + marksize 123 0.400000 pts  2032 5.000000
  1362. + newcurve marktype box fill 0.400000
  1363. + linethickness 0.0
  1364. + marksize 849 0.400000 pts  2519 5.000000
  1365. + newcurve marktype box fill 0.400000
  1366. + linethickness 0.0
  1367. + marksize 544 0.400000 pts  3218 5.000000
  1368. + newcurve marktype box fill 0.400000
  1369. + linethickness 0.0
  1370. + marksize 145 0.400000 pts  3564 5.000000
  1371. + newcurve marktype box fill 0.400000
  1372. + linethickness 0.0
  1373. + marksize 103 0.400000 pts  3689 5.000000
  1374. + newcurve marktype box fill 0.400000
  1375. + linethickness 0.0
  1376. + marksize 119 0.400000 pts  3801 5.000000
  1377. + newcurve marktype box fill 0.200000 
  1378. + linethickness 0.0
  1379. + marksize 282 0.400000 pts  287 6
  1380. + newcurve marktype box fill 0.500000 
  1381. + linethickness 0.0
  1382. + marksize 5 0.400000 pts  431 6.000000
  1383. + newcurve marktype box fill 0.500000 
  1384. + linethickness 0.0
  1385. + marksize 5 0.400000 pts  437 6.000000
  1386. + newcurve marktype box fill 0.500000 
  1387. + linethickness 0.0
  1388. + marksize 6 0.400000 pts  444 6.000000
  1389. + newcurve marktype box fill 0.700000
  1390. + linethickness 0.0
  1391. + marksize 4 0.400000 pts  452 6.000000
  1392. + newcurve marktype box fill 0.700000
  1393. + linethickness 0.0
  1394. + marksize 9 0.400000 pts  463 6.000000
  1395. + newcurve marktype box fill 0.700000
  1396. + linethickness 0.0
  1397. + marksize 41 0.400000 pts  491 6.000000
  1398. + newcurve marktype box fill 0.700000
  1399. + linethickness 0.0
  1400. + marksize 11 0.400000 pts  519 6.000000
  1401. + newcurve marktype box fill 0.700000
  1402. + linethickness 0.0
  1403. + marksize 12 0.400000 pts  533 6.000000
  1404. + newcurve marktype box fill 0.700000
  1405. + linethickness 0.0
  1406. + marksize 150 0.400000 pts  616 6.000000
  1407. + newcurve marktype box fill 0.700000
  1408. + linethickness 0.0
  1409. + marksize 9 0.400000 pts  697 6.000000
  1410. + newcurve marktype box fill 0.700000
  1411. + linethickness 0.0
  1412. + marksize 54 0.400000 pts  732 6.000000
  1413. + newcurve marktype box fill 0.700000
  1414. + linethickness 0.0
  1415. + marksize 455 0.400000 pts  988 6.000000
  1416. + newcurve marktype box fill 0.700000
  1417. + linethickness 0.0
  1418. + marksize 108 0.400000 pts  1273 6.000000
  1419. + newcurve marktype box fill 0.700000
  1420. + linethickness 0.0
  1421. + marksize 67 0.400000 pts  1362 6.000000
  1422. + newcurve marktype box fill 0.400000
  1423. + linethickness 0.0
  1424. + marksize 270 0.400000 pts  1793 6.000000
  1425. + newcurve marktype box fill 0.700000
  1426. + linethickness 0.0
  1427. + marksize 18 0.400000 pts  1938 6.000000
  1428. + newcurve marktype box fill 0.700000
  1429. + linethickness 0.0
  1430. + marksize 46 0.400000 pts  1970 6.000000
  1431. + newcurve marktype box fill 0.700000
  1432. + linethickness 0.0
  1433. + marksize 20 0.400000 pts  2003 6.000000
  1434. + newcurve marktype box fill 0.700000
  1435. + linethickness 0.0
  1436. + marksize 8 0.400000 pts  2018 6.000000
  1437. + newcurve marktype box fill 0.700000
  1438. + linethickness 0.0
  1439. + marksize 10 0.400000 pts  2028 6.000000
  1440. + newcurve marktype box fill 0.400000
  1441. + linethickness 0.0
  1442. + marksize 395 0.400000 pts  2231 6.000000
  1443. + newcurve marktype box fill 0.400000
  1444. + linethickness 0.0
  1445. + marksize 514 0.400000 pts  2688 6.000000
  1446. + newcurve marktype box fill 0.400000
  1447. + linethickness 0.0
  1448. + marksize 127 0.400000 pts  3009 6.000000
  1449. + newcurve marktype box fill 0.400000
  1450. + linethickness 0.0
  1451. + marksize 243 0.400000 pts  3196 6.000000
  1452. + newcurve marktype box fill 0.400000
  1453. + linethickness 0.0
  1454. + marksize 64 0.400000 pts  3352 6.000000
  1455. + newcurve marktype box fill 0.400000
  1456. + linethickness 0.0
  1457. + marksize 122 0.400000 pts  3445 6.000000
  1458. + newcurve marktype box fill 0.400000
  1459. + linethickness 0.0
  1460. + marksize 153 0.400000 pts  3583 6.000000
  1461. + newcurve marktype box fill 0.400000
  1462. + linethickness 0.0
  1463. + marksize 99 0.400000 pts  3710 6.000000
  1464. + newcurve marktype box fill 0.400000
  1465. + linethickness 0.0
  1466. + marksize 79 0.400000 pts  3800 6.000000
  1467. + newcurve marktype box fill 0.200000 
  1468. + linethickness 0.0
  1469. + marksize 132 0.400000 pts  216 7
  1470. + newcurve marktype box fill 0.200000 
  1471. + linethickness 0.0
  1472. + marksize 194 0.400000 pts  380 7
  1473. + newcurve marktype box fill 0.950000
  1474. + linethickness 0.0
  1475. + marksize 913 0.400000 pts  934 7.000000
  1476. + newcurve marktype box fill 0.700000
  1477. + linethickness 0.0
  1478. + marksize 33 0.400000 pts  1681 7.000000
  1479. + newcurve marktype box fill 0.700000
  1480. + linethickness 0.0
  1481. + marksize 10 0.400000 pts  1704 7.000000
  1482. + newcurve marktype box fill 0.700000
  1483. + linethickness 0.0
  1484. + marksize 14 0.400000 pts  1717 7.000000
  1485. + newcurve marktype box fill 0.700000
  1486. + linethickness 0.0
  1487. + marksize 131 0.400000 pts  1789 7.000000
  1488. + newcurve marktype box fill 0.700000
  1489. + linethickness 0.0
  1490. + marksize 13 0.400000 pts  1862 7.000000
  1491. + newcurve marktype box fill 0.700000
  1492. + linethickness 0.0
  1493. + marksize 14 0.400000 pts  1877 7.000000
  1494. + newcurve marktype box fill 0.700000
  1495. + linethickness 0.0
  1496. + marksize 20 0.400000 pts  1894 7.000000
  1497. + newcurve marktype box fill 0.700000
  1498. + linethickness 0.0
  1499. + marksize 16 0.400000 pts  1913 7.000000
  1500. + newcurve marktype box fill 0.700000
  1501. + linethickness 0.0
  1502. + marksize 7 0.400000 pts  1925 7.000000
  1503. + newcurve marktype box fill 0.700000
  1504. + linethickness 0.0
  1505. + marksize 30 0.400000 pts  1945 7.000000
  1506. + newcurve marktype box fill 0.700000
  1507. + linethickness 0.0
  1508. + marksize 58 0.400000 pts  1990 7.000000
  1509. + newcurve marktype box fill 0.700000
  1510. + linethickness 0.0
  1511. + marksize 53 0.400000 pts  2049 7.000000
  1512. + newcurve marktype box fill 0.400000
  1513. + linethickness 0.0
  1514. + marksize 898 0.400000 pts  2526 7.000000
  1515. + newcurve marktype box fill 0.400000
  1516. + linethickness 0.0
  1517. + marksize 279 0.400000 pts  3118 7.000000
  1518. + newcurve marktype box fill 0.400000
  1519. + linethickness 0.0
  1520. + marksize 137 0.400000 pts  3327 7.000000
  1521. + newcurve marktype box fill 0.400000
  1522. + linethickness 0.0
  1523. + marksize 148 0.400000 pts  3471 7.000000
  1524. + newcurve marktype box fill 0.400000
  1525. + linethickness 0.0
  1526. + marksize 87 0.400000 pts  3590 7.000000
  1527. + newcurve marktype box fill 0.400000
  1528. + linethickness 0.0
  1529. + marksize 49 0.400000 pts  3659 7.000000
  1530. + newcurve marktype box fill 0.400000
  1531. + linethickness 0.0
  1532. + marksize 102 0.400000 pts  3737 7.000000
  1533. + newcurve marktype box fill 0.200000 
  1534. + linethickness 0.0
  1535. + marksize 76 0.400000 pts  192 8
  1536. + newcurve marktype box fill 0.200000 
  1537. + linethickness 0.0
  1538. + marksize 163 0.400000 pts  312 8
  1539. + newcurve marktype box fill 0.200000 
  1540. + linethickness 0.0
  1541. + marksize 26 0.400000 pts  408 8
  1542. + newcurve marktype box fill 0.500000 
  1543. + linethickness 0.0
  1544. + marksize 8 0.400000 pts  426 8.000000
  1545. + newcurve marktype box fill 0.500000 
  1546. + linethickness 0.0
  1547. + marksize 5 0.400000 pts  433 8.000000
  1548. + newcurve marktype box fill 0.500000 
  1549. + linethickness 0.0
  1550. + marksize 8 0.400000 pts  441 8.000000
  1551. + newcurve marktype box fill 0.700000
  1552. + linethickness 0.0
  1553. + marksize 13 0.400000 pts  452 8.000000
  1554. + newcurve marktype box fill 0.700000
  1555. + linethickness 0.0
  1556. + marksize 6 0.400000 pts  464 8.000000
  1557. + newcurve marktype box fill 0.700000
  1558. + linethickness 0.0
  1559. + marksize 71 0.400000 pts  506 8.000000
  1560. + newcurve marktype box fill 0.700000
  1561. + linethickness 0.0
  1562. + marksize 18 0.400000 pts  553 8.000000
  1563. + newcurve marktype box fill 0.700000
  1564. + linethickness 0.0
  1565. + marksize 148 0.400000 pts  641 8.000000
  1566. + newcurve marktype box fill 0.700000
  1567. + linethickness 0.0
  1568. + marksize 60 0.400000 pts  748 8.000000
  1569. + newcurve marktype box fill 0.700000
  1570. + linethickness 0.0
  1571. + marksize 75 0.400000 pts  816 8.000000
  1572. + newcurve marktype box fill 0.700000
  1573. + linethickness 0.0
  1574. + marksize 8 0.400000 pts  860 8.000000
  1575. + newcurve marktype box fill 0.700000
  1576. + linethickness 0.0
  1577. + marksize 13 0.400000 pts  871 8.000000
  1578. + newcurve marktype box fill 0.700000
  1579. + linethickness 0.0
  1580. + marksize 7 0.400000 pts  1219 8.000000
  1581. + newcurve marktype box fill 0.700000
  1582. + linethickness 0.0
  1583. + marksize 128 0.400000 pts  1460 8.000000
  1584. + newcurve marktype box fill 0.400000
  1585. + linethickness 0.0
  1586. + marksize 282 0.400000 pts  1811 8.000000
  1587. + newcurve marktype box fill 0.700000
  1588. + linethickness 0.0
  1589. + marksize 10 0.400000 pts  1958 8.000000
  1590. + newcurve marktype box fill 0.700000
  1591. + linethickness 0.0
  1592. + marksize 59 0.400000 pts  1995 8.000000
  1593. + newcurve marktype box fill 0.700000
  1594. + linethickness 0.0
  1595. + marksize 80 0.400000 pts  2066 8.000000
  1596. + newcurve marktype box fill 0.400000
  1597. + linethickness 0.0
  1598. + marksize 517 0.400000 pts  2365 8.000000
  1599. + newcurve marktype box fill 0.400000
  1600. + linethickness 0.0
  1601. + marksize 327 0.400000 pts  2788 8.000000
  1602. + newcurve marktype box fill 0.400000
  1603. + linethickness 0.0
  1604. + marksize 460 0.400000 pts  3183 8.000000
  1605. + newcurve marktype box fill 0.400000
  1606. + linethickness 0.0
  1607. + marksize 192 0.400000 pts  3510 8.000000
  1608. + newcurve marktype box fill 0.400000
  1609. + linethickness 0.0
  1610. + marksize 90 0.400000 pts  3652 8.000000
  1611. + newcurve marktype box fill 0.400000
  1612. + linethickness 0.0
  1613. + marksize 137 0.400000 pts  3767 8.000000
  1614.  
  1615. exit 0 # Just in case...
  1616.