home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume40 / gnuplot / part20 < prev    next >
Encoding:
Text File  |  1993-10-22  |  81.4 KB  |  3,378 lines

  1. Newsgroups: comp.sources.misc
  2. From: woo@playfair.stanford.edu ("Alexander Woo")
  3. Subject: v40i032:  gnuplot - interactive function plotting utility, Part20/33
  4. Message-ID: <1993Oct22.163738.24429@sparky.sterling.com>
  5. X-Md4-Signature: 484a588c025240c6096a8b9e4c55e830
  6. Sender: kent@sparky.sterling.com (Kent Landfield)
  7. Organization: Sterling Software
  8. Date: Fri, 22 Oct 1993 16:37:38 GMT
  9. Approved: kent@sparky.sterling.com
  10.  
  11. Submitted-by: woo@playfair.stanford.edu ("Alexander Woo")
  12. Posting-number: Volume 40, Issue 32
  13. Archive-name: gnuplot/part20
  14. Environment: UNIX, MS-DOS, VMS
  15. Supersedes: gnuplot3: Volume 24, Issue 23-48
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then feed it
  19. # into a shell via "sh file" or similar.  To overwrite existing files,
  20. # type "sh file -c".
  21. # Contents:  gnuplot/History gnuplot/demo/world.dat
  22. #   gnuplot/docs/latextut/tutorial.tex gnuplot/plot.h
  23. #   gnuplot/term/hp26.trm
  24. # Wrapped by kent@sparky on Wed Oct 20 17:14:53 1993
  25. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  26. echo If this archive is complete, you will see the following message:
  27. echo '          "shar: End of archive 20 (of 33)."'
  28. if test -f 'gnuplot/History' -a "${1}" != "-c" ; then 
  29.   echo shar: Will not clobber existing file \"'gnuplot/History'\"
  30. else
  31.   echo shar: Extracting \"'gnuplot/History'\" \(10765 characters\)
  32.   sed "s/^X//" >'gnuplot/History' <<'END_OF_FILE'
  33. X
  34. X                     GNUPLOT 3.0 RELEASE NOTES
  35. X
  36. XThis describes changes to gnuplot since version 2.02 (ie, 2.0
  37. Xpatchlevel 2).
  38. X
  39. XHighlights:
  40. X-----------
  41. XGnuplot now handles surfaces as well. A new command names 'splot' (for
  42. Xsurface plot) has been added for that purpose. A number of new 'set'
  43. Xoptions for surfaces have also been added and include: isosamples,
  44. Xview, contour, cntrparam, mapping and surface.  All tic/label/range
  45. Xsetting for x and y axes were extended for z as well.
  46. X
  47. XThe size of data file for both curves and surfaces is now independent
  48. Xof the samples (and iso_samples) variables. Data structures will
  49. Xautomatically be extended to hold the entire data file.
  50. X
  51. XNew features:
  52. X-------------
  53. X3-d plotting with 'splot', and many auxiliary options.
  54. X
  55. XNew 'errorbars' plot style.
  56. X
  57. XNew 'using x:y{:z}' format (NOT COMPATIBLE WITH GNUPLOT 2.02).
  58. X
  59. XData file plotting (for both curves and surfaces) does not require
  60. Xsetting samples (and isosamples for surfaces) any more. Size is
  61. Xincreased on the fly, without affecting the sample rate of functions.
  62. X
  63. XNew makefile scheme for unix, that supports lots of flavors.
  64. X
  65. XCommand-line editing and history.
  66. X
  67. XAdjustable display of plot border ('set border').
  68. X
  69. XSet-commands 'x/y/zlabel' can now position the label.
  70. X
  71. XSet-command 'title' can now position the title.
  72. X
  73. XNew time display command ('set time').
  74. X
  75. XAll PostScript devices were rewritten and merged into one (Color
  76. XPostscript is supported). Due to this many of the old postscript
  77. Xterminal driver names are not supported; only 'postscript' is
  78. Xrecognized. Use 'help set terminal postscript' to find out how to get
  79. Xyour old favorite back, and more.
  80. X
  81. XA 'gnuplot' mode for emacs in the file gnuplot.el.
  82. X
  83. XSGI device was improved.
  84. X
  85. XNew option to 'set arrow' called 'nohead'.
  86. X
  87. XList of all new commands:
  88. X-------------------------
  89. Xsplot
  90. X
  91. XList of all new set-show commands:
  92. X---------------------------------
  93. Xborder, cntrparam, contour, isosamples, mapping, rrange, surface,
  94. Xtime, view, zlabel, ztics, zrange.
  95. X
  96. XList of changed set-show commands:
  97. X----------------------------------
  98. Xarrow, terminal, title, xlabel, ylabel, zlabel
  99. X
  100. XNew terminal drivers:
  101. X---------------------
  102. Xvws, apollo, gpr apollo, dumb, BigFig, Super
  103. XVGA, ln03/hplj/hpdj, dxf.
  104. X
  105. XDeletions:
  106. X----------
  107. XThe gnut2p translator (translating gnutex to gnuplot) has been removed
  108. Xfrom the standard distribution.  It is available for ftp separately at
  109. Xcs.duke.edu as dist/sources/gnuplot/gnut2p.tar.Z
  110. X
  111. XBug fixes include:
  112. X------------------
  113. XFix a bug in parametric type hangup.
  114. X
  115. XAdd a .sty file to fix indexing problem in manual.
  116. X
  117. XFix a bug in hpljii.
  118. X
  119. XFix a bug in FIG arrows.
  120. X
  121. X
  122. X                            ACKNOWLEDGEMENTS
  123. X
  124. X- New PostScript device by Russell Lang (rjl@monu1.cc.monash.edu.au).
  125. X- Several bug fixes, manual proofing, World Map by John Campbell
  126. X(campbell@nauvax.ucc.nau.edu).
  127. X- Eliminating samples from data files, lasergnu, and errorbars by
  128. XDavid Kotz (David.Kotz@Dartmouth.edu).
  129. X- New history and line editing capability for Unix and MSDOS, bivariate
  130. X  functions and some bug fixes by Tom Tkacik (tkacik@hobbes.cs.gmr.com).
  131. X- New using x:y{:z} format by Dennis Linse (djlinse@phoenix.princeton.edu).
  132. X- Some polar enhancements, time display and some bug fixes by
  133. XAlex Woo (woo@ra-next.arc.nasa.gov).
  134. X- Dumb terminal by Francois Pinard (pinard@iro.umontreal.ca).
  135. X- VWS device by Walter Speth (speth@dbnpib5.bitnet).
  136. X- BigFig device by (ian@augean.ua.oz.au).
  137. X- XDF device by Florian Hiss (fhis1231@w204zrz.zrz.tu-berlin.de).
  138. X- HP Desk Jet device, overlay support for BCC and more efficient help
  139. Xand pc.trm for MSDOS by Maurice Castro and Russell Lang
  140. X(rjl@monu1.cc.monash.edu.au).
  141. X- New makefile scheme by Roque Donizete De Oliveira and David Kotz
  142. X(oliveria@caen.engin.umich.edu and David.Kotz@Dartmouth.edu).
  143. X- The 3d extensions, contouring, Super VGA device, and bringing this new
  144. Xversion up by Gershon Elber (gershon@cs.utah.edu).
  145. X
  146. XOther bug fixes/improvments:
  147. X= Tom Bopp (tbopp@uhunix.uhcc.hawaii.edu)
  148. X= Kenneth H. Carpenter (khc@eece.ksu.edu)
  149. X= Mark Christopher (christo@bnr.ca)
  150. X= Henk de Haan (haan@irimcf.tudelft.nl)
  151. X= David Gillespie (daveg@csvax.cs.caltech.edu)
  152. X
  153. XBeta testers:
  154. X+ John Campbell (campbell@nauvax.ucc.nau.edu)
  155. X+ Kenneth H. Carpenter (khc@eece.ksu.edu)
  156. X+ Gershon Elber (gershon@cs.utah.edu)
  157. X+ Pat Empleo (empleop@afal-edwards.af.mil)
  158. X+ David Kotz (dfk@moose.dartmouth.edu)
  159. X+ Russell Lang (rjl@monu1.cc.monash.edu.au)
  160. X+ Tom Tkacik (tkacik@hobbes.cs.gmr.com)
  161. X+ Roque Donizete De Oliveira (oliveria@caen.engin.umich.edu)
  162. X+ Walter Speth (Speth@dbnpib5.bitnet)
  163. X+ Carsten Steger (stegerc@gshalle2.informatik.tu-muenchen.de)
  164. X
  165. X============================================================================
  166. X
  167. X                     GNUPLOT 2.0 RELEASE NOTES
  168. X
  169. XNew terminal drivers: ATT6300, Roland DXY800A, EEPIC, emTeX, EPSON LX-800,
  170. XEPSON 60dpi, Fig, HP2648, HPGL, HP LaserJet, Imagen, Kermit-MS Tektronix
  171. Xemulator, LaTeX, MCGA, NEC CP6 pinwriter, POSTSCRIPT, Proprinter, Star color
  172. Xprinter, Tandy DMP-130, Tektronix 410x, SUN, VGA, X11.
  173. X
  174. XAdditions:
  175. X
  176. XCommand-line arguments are accepted. They are treated as names of
  177. Xfiles containing gnuplot commands. Gnuplot loads them, one by one, and
  178. Xthen exits.
  179. X
  180. XCommand 'plot' now has a 'title' option to change the information in
  181. Xthe key.  The 'with' option can now specify line type and point type.
  182. X
  183. XCommand 'pause'.
  184. X
  185. XCommand 'replot' allows the addition of extra plots.
  186. X
  187. XCommand 'save' now saves all the 'set' options, including the last
  188. Xplot command.
  189. X
  190. XCommand 'set autoscale' now accepts autoscaling on the x axis for data
  191. Xfiles. The default is autoscaling on both axes.
  192. X
  193. XCommand 'set noclip' disables clipping of points near the border. 'set
  194. Xclip' reenables clipping. The default used to be 'clip', and is now
  195. X'noclip'. Clipping has also been extended to clip lines that extend
  196. Xoutside the borders: line plots are now clipped at the plot boundary.
  197. XFormerly, the line stopped at the last in-range data point.
  198. X
  199. XNumerical labelling at tic marks on x and y axes.  Command 'set
  200. Xformat' allows the format of the tic mark labels to be altered.
  201. XCommands 'set xtics' and 'set ytics' allow for alphanumeric labels and
  202. Xarbitrary tic positions.
  203. X
  204. XCommand 'set grid' adds a grid between the tic marks.
  205. X
  206. XImproved key gives sample point or line types.  Key can be disabled
  207. Xwith the 'set nokey'. Key can be positioned anywhere.
  208. X
  209. XCommand 'set label' allows the placement of arbitrary text labels and
  210. Xarrows.
  211. X
  212. XCommand 'set polar' for polar plots.
  213. X
  214. XCommand 'set offsets' for reducing the plotted area.  Useful for polar
  215. Xplots.
  216. X
  217. XCommand 'set size' scales the displayed size of the plot.
  218. X
  219. XCommand 'set tics out' causes the tics to be drawn outwards from the
  220. Xborder.  Useful for impulse plots.
  221. X
  222. XCommand 'set title' places a text label above the plot.
  223. X
  224. XCommands 'set xlabel' and 'set ylabel' place text labels on the x and
  225. Xy axes respectively.  Some terminals will place the y label vertically
  226. Xupwards on the left of the plot, others place the label horizontally
  227. Xat the left of the plot.
  228. X
  229. XImproved tics on log scales.
  230. X
  231. XExtended comments: comments are allowed anywhere reasonable in the
  232. Xinput line, and continue to the end of the input line.
  233. X
  234. XLine continuation (with \) is added.
  235. X
  236. XNon-interactive use, through redirection or "load" command, is
  237. Ximproved. Error messages expanded to include file name and line
  238. Xnumber, and to reprint command line if not interactive.
  239. X
  240. XNew plotting styles 'linespoints' and 'dots'.
  241. X
  242. XBlank lines in data files denote "breaks". In lines and linespoints
  243. Xplot styles, this breaks the curve being drawn and begins at the next
  244. Xpoint, without changing the line or point types.
  245. X
  246. XCompletely new interactive help system that is similar to VMS help
  247. Xsystem. A printed manual can be obtained in LaTeX, troff, or nroff and
  248. Xis based on the same information as the interactive help.
  249. X
  250. XPC version now compiles with the large model so that gnuplot will
  251. Xcompile with the above additions!
  252. X
  253. XBug fixes include:
  254. X------------------
  255. XBug involving functions plotted on a logarithmic x axis is fixed.
  256. X
  257. XErrors inside of loaded files now clean up and close files properly.
  258. X
  259. XNumbers of the form xxxxe+nn are now acceptable (+ sign caused error).
  260. X
  261. XTics are now place inside the borders (some were outside).
  262. X
  263. XReverse axes now work properly.
  264. X
  265. XCommand 'set output ""' used to crash.
  266. X
  267. XVMS was closing stdout, so 'set output' code changed to avoid closing
  268. Xit.  VMS version of gnuplot now performs a SET TERM/NOWRAP itself.
  269. X
  270. XTerminal is now reset before closing output file, changing terminal
  271. Xtype or exiting gnuplot.
  272. X
  273. XSeveral old bugs have been superseded by new ones.
  274. X
  275. X
  276. X                            ACKNOWLEDGEMENTS
  277. X
  278. XThe Unix PC, polar, pause, and offset additions were by John Campbell.
  279. X(CAMPBELL@NAUVAX.bitnet)
  280. XThe Turbo C additions were by Bill Wilson.
  281. X(WILSON@NAUVAX.bitnet)
  282. XSome of the labelling improvements and combining of these additions
  283. Xwere by Russell Lang.
  284. X(rjl@monu1.cc.monash.oz.au)
  285. XThe LaTeX driver, the help system, and some of the labelling
  286. Ximprovements were by David Kotz.
  287. X(David.Kotz@Dartmouth.edu)
  288. XAnd of course, the vast majority of the program is by Colin Kelley
  289. Xand Thomas Williams.
  290. X(info-gnuplot@dartmouth.edu)
  291. X
  292. X=======================================================================
  293. X
  294. X                      GNUPLOT 1.1 RELEASE NOTES
  295. X
  296. XNew terminal drivers: AED 512, BBN BitGraph, HP2623, POSTSCRIPT,
  297. XSelanar, Vectrix 384.  The PC version now supports Hercules and ATT
  298. X6300 monochrome graphics.  Thanks to those who sent these drivers in.
  299. X
  300. XNew commands: 'set dummy' and 'show dummy' to select the dummy
  301. Xvariable name; 'replot' to repeat the last 'plot' command.
  302. X
  303. XThe exclamation point (!) is now accepted as postfix factorial
  304. Xoperator.  The gamma() function is also included, if your C library
  305. Xhas gamma().  See GAMMA below.
  306. X
  307. XLogical AND (&&) and OR (||) now short-circuit the way they do in C.
  308. XThat is, the second && operand is not evaluated if the first is false;
  309. Xthe second || operand is not evaluated if the first is true.  The
  310. Xternary operator (?:) also does not evaluate the unused operand.  This
  311. Xchange allows for the definition of recursive functions, e.g. a
  312. Xsynonym for the ! factorial operator:
  313. X
  314. X        fact(x) = (x<=1) ? 1 : x*fact(x-1)
  315. X
  316. XGNUPLOT now has a much better memory allocation scheme, replacing most
  317. Xfixed-size arrays with malloc()'d linked lists.  There is no longer
  318. Xany artificial maximum on the number of simultaneous plots, number of
  319. Xpoints in those plots, or the number of user-defined functions or
  320. Xvariables.  All these are limited only by the memory available to
  321. Xmalloc().  This is a big improvement for memory-starved machines like
  322. XPDP-11s or PCs.
  323. X
  324. XLines beginning with # (also ! in VMS) are treated as comments.  Only
  325. Xthe $ may now be used for a shell escape in VMS, since ! is a comment.
  326. X
  327. XSeveral old bugs have been superseded by new ones.
  328. END_OF_FILE
  329.   if test 10765 -ne `wc -c <'gnuplot/History'`; then
  330.     echo shar: \"'gnuplot/History'\" unpacked with wrong size!
  331.   fi
  332.   # end of 'gnuplot/History'
  333. fi
  334. if test -f 'gnuplot/demo/world.dat' -a "${1}" != "-c" ; then 
  335.   echo shar: Will not clobber existing file \"'gnuplot/demo/world.dat'\"
  336. else
  337.   echo shar: Extracting \"'gnuplot/demo/world.dat'\" \(16782 characters\)
  338.   sed "s/^X//" >'gnuplot/demo/world.dat' <<'END_OF_FILE'
  339. X#
  340. X# $Id: world.dat 3.38.2.6 1992/11/14 02:25:21 woo Exp $
  341. X#
  342. X#
  343. X-140.37  60.25
  344. X-132.08  57.20
  345. X-131.46  55.98
  346. X-133.84  57.12
  347. X-136.01  59.12
  348. X-137.12  58.28
  349. X-139.98  59.73
  350. X-146.54  60.36
  351. X-149.90  59.50
  352. X-149.18  60.81
  353. X-153.53  59.32
  354. X-156.52  57.11
  355. X-162.34  55.06
  356. X-157.85  58.12
  357. X-162.06  58.36
  358. X-164.58  60.06
  359. X-165.29  62.57
  360. X-161.12  64.49
  361. X-168.23  65.49
  362. X-162.99  65.97
  363. X-161.56  66.55
  364. X-166.64  68.25
  365. X-159.53  70.38
  366. X-154.37  70.96
  367. X-148.09  70.26
  368. X-142.49  69.83
  369. X-141.21  69.56 
  370. X
  371. X-152.62  58.41
  372. X-152.60  58.40 
  373. X
  374. X-153.30  57.80
  375. X-152.40  57.48
  376. X-153.32  57.79 
  377. X
  378. X-166.96  53.96
  379. X-167.01  53.95 
  380. X
  381. X-168.36  53.50
  382. X-168.19  53.36 
  383. X
  384. X-170.73  52.68
  385. X-170.60  52.55 
  386. X
  387. X-174.47  51.94
  388. X-174.47  51.92 
  389. X
  390. X-176.58  51.71
  391. X-176.64  51.73 
  392. X
  393. X-177.55  51.76
  394. X-177.41  51.63 
  395. X
  396. X-178.27  51.75 
  397. X
  398. X177.35  51.80
  399. X177.33  51.76 
  400. X
  401. X172.44  53.00
  402. X172.55  53.03 
  403. X
  404. X-141.21  60.16
  405. X-133.38  58.93
  406. X-130.88  54.83
  407. X-128.86  53.90
  408. X-126.58  52.12
  409. X-127.08  50.80
  410. X-124.42  49.66
  411. X-122.56  48.91 
  412. X
  413. X-92.32  48.24
  414. X-88.13  48.92
  415. X-83.11  46.27
  416. X-81.66  44.76
  417. X-82.09  42.29
  418. X-77.10  44.00
  419. X-69.95  46.92
  420. X-65.92  45.32
  421. X-66.37  44.25
  422. X-61.22  45.43
  423. X-64.94  47.34
  424. X-64.12  48.52
  425. X-70.68  47.02
  426. X-67.24  49.33
  427. X-59.82  50.48
  428. X-56.14  52.46
  429. X-59.07  53.58
  430. X-58.26  54.21
  431. X-60.69  55.33
  432. X-61.97  57.41
  433. X-64.35  59.49
  434. X-67.29  58.15
  435. X-69.89  59.91
  436. X-71.31  61.45
  437. X-78.22  61.97
  438. X-77.28  59.53
  439. X-77.09  55.88
  440. X-79.06  51.68
  441. X-82.23  52.70
  442. X-86.75  55.72
  443. X-92.17  56.86
  444. X-95.61  58.82
  445. X-92.66  62.02
  446. X-90.65  63.24
  447. X-95.96  64.12
  448. X-89.88  63.98
  449. X-89.30  65.22
  450. X-86.86  66.12
  451. X-84.54  66.88
  452. X-82.30  67.76
  453. X-83.10  69.68
  454. X-86.05  67.98
  455. X-88.18  68.20
  456. X-91.00  68.82
  457. X-91.72  69.69
  458. X-93.15  71.09
  459. X-96.58  71.05
  460. X-93.35  69.52
  461. X-94.23  68.25
  462. X-95.96  66.73
  463. X-98.83  68.27
  464. X-102.45  67.69
  465. X-108.34  68.43
  466. X-105.83  68.05
  467. X-108.15  66.60
  468. X-111.15  67.63
  469. X-114.10  68.23
  470. X-120.92  69.44
  471. X-124.32  69.26
  472. X-128.76  70.50
  473. X-131.86  69.19
  474. X-131.15  69.79
  475. X-135.81  69.13
  476. X-140.19  69.37
  477. X-141.20  69.58 
  478. X
  479. X-123.40  48.33
  480. X-128.00  50.84
  481. X-123.50  48.34 
  482. X
  483. X-132.49  52.88
  484. X-132.44  52.91 
  485. X
  486. X-132.64  53.02
  487. X-131.97  53.71
  488. X-132.63  53.02 
  489. X
  490. X-55.36  51.56
  491. X-54.66  49.52
  492. X-53.65  47.48
  493. X-52.98  46.31
  494. X-56.12  46.84
  495. X-58.47  47.57
  496. X-57.61  50.38
  497. X-55.39  51.53 
  498. X
  499. X-61.37  49.01
  500. X-61.80  49.29
  501. X-61.38  49.03 
  502. X
  503. X-63.01  46.71
  504. X-64.42  46.61
  505. X-63.04  46.68 
  506. X
  507. X-60.14  46.48
  508. X-60.14  46.50 
  509. X
  510. X-122.44  48.92
  511. X-124.42  47.18
  512. X-124.52  42.48
  513. X-123.09  38.45
  514. X-121.73  36.62
  515. X-117.60  33.34
  516. X-117.28  32.64 
  517. X
  518. X-97.62  25.82
  519. X-95.62  28.84
  520. X-90.77  29.03
  521. X-87.33  30.22
  522. X-82.69  28.15
  523. X-80.16  26.66
  524. X-80.74  32.31
  525. X-76.89  35.43
  526. X-76.47  38.21
  527. X-75.66  37.67
  528. X-71.31  41.76
  529. X-69.44  44.17
  530. X-67.69  47.03
  531. X-73.18  45.14
  532. X-79.26  43.28
  533. X-82.84  42.59
  534. X-83.49  45.32
  535. X-86.36  43.65
  536. X-87.75  43.42
  537. X-86.01  45.96
  538. X-87.00  46.59
  539. X-91.39  46.79
  540. X-90.05  47.96 
  541. X
  542. X-71.97  41.11
  543. X-71.97  41.15 
  544. X
  545. X-80.79  27.03
  546. X-81.01  26.99 
  547. X
  548. X-113.01  42.09
  549. X-113.10  42.01 
  550. X
  551. X-155.74  20.02
  552. X-155.73  19.98 
  553. X
  554. X-156.51  20.78
  555. X-156.51  20.78 
  556. X
  557. X-157.12  21.21
  558. X-157.08  20.95 
  559. X
  560. X-157.87  21.42 
  561. X
  562. X-159.53  22.07 
  563. X
  564. X-117.44  66.46
  565. X-119.59  65.24
  566. X-123.95  65.03
  567. X-123.69  66.44
  568. X-119.21  66.22
  569. X-117.44  66.44 
  570. X
  571. X-120.71  64.03
  572. X-114.91  62.30
  573. X-109.07  62.72
  574. X-112.62  61.19
  575. X-118.68  61.19
  576. X-117.01  61.17
  577. X-115.97  62.56
  578. X-119.46  64.00
  579. X-120.59  63.94 
  580. X
  581. X-112.31  58.46
  582. X-108.90  59.44
  583. X-104.14  58.90
  584. X-102.56  56.72
  585. X-101.82  58.73
  586. X-104.65  58.91
  587. X-111.00  58.51
  588. X-112.35  58.62 
  589. X
  590. X-98.74  50.09
  591. X-99.75  52.24
  592. X-99.62  51.47
  593. X-98.82  50.39 
  594. X
  595. X-97.02  50.21
  596. X-97.50  54.02
  597. X-98.69  52.93
  598. X-97.19  51.09
  599. X-96.98  50.20 
  600. X
  601. X-95.34  49.04
  602. X-92.32  50.34
  603. X-94.14  49.47
  604. X-95.36  48.82 
  605. X
  606. X-80.39  56.16
  607. X-79.22  55.94
  608. X-80.34  56.08 
  609. X
  610. X-103.56  58.60
  611. X-103.60  58.58 
  612. X
  613. X-101.82  58.03
  614. X-102.33  58.10
  615. X-101.77  58.06 
  616. X
  617. X-101.88  55.79
  618. X-97.92  57.15
  619. X-101.22  55.85
  620. X-101.88  55.74 
  621. X
  622. X-117.29  32.48
  623. X-114.75  27.80
  624. X-112.53  24.80
  625. X-110.55  24.07
  626. X-114.23  29.59
  627. X-112.58  29.99
  628. X-109.57  25.94
  629. X-105.61  21.94
  630. X-102.09  17.87
  631. X-95.75  15.94
  632. X-92.21  14.97 
  633. X
  634. X-88.45  17.42
  635. X-87.01  21.33
  636. X-91.65  18.72
  637. X-96.96  20.37
  638. X-97.65  25.67 
  639. X
  640. X-92.22  14.71
  641. X-86.74  12.06
  642. X-83.03   8.65
  643. X-79.93   8.74
  644. X-77.17   7.94
  645. X-81.99   8.97
  646. X-83.92  12.70
  647. X-86.33  15.80
  648. X-88.40  15.92 
  649. X
  650. X-77.61   6.80
  651. X-78.70   0.97
  652. X-80.75  -4.47
  653. X-76.19 -14.57
  654. X-70.44 -18.75
  655. X-70.68 -26.15
  656. X-71.44 -32.03
  657. X-73.38 -37.27
  658. X-73.06 -42.11
  659. X-73.17 -46.09
  660. X-73.52 -48.05
  661. X-73.67 -51.56
  662. X-71.06 -53.88
  663. X-69.14 -50.77
  664. X-67.51 -46.59
  665. X-63.49 -42.80
  666. X-62.14 -40.16
  667. X-57.12 -36.71
  668. X-53.17 -34.15
  669. X-51.26 -32.02
  670. X-48.16 -25.48
  671. X-40.73 -22.32
  672. X-38.88 -15.24
  673. X-34.60  -7.81
  674. X-41.95  -3.42
  675. X-48.02  -1.84
  676. X-48.44  -1.57
  677. X-50.81   0.00
  678. X-54.47   5.39
  679. X-60.59   8.32
  680. X-64.19   9.88
  681. X-70.78  10.64
  682. X-70.97  11.89
  683. X-76.26   8.76
  684. X-77.61   6.80 
  685. X
  686. X-69.14 -52.79
  687. X-66.16 -55.08
  688. X-70.01 -54.88
  689. X-70.55 -53.85
  690. X-69.31 -52.81 
  691. X
  692. X-59.29 -51.58
  693. X-59.35 -51.54 
  694. X
  695. X-58.65 -51.55
  696. X-58.55 -51.56 
  697. X
  698. X-84.39  21.44
  699. X-73.90  19.73
  700. X-79.27  21.18
  701. X-83.74  21.80
  702. X-84.32  21.42 
  703. X
  704. X-66.96  17.95
  705. X-67.05  17.89 
  706. X
  707. X-77.88  17.22
  708. X-78.06  16.98 
  709. X
  710. X-74.47  18.08
  711. X-69.88  18.99
  712. X-71.10  17.76
  713. X-74.45  17.86 
  714. X
  715. X-85.28  73.74
  716. X-85.79  70.96
  717. X-85.13  71.94
  718. X-84.74  72.96
  719. X-80.61  73.10
  720. X-78.45  72.20
  721. X-75.44  72.55
  722. X-73.89  71.98
  723. X-72.56  71.04
  724. X-71.49  70.57
  725. X-69.78  70.29
  726. X-68.12  69.71
  727. X-65.91  69.19
  728. X-66.92  68.39
  729. X-64.08  67.68
  730. X-62.50  66.68
  731. X-63.07  65.33
  732. X-66.11  66.08
  733. X-67.48  65.41
  734. X-64.05  63.15
  735. X-66.58  63.26
  736. X-69.04  62.33
  737. X-72.22  63.77
  738. X-76.88  64.17
  739. X-73.25  65.54
  740. X-70.09  66.64
  741. X-72.05  67.44
  742. X-76.32  68.36
  743. X-78.34  70.17
  744. X-82.12  69.71
  745. X-87.64  70.12
  746. X-89.68  71.43
  747. X-85.28  73.74 
  748. X
  749. X-80.90  76.10
  750. X-84.21  76.28
  751. X-88.94  76.38
  752. X-85.47  77.40
  753. X-85.43  77.93
  754. X-87.01  78.54
  755. X-83.17  78.94
  756. X-84.87  79.93
  757. X-81.33  79.82
  758. X-76.27  80.92
  759. X-82.88  80.62
  760. X-82.58  81.16
  761. X-86.51  81.05
  762. X-89.36  81.21
  763. X-90.45  81.38
  764. X-89.28  81.86
  765. X-87.21  82.30
  766. X-80.51  82.05
  767. X-80.16  82.55
  768. X-77.83  82.86
  769. X-75.51  83.05
  770. X-71.18  82.90
  771. X-65.10  82.78
  772. X-63.34  81.80
  773. X-68.26  81.26
  774. X-69.46  80.34
  775. X-71.05  79.82
  776. X-74.40  79.46
  777. X-75.42  79.03
  778. X-75.48  78.92
  779. X-76.01  78.20
  780. X-80.66  77.28
  781. X-78.07  76.98
  782. X-80.90  76.13 
  783. X
  784. X-92.86  74.13
  785. X-92.50  72.70
  786. X-94.89  73.16
  787. X-92.96  74.14 
  788. X
  789. X-94.80  76.95
  790. X-89.68  76.04
  791. X-88.52  75.40
  792. X-82.36  75.67
  793. X-79.39  74.65
  794. X-86.15  74.22
  795. X-91.70  74.94
  796. X-95.60  76.91
  797. X-94.87  76.96 
  798. X
  799. X-99.96  73.74
  800. X-97.89  72.90
  801. X-98.28  71.13
  802. X-102.04  72.92
  803. X-101.34  73.14
  804. X-99.69  73.59 
  805. X
  806. X-107.58  73.25
  807. X-104.59  71.02
  808. X-101.71  69.56
  809. X-104.07  68.62
  810. X-106.61  69.12
  811. X-114.09  69.05
  812. X-113.89  70.12
  813. X-115.88  70.32
  814. X-116.10  71.32
  815. X-117.45  72.48
  816. X-113.53  72.44
  817. X-109.84  72.24
  818. X-106.62  71.71
  819. X-107.43  73.04 
  820. X
  821. X-120.96  74.29
  822. X-118.37  72.53
  823. X-123.06  71.18
  824. X-123.40  73.77
  825. X-120.93  74.27 
  826. X
  827. X-108.83  76.74
  828. X-106.25  75.54
  829. X-107.08  74.78
  830. X-112.99  74.16
  831. X-112.28  74.99
  832. X-116.04  75.33
  833. X-115.27  76.20
  834. X-110.95  75.56
  835. X-109.77  76.31
  836. X-108.82  76.70 
  837. X
  838. X-115.70  77.46
  839. X-118.10  76.30
  840. X-121.13  76.37
  841. X-116.04  77.28 
  842. X
  843. X-110.01  77.86
  844. X-112.36  77.68
  845. X-109.96  77.86 
  846. X
  847. X-109.60  78.48
  848. X-112.20  78.01
  849. X-109.60  78.48 
  850. X
  851. X-97.87  76.61
  852. X-99.21  75.31
  853. X-100.86  75.60
  854. X-99.40  76.26
  855. X-97.79  76.60 
  856. X
  857. X-94.72  75.53
  858. X-94.66  75.52 
  859. X
  860. X-104.10  79.01
  861. X-99.19  77.54
  862. X-103.22  78.08
  863. X-104.30  78.95 
  864. X
  865. X-93.74  77.52
  866. X-93.74  77.52 
  867. X
  868. X-96.88  78.50
  869. X-96.91  77.77
  870. X-96.94  78.48 
  871. X
  872. X-84.69  65.84
  873. X-81.58  63.87
  874. X-85.00  62.96
  875. X-84.63  65.71 
  876. X
  877. X-81.84  62.75
  878. X-82.01  62.63 
  879. X
  880. X-79.88  62.12
  881. X-79.88  62.12 
  882. X
  883. X-43.53  59.89
  884. X-45.29  60.67
  885. X-47.91  60.83
  886. X-49.90  62.41
  887. X-50.71  64.42
  888. X-51.39  64.94
  889. X-52.96  66.09
  890. X-53.62  67.19
  891. X-53.51  67.51
  892. X-51.84  68.65
  893. X-52.19  70.00
  894. X-51.85  71.03
  895. X-55.41  71.41
  896. X-54.63  72.97
  897. X-56.98  74.70
  898. X-61.95  76.09
  899. X-66.38  75.83
  900. X-71.13  77.00
  901. X-66.81  77.60
  902. X-70.78  77.78
  903. X-64.96  79.70
  904. X-63.38  81.16
  905. X-56.89  82.17
  906. X-48.18  82.15
  907. X-42.08  82.74
  908. X-38.02  83.54
  909. X-23.96  82.94
  910. X-25.97  81.97
  911. X-25.99  80.64
  912. X-13.57  80.97
  913. X-16.60  80.16
  914. X-19.82  78.82
  915. X-18.80  77.54
  916. X-21.98  76.46
  917. X-20.69  75.12
  918. X-21.78  74.40
  919. X-24.10  73.69
  920. X-26.54  73.08
  921. X-24.63  72.69
  922. X-21.84  71.69
  923. X-24.62  71.24
  924. X-27.16  70.89
  925. X-27.21  70.00
  926. X-24.10  69.35
  927. X-28.35  68.43
  928. X-32.48  68.56
  929. X-35.26  66.26
  930. X-37.90  65.90
  931. X-40.04  65.00
  932. X-40.49  64.04
  933. X-42.01  63.14
  934. X-42.88  61.15
  935. X-43.09  60.07
  936. X-43.56  59.90 
  937. X
  938. X-16.26  66.41
  939. X-15.32  64.29
  940. X-20.14  63.47
  941. X-21.76  64.21
  942. X-21.33  64.97
  943. X-23.04  65.62
  944. X-21.76  66.26
  945. X-18.77  66.12
  946. X-16.23  66.35 
  947. X
  948. X  0.56  51.47
  949. X -1.71  54.94
  950. X -3.41  57.52
  951. X -5.42  58.14
  952. X -5.77  55.59
  953. X -3.48  54.82
  954. X -4.68  52.88
  955. X -2.68  51.58
  956. X -3.80  50.08
  957. X  1.26  51.14
  958. X  0.65  51.41 
  959. X
  960. X -7.17  54.91
  961. X -9.97  53.47
  962. X -8.52  51.76
  963. X -5.69  54.79
  964. X -7.34  55.25 
  965. X
  966. X -1.33  60.66
  967. X -1.17  60.38 
  968. X
  969. X -6.18  58.44
  970. X -6.09  58.36 
  971. X
  972. X -6.47  57.58
  973. X -6.33  57.54 
  974. X
  975. X -7.30  57.54 
  976. X
  977. X -7.46  57.05 
  978. X
  979. X -6.54  56.94 
  980. X
  981. X -6.00  55.94 
  982. X
  983. X -5.09  55.55 
  984. X
  985. X -4.44  54.38
  986. X -4.30  54.19 
  987. X
  988. X -8.08  71.02
  989. X -8.21  70.86 
  990. X
  991. X 16.92  79.52
  992. X 22.26  78.46
  993. X 16.86  76.41
  994. X 16.00  77.39
  995. X 16.03  77.92
  996. X 16.81  79.50 
  997. X
  998. X 14.71  79.40
  999. X 16.05  79.12
  1000. X 14.02  77.80
  1001. X 13.56  78.46
  1002. X 12.63  79.26
  1003. X 14.68  79.40 
  1004. X
  1005. X 22.01  78.24
  1006. X 21.86  78.23 
  1007. X
  1008. X 21.54  77.75
  1009. X 23.88  77.26
  1010. X 21.53  77.67
  1011. X 22.79  77.79 
  1012. X
  1013. X 23.50  79.97
  1014. X 28.24  79.54
  1015. X 20.85  78.94
  1016. X 19.00  79.34
  1017. X 21.05  79.88
  1018. X 23.41  79.96 
  1019. X
  1020. X 46.98  80.23
  1021. X 43.13  79.97
  1022. X 47.18  80.22
  1023. X
  1024. X 50.43  80.19
  1025. X 50.55  79.88
  1026. X 47.77  79.86
  1027. X 50.45  80.14
  1028. X
  1029. X 61.79  80.18
  1030. X 61.79  80.18
  1031. X
  1032. X 65.08  80.69
  1033. X 64.27  80.59
  1034. X 65.13  80.68
  1035. X
  1036. X -5.13  35.66
  1037. X  4.06  36.63
  1038. X 10.40  37.12
  1039. X 11.36  33.61
  1040. X 20.10  30.10
  1041. X 23.49  32.17
  1042. X 31.65  30.80
  1043. X 35.76  23.74
  1044. X 39.75  14.82
  1045. X 42.93  11.34
  1046. X 51.52  11.45
  1047. X 49.82   6.99
  1048. X 43.13  -0.62
  1049. X 39.15  -7.58
  1050. X 40.37 -13.20
  1051. X 37.74 -18.17
  1052. X 35.33 -22.71
  1053. X 32.84 -28.15
  1054. X 26.50 -34.39
  1055. X 19.55 -35.51
  1056. X 17.50 -30.88
  1057. X 12.24 -18.75
  1058. X 13.89 -12.81
  1059. X 12.05  -5.55
  1060. X  9.67   0.14
  1061. X  7.19   3.79
  1062. X  1.74   5.39
  1063. X -4.77   4.59
  1064. X-12.00   6.75
  1065. X-15.54  10.98
  1066. X-16.33  15.50
  1067. X-16.10  22.29
  1068. X-12.90  27.12
  1069. X -9.52  31.09
  1070. X -5.41  35.58
  1071. X
  1072. X 33.71   0.00
  1073. X 33.48  -3.42
  1074. X 33.34  -0.20
  1075. X 33.71   0.00
  1076. X
  1077. X 49.30 -12.50
  1078. X 49.28 -18.79
  1079. X 43.95 -25.50
  1080. X 44.37 -20.08
  1081. X 46.34 -16.31
  1082. X 47.91 -14.08
  1083. X 49.30 -12.50
  1084. X
  1085. X 32.18  30.58
  1086. X 36.08  35.03
  1087. X 32.53  36.17
  1088. X 27.77  36.94
  1089. X 26.51  39.18
  1090. X 31.54  40.82
  1091. X 38.53  40.48
  1092. X 40.35  43.17
  1093. X 39.88  46.45
  1094. X 35.18  44.99
  1095. X 33.50  44.96
  1096. X 30.24  45.14
  1097. X 28.70  41.48
  1098. X 26.55  39.84
  1099. X 23.62  39.67
  1100. X 23.80  37.34
  1101. X 21.90  36.92
  1102. X 18.79  42.02
  1103. X 14.52  44.31
  1104. X 14.58  42.25
  1105. X 18.32  39.57
  1106. X 16.05  39.35
  1107. X 11.52  42.36
  1108. X  6.87  43.08
  1109. X  2.80  41.09
  1110. X -1.11  37.14
  1111. X -6.24  36.70
  1112. X -8.67  39.57
  1113. X -6.51  43.13
  1114. X -0.84  45.55
  1115. X -3.93  48.40
  1116. X  0.48  49.09
  1117. X  4.20  51.29
  1118. X  6.44  52.92
  1119. X  8.42  55.94
  1120. X 11.72  55.49
  1121. X 11.73  53.66
  1122. X 16.78  54.14
  1123. X 21.40  56.32
  1124. X 24.67  57.20
  1125. X 28.94  59.18
  1126. X 24.16  59.52
  1127. X 22.07  62.66
  1128. X 23.76  65.35
  1129. X 18.70  62.54
  1130. X 19.11  59.67
  1131. X 18.40  58.54
  1132. X 15.34  55.73
  1133. X 11.74  58.08
  1134. X  8.37  57.68
  1135. X  5.80  59.20
  1136. X  7.38  60.86
  1137. X  7.51  61.86
  1138. X  9.62  62.99
  1139. X 13.37  65.46
  1140. X 15.46  67.12
  1141. X 18.54  68.62
  1142. X 22.32  69.64
  1143. X 24.77  70.17
  1144. X 25.93  69.79
  1145. X 28.56  70.46
  1146. X 29.75  69.76
  1147. X 33.83  69.11
  1148. X 41.90  66.85
  1149. X 35.14  66.25
  1150. X 33.30  66.07
  1151. X 35.46  64.15
  1152. X 37.68  64.03
  1153. X 41.71  64.09
  1154. X 44.80  65.58
  1155. X 44.87  68.16
  1156. X 45.92  66.83
  1157. X 51.79  67.85
  1158. X 53.70  67.89
  1159. X 59.68  68.09
  1160. X 65.07  69.08
  1161. X 68.56  69.19
  1162. X 68.38  70.97
  1163. X 73.03  71.62
  1164. X 73.80  68.29
  1165. X 69.42  66.45
  1166. X 73.43  66.36
  1167. X 77.51  68.36
  1168. X 80.74  66.74
  1169. X 75.27  68.67
  1170. X 75.11  71.80
  1171. X 78.62  70.56
  1172. X 78.43  71.90
  1173. X 82.72  71.23
  1174. X 84.25  70.03
  1175. X 81.40  72.76
  1176. X 86.50  74.01
  1177. X 87.68  74.78
  1178. X 90.25  75.23
  1179. X
  1180. X 68.33  76.71
  1181. X 66.03  75.62
  1182. X 59.10  74.11
  1183. X 54.92  73.03
  1184. X 56.67  74.10
  1185. X 58.56  75.09
  1186. X 63.86  75.87
  1187. X 68.19  76.70
  1188. X
  1189. X 53.04  72.57
  1190. X 58.29  70.39
  1191. X 55.03  70.78
  1192. X 53.44  72.26
  1193. X 53.63  72.61
  1194. X
  1195. X 90.06  21.03
  1196. X 82.06  15.95
  1197. X 80.05  11.72
  1198. X 76.41   8.60
  1199. X 72.79  17.43
  1200. X 72.02  20.00
  1201. X 68.98  21.99
  1202. X 64.62  24.41
  1203. X 57.83  24.77
  1204. X 53.11  26.20
  1205. X 49.67  29.41
  1206. X 50.96  25.15
  1207. X 54.33  23.44
  1208. X 59.03  22.57
  1209. X 57.87  18.86
  1210. X 52.95  15.74
  1211. X 47.26  12.96
  1212. X 42.75  14.68
  1213. X 39.93  19.61
  1214. X 36.92  25.78
  1215. X 33.30  28.46
  1216. X 32.60  30.63
  1217. X
  1218. X 52.22  46.50
  1219. X 51.73  44.73
  1220. X 52.56  41.80
  1221. X 53.43  40.40
  1222. X 54.22  37.86
  1223. X 49.04  38.45
  1224. X 48.17  42.76
  1225. X 49.33  45.64
  1226. X 52.22  46.50
  1227. X
  1228. X 62.32  46.32
  1229. X 60.32  43.06
  1230. X 59.57  45.58
  1231. X 61.94  46.33
  1232. X
  1233. X 79.55  46.12
  1234. X 74.30  44.44
  1235. X 78.62  45.79
  1236. X 79.66  46.07
  1237. X
  1238. X 76.81  41.96
  1239. X 76.73  41.86
  1240. X
  1241. X 35.15  35.15
  1242. X 34.61  34.84
  1243. X 35.18  35.17
  1244. X
  1245. X 23.84  35.33
  1246. X 24.30  34.91
  1247. X 24.09  35.39
  1248. X
  1249. X 15.54  37.89
  1250. X 13.47  37.89
  1251. X 15.54  37.89
  1252. X
  1253. X  9.56  40.95
  1254. X  8.46  39.99
  1255. X  9.12  40.69
  1256. X
  1257. X  9.72  42.60
  1258. X  9.54  42.35
  1259. X
  1260. X 80.60   8.95
  1261. X 79.73   5.96
  1262. X 80.10   8.30
  1263. X
  1264. X 11.04  57.44
  1265. X 10.67  57.25
  1266. X
  1267. X-77.92  24.67
  1268. X-77.98  24.22
  1269. X
  1270. X-77.61  23.62
  1271. X-77.18  23.64
  1272. X
  1273. X-75.55  24.13
  1274. X-75.41  24.31
  1275. X
  1276. X-91.40  -0.17
  1277. X-91.52  -0.26
  1278. X
  1279. X-60.25  46.68
  1280. X-60.71  46.33
  1281. X
  1282. X-63.89  49.47
  1283. X-63.45  49.43
  1284. X
  1285. X142.53 -10.60
  1286. X145.62 -16.34
  1287. X149.79 -22.09
  1288. X153.21 -26.82
  1289. X150.52 -35.19
  1290. X145.60 -38.53
  1291. X140.13 -37.69
  1292. X137.34 -34.77
  1293. X135.76 -34.56
  1294. X131.50 -31.34
  1295. X121.72 -33.65
  1296. X115.62 -33.25
  1297. X114.09 -26.01
  1298. X114.88 -21.27
  1299. X122.34 -18.13
  1300. X125.32 -14.53
  1301. X128.39 -14.90
  1302. X132.35 -11.42
  1303. X136.16 -12.43
  1304. X138.07 -16.45
  1305. X142.25 -10.78
  1306. X
  1307. X144.72 -40.68
  1308. X148.32 -42.14
  1309. X145.57 -42.77
  1310. X146.47 -41.19
  1311. X
  1312. X172.86 -34.23
  1313. X176.10 -37.52
  1314. X177.06 -39.49
  1315. X174.77 -38.03
  1316. X172.83 -34.27
  1317. X
  1318. X172.36 -40.53
  1319. X172.92 -43.81
  1320. X168.41 -46.13
  1321. X170.26 -43.21
  1322. X173.69 -40.94
  1323. X
  1324. X150.74 -10.18
  1325. X143.04  -8.26
  1326. X138.48  -6.97
  1327. X131.95  -2.94
  1328. X130.91  -1.35
  1329. X134.38  -2.64
  1330. X141.24  -2.62
  1331. X148.19  -8.15
  1332. X150.75 -10.27
  1333. X
  1334. X117.24   7.01
  1335. X117.90   0.76
  1336. X113.89  -3.50
  1337. X109.44  -0.82
  1338. X113.13   3.38
  1339. X117.24   7.01
  1340. X
  1341. X 95.31   5.75
  1342. X102.32   1.40
  1343. X106.03  -2.98
  1344. X101.46  -2.81
  1345. X 95.20   5.73
  1346. X
  1347. X140.91  41.53
  1348. X140.79  35.75
  1349. X136.82  34.56
  1350. X133.56  34.72
  1351. X132.49  35.41
  1352. X136.73  37.20
  1353. X139.82  40.00
  1354. X140.68  41.43
  1355. X
  1356. X133.71  34.30
  1357. X131.41  31.58
  1358. X129.38  33.10
  1359. X133.90  34.37
  1360. X
  1361. X141.89  45.50
  1362. X144.12  42.92
  1363. X140.30  41.64
  1364. X141.53  45.30
  1365. X141.89  45.53
  1366. X
  1367. X142.57  54.36
  1368. X143.64  49.19
  1369. X141.99  45.88
  1370. X141.92  50.85
  1371. X142.60  54.34
  1372. X
  1373. X121.92  25.48
  1374. X120.53  24.70
  1375. X121.70  25.51
  1376. X
  1377. X110.81  20.07
  1378. X109.20  19.66
  1379. X110.81  20.07
  1380. X
  1381. X106.51  -6.16
  1382. X114.15  -7.72
  1383. X108.71  -7.89
  1384. X106.51  -6.16
  1385. X
  1386. X164.27 -20.01
  1387. X164.16 -20.27
  1388. X
  1389. X178.61 -17.04
  1390. X178.61 -17.04
  1391. X
  1392. X179.45 -16.43
  1393. X179.35 -16.43
  1394. X
  1395. X-172.55 -13.39
  1396. X-172.61 -13.78
  1397. X
  1398. X122.26  18.67
  1399. X123.05  13.86
  1400. X120.73  13.80
  1401. X120.43  16.43
  1402. X121.72  18.40
  1403. X
  1404. X125.34   9.79
  1405. X125.56   6.28
  1406. X122.38   7.00
  1407. X125.10   9.38
  1408. X
  1409. X119.64  11.35
  1410. X118.81  10.16
  1411. X119.59  10.86
  1412. X
  1413. X 90.05  21.74
  1414. X 94.21  17.79
  1415. X 97.66  15.36
  1416. X 98.21   9.17
  1417. X103.22   1.56
  1418. X100.26   8.30
  1419. X100.01  13.52
  1420. X104.39  10.37
  1421. X107.32  10.45
  1422. X107.55  16.34
  1423. X108.53  21.73
  1424. X112.69  21.81
  1425. X118.83  24.93
  1426. X121.28  30.25
  1427. X120.73  32.65
  1428. X121.77  36.90
  1429. X117.58  38.21
  1430. X121.62  40.15
  1431. X125.12  39.08
  1432. X126.15  35.18
  1433. X128.33  38.46
  1434. X129.92  42.04
  1435. X138.77  47.30
  1436. X140.72  52.43
  1437. X137.10  54.07
  1438. X140.77  58.39
  1439. X148.57  59.46
  1440. X153.83  59.10
  1441. X156.81  61.68
  1442. X159.90  60.73
  1443. X163.79  61.73
  1444. X156.40  57.76
  1445. X156.42  51.09
  1446. X161.82  54.88
  1447. X162.92  57.34
  1448. X164.48  59.89
  1449. X170.42  60.17
  1450. X177.46  62.62
  1451. X178.20  64.29
  1452. X179.48  64.88
  1453. X
  1454. X-179.87  65.14
  1455. X-177.13  65.63
  1456. X-173.46  64.74
  1457. X-171.13  66.38
  1458. X-176.48  67.78
  1459. X-178.80  68.42
  1460. X
  1461. X178.88  69.10
  1462. X170.20  69.99
  1463. X167.68  69.63
  1464. X159.92  70.14
  1465. X150.77  71.28
  1466. X146.92  72.21
  1467. X146.04  72.39
  1468. X139.60  72.23
  1469. X135.49  71.51
  1470. X130.53  70.86
  1471. X126.10  72.24
  1472. X128.94  73.02
  1473. X123.10  73.28
  1474. X113.34  73.37
  1475. X110.43  73.71
  1476. X107.88  73.72
  1477. X112.99  75.60
  1478. X106.34  76.40
  1479. X104.10  77.52
  1480. X 99.69  76.09
  1481. X 95.12  75.95
  1482. X 89.68  75.57
  1483. X
  1484. X101.96  79.08
  1485. X101.31  77.86
  1486. X101.22  79.04
  1487. X
  1488. X 94.29  79.29
  1489. X100.02  79.43
  1490. X 95.31  78.68
  1491. X 95.44  79.65
  1492. X 97.26  79.62
  1493. X
  1494. X 95.46  80.62
  1495. X 92.39  79.66
  1496. X 95.07  80.54
  1497. X
  1498. X 91.39  79.62
  1499. X 91.33  79.62
  1500. X
  1501. X138.54  76.05
  1502. X144.93  75.45
  1503. X140.30  74.99
  1504. X137.27  75.44
  1505. X138.29  75.98
  1506. X
  1507. X146.08  75.29
  1508. X147.75  74.73
  1509. X145.85  75.06
  1510. X
  1511. X141.44  73.88
  1512. X141.48  73.84
  1513. X
  1514. X  0.01 -71.68
  1515. X  6.57 -70.57
  1516. X 15.04 -70.44
  1517. X 25.10 -70.75
  1518. X 33.37 -69.10
  1519. X 38.46 -69.77
  1520. X 42.85 -68.16
  1521. X 46.59 -67.23
  1522. X 49.35 -66.96
  1523. X 52.90 -65.97
  1524. X 58.46 -67.20
  1525. X 63.60 -67.58
  1526. X 70.63 -68.41
  1527. X 69.24 -70.36
  1528. X 76.20 -69.44
  1529. X 88.08 -66.64
  1530. X 94.98 -66.52
  1531. X101.53 -66.09
  1532. X111.31 -65.91
  1533. X118.64 -66.87
  1534. X126.24 -66.24
  1535. X133.09 -66.18
  1536. X139.85 -66.72
  1537. X146.86 -67.96
  1538. X153.65 -68.82
  1539. X159.94 -69.57
  1540. X164.10 -70.67
  1541. X170.19 -71.94
  1542. X165.68 -74.64
  1543. X163.82 -77.60
  1544. X162.10 -78.95
  1545. X166.72 -82.84
  1546. X175.58 -83.86
  1547. X
  1548. X-178.56 -84.37
  1549. X-147.96 -85.40
  1550. X-152.96 -81.12
  1551. X-153.95 -79.50
  1552. X-151.24 -77.48
  1553. X-146.74 -76.44
  1554. X-137.68 -75.16
  1555. X-131.63 -74.63
  1556. X-123.05 -74.41
  1557. X-114.76 -73.97
  1558. X-111.91 -75.41
  1559. X-105.05 -74.77
  1560. X-100.90 -74.21
  1561. X-101.04 -73.18
  1562. X-100.28 -73.06
  1563. X-93.06 -73.33
  1564. X-85.40 -73.18
  1565. X-79.82 -73.04
  1566. X-78.21 -72.52
  1567. X-71.90 -73.41
  1568. X-67.51 -71.10
  1569. X-67.57 -68.92
  1570. X-66.65 -66.83
  1571. X-64.30 -65.28
  1572. X-59.14 -63.74
  1573. X-59.58 -64.37
  1574. X-62.50 -65.94
  1575. X-62.48 -66.66
  1576. X-65.64 -68.02
  1577. X-63.85 -69.07
  1578. X-61.69 -70.87
  1579. X-60.89 -72.71
  1580. X-61.07 -74.30
  1581. X-63.33 -75.88
  1582. X-76.05 -77.06
  1583. X-83.04 -77.12
  1584. X-74.30 -80.83
  1585. X-56.40 -82.14
  1586. X-42.46 -81.65
  1587. X-31.60 -80.17
  1588. X-34.01 -79.20
  1589. X-32.48 -77.28
  1590. X-26.28 -76.18
  1591. X-17.18 -73.45
  1592. X-11.20 -72.01
  1593. X -8.67 -71.98
  1594. X -5.45 -71.45
  1595. X -0.82 -71.74
  1596. X  0.07 -71.68
  1597. X
  1598. X164.65 -77.89
  1599. X170.95 -77.37
  1600. X179.67 -78.25
  1601. X
  1602. X-178.74 -78.24
  1603. X-165.76 -78.47
  1604. X-158.42 -77.73
  1605. X
  1606. X-58.98 -64.63
  1607. X-60.99 -68.62
  1608. X-61.02 -71.70
  1609. X
  1610. X-62.01 -74.94
  1611. X-52.00 -77.07
  1612. X-42.23 -77.80
  1613. X-36.22 -78.03
  1614. X
  1615. X-35.03 -77.81
  1616. X-26.13 -75.54
  1617. X-19.35 -73.04
  1618. X-12.16 -71.86
  1619. X -6.15 -70.65
  1620. X -0.57 -69.14
  1621. X  4.93 -70.25
  1622. X 10.91 -69.99
  1623. X 16.52 -69.87
  1624. X 25.41 -70.22
  1625. X 32.13 -69.29
  1626. X 33.62 -69.58
  1627. X
  1628. X 70.56 -68.53
  1629. X 73.91 -69.51
  1630. X
  1631. X 81.42 -67.87
  1632. X 84.67 -66.41
  1633. X 89.07 -66.73
  1634. X
  1635. X-135.79 -74.67
  1636. X-124.34 -73.22
  1637. X-116.65 -74.08
  1638. X-109.93 -74.64
  1639. X-105.36 -74.56
  1640. X-105.83 -74.77
  1641. X
  1642. X-69.30 -70.06
  1643. X-71.33 -72.68
  1644. X-71.42 -71.85
  1645. X-75.10 -71.46
  1646. X-71.79 -70.55
  1647. X-70.34 -69.26
  1648. X-69.34 -70.13
  1649. X
  1650. X-49.20 -77.83
  1651. X-44.59 -78.79
  1652. X-44.14 -80.13
  1653. X-59.04 -79.95
  1654. X-49.28 -77.84
  1655. X-48.24 -77.81
  1656. X
  1657. X-58.13 -80.12
  1658. X-63.25 -80.20
  1659. X-58.32 -80.12
  1660. X
  1661. X-163.64 -78.74
  1662. X-161.20 -79.93
  1663. X-163.62 -78.74
  1664. X
  1665. X 66.82  66.82
  1666. X 66.82  66.82
  1667. X
  1668. END_OF_FILE
  1669.   if test 16782 -ne `wc -c <'gnuplot/demo/world.dat'`; then
  1670.     echo shar: \"'gnuplot/demo/world.dat'\" unpacked with wrong size!
  1671.   fi
  1672.   # end of 'gnuplot/demo/world.dat'
  1673. fi
  1674. if test -f 'gnuplot/docs/latextut/tutorial.tex' -a "${1}" != "-c" ; then 
  1675.   echo shar: Will not clobber existing file \"'gnuplot/docs/latextut/tutorial.tex'\"
  1676. else
  1677.   echo shar: Extracting \"'gnuplot/docs/latextut/tutorial.tex'\" \(16602 characters\)
  1678.   sed "s/^X//" >'gnuplot/docs/latextut/tutorial.tex' <<'END_OF_FILE'
  1679. X%
  1680. X% Tutorial for GNUPLOT plotting program, for LaTeX users
  1681. X% David Kotz (David.Kotz@Dartmouth.edu)
  1682. X% Duke University Computer Science Department
  1683. X%
  1684. X% NOTE: If LaTeX runs out of memory processing plots,
  1685. X% add ``with lines 4'' to each curve in eg*.plt and rerun make.
  1686. X%
  1687. X
  1688. X% some header info
  1689. X\input{header}
  1690. X
  1691. X\begin{document}
  1692. X
  1693. X\title{\LaTeX\ and the GNUPLOT Plotting
  1694. XProgram\thanks{This document describes GNUPLOT version 3.0. All plots
  1695. Xin this document were made with that version of GNUPLOT.} }
  1696. X\author{David Kotz \\ \verb+David.Kotz@Dartmouth.edu+}
  1697. X\date{July 3, 1991}
  1698. X
  1699. X\maketitle
  1700. X
  1701. X\pagestyle{myheadings}
  1702. X\markright{GNUPLOT \LaTeX\ Tutorial Version 3.0}
  1703. X
  1704. X\currentspace % defined in header.tex
  1705. X
  1706. X\section{Introduction and History}
  1707. X
  1708. XGNUPLOT was originally developed by Colin Kelley and Thomas Williams
  1709. Xin 1986 to plot functions and data files on a variety of terminals.
  1710. XIn 1988 and 1989 I created an alternate version, known as Gnu\TeX,
  1711. Xthat supported a new ``terminal type'' called {\tt latex}, so gnuplot
  1712. Xwould output \LaTeX\ code. The plot could then be included in a
  1713. X\LaTeX\ document. I added a number of embellishments, supported only
  1714. Xby the {\tt latex} terminal, allowing the user to produce
  1715. Xpublication-quality plots.
  1716. X
  1717. XIn late 1989 and early 1990 Gnu\TeX\ and a number of other GNUPLOT
  1718. Xvariants were merged together into a new release of GNUPLOT, 2.0. This
  1719. Xincludes, among many other improvements, a \LaTeX\ driver derived from
  1720. Xthe one in Gnu\TeX. Former Gnu\TeX\ users are referred to
  1721. XSection~\ref{oldusers} for information about adapting to GNUPLOT.
  1722. XAnyone interested in using GNUPLOT with \LaTeX\ should read the next
  1723. Xsection, a tutorial, and the primary GNUPLOT manual.
  1724. X
  1725. XThe reader should note that the \LaTeX\ picture environments output by
  1726. XGNUPLOT can be quite large and complicated, and can easily exceed the
  1727. Xmemory capacity of \TeX. If an enlarged version of \TeX\ is available,
  1728. Xit is wise to use it. Otherwise, keep your plots simple and add
  1729. X\verb+\clearpage+ to your document where necessary.
  1730. X
  1731. XThere is also a new EEPIC driver ({\tt eepic}), intended for use with
  1732. Xthe EEPIC macro package for \LaTeX. EEPIC allows for much more
  1733. Xefficient line-drawing, runs through \LaTeX\ faster, and uses less
  1734. Xmemory.  See Section~\ref{s:eepic} for more information.
  1735. X
  1736. XThere is a small package of auxiliary files (makefiles and scripts)
  1737. Xthat I find useful for making \LaTeX\ plots with GNUPLOT. This is
  1738. Xavailable for \verb+ftp+ as \verb+pub/gnuplot-latex.shar+ from
  1739. X\verb+cs.duke.edu+. I can mail copies (see the end of this paper for
  1740. Xinformation).
  1741. X
  1742. X\section{Using GNUPLOT for \LaTeX: a Tutorial}
  1743. X
  1744. XGNUPLOT is by nature an interactive program. Users making plots for
  1745. X\LaTeX\ will generally not use GNUPLOT interactively.  Whenever hard
  1746. Xcopy is desired from GNUPLOT, the program need not be run on a
  1747. Xgraphics terminal. In this case the output is directed to a file or
  1748. Xpipe, then sent to the appropriate output device. For example, output
  1749. Xfrom the terminal type {\tt unixplot} may be sent to a program
  1750. Xinterpreting the Unix plotting standard. The terminal types {\tt
  1751. Ximagen} and {\tt postscript} may be used for output to printers
  1752. Xunderstanding those languages. (A shell script ({\tt lasergnu}) is
  1753. Xsupplied with the distribution that will accept a GNUPLOT command or
  1754. Xinput file and send the output to an Imagen or Postscript laser
  1755. Xprinter. This script may have been adapted to your site.) The terminal
  1756. Xtype {\tt fig} outputs FIG code that can be read by the Fig graphics
  1757. Xprogram and translated into forms usable in both \TeX\ and
  1758. X\LaTeX\ documents.
  1759. X
  1760. XWe now ignore the interactive nature of GNUPLOT and provide the input
  1761. Xto GNUPLOT from a file, \ie,
  1762. X\begin{verbatim}
  1763. X      gnuplot gnu.input
  1764. X\end{verbatim}
  1765. XIn this example, all of the commands to GNUPLOT are contained in the
  1766. Xfile {\tt gnu.input}. Multiple filenames may be supplied to GNUPLOT
  1767. Xthis way, read in the order they are given.  The output (one or more
  1768. Xplots) may be piped to another program or redirected to a file.
  1769. XUsually, however, we direct the output explicitly with an instruction
  1770. Xto GNUPLOT (the {\tt set output} command). GNUPLOT continues to print
  1771. Xerror messages to the terminal (stderr).
  1772. X
  1773. X\paragraph{Example 1:} Here is a first example, producing a plot for
  1774. Xthis document. The GNUPLOT input file is given below, and the output
  1775. Xappears as Figure~\ref{eg1}. The input file defines the output to be
  1776. Xin \LaTeX, gives a file name for the output, and plots $y=sin(x)$ for
  1777. X$x$ on $[-\pi,\pi]$. To produce the figure, I simply
  1778. X\verb+\input{eg1}+ in a {\tt center} environment in a {\tt figure}
  1779. Xenvironment. In following examples, I will enclose the figure in a box
  1780. Xto make it look a little better.
  1781. X
  1782. X\singlespace
  1783. X\begin{verbatim}
  1784. X    set terminal latex
  1785. X    set output "eg1.tex"
  1786. X    plot [-3.14:3.14] sin(x)
  1787. X\end{verbatim}
  1788. X\currentspace
  1789. X
  1790. X\begin{figure}[htbp]
  1791. X  \begin{center}
  1792. X    \input{eg1}
  1793. X  \end{center}
  1794. X  \caption{A first example: $y=sin(x)$}
  1795. X  \label{eg1}
  1796. X\end{figure}
  1797. X
  1798. XNote that GNUPLOT has drawn in the axes, labeled the tic marks for us,
  1799. Xscaled the $y$ axis automatically, and added a key in the
  1800. Xupper-right-hand corner (this may be moved with the {\tt set key}
  1801. Xcommand, and removed with {\tt set nokey}).
  1802. X
  1803. XThis is the default line style for the \LaTeX\ driver.  Because of the
  1804. Xlimited picture capabilities of \LaTeX, many dots are required to
  1805. Xapproximate drawing a solid line. This may overload the memory of many
  1806. X\TeX\ implementations. There are other line types available that draw
  1807. Xdotted lines and use much less memory. The EEPIC driver draws solid
  1808. Xlines with much less memory usage.
  1809. X
  1810. X\paragraph{Example 2:} Now we will embellish the plot a little with
  1811. Xsome labels.  This input file produces Figure~\ref{eg2}.
  1812. X
  1813. X\singlespace
  1814. X\begin{verbatim}
  1815. X    set terminal latex
  1816. X    set output "eg2.tex"
  1817. X    set size 5/5., 4/3.
  1818. X    set format xy "$%g$"
  1819. X    set title "This is a plot of $y=sin(x)$"
  1820. X    set xlabel "This is the $x$ axis"
  1821. X    set ylabel "This is\\the\\$y$ axis"
  1822. X    plot [0:6.28] [0:1] sin(x)
  1823. X\end{verbatim}
  1824. X\currentspace
  1825. X
  1826. X\boxfigure{htbp}{\fullboxwidth}{
  1827. X  \begin{center}
  1828. X    \input{eg2}
  1829. X  \end{center}
  1830. X  \caption{A more fancy example.}
  1831. X  \label{eg2}
  1832. X}
  1833. X
  1834. XWe have specified the plot to be 5 inches wide and 4 inches tall with
  1835. Xthe {\tt set size} command. This is the size of the area used by the
  1836. Xplot, {\em including} space for the labels.  In the first example,
  1837. Xthis size was the default 5 inches by 3 inches. By specifying the
  1838. Xscaling factors of 1 (or 5/5) and 1.3333 (or 4/3), we obtain the
  1839. Xdesired plot size.
  1840. X
  1841. XWe have requested that the format used by the $x$- and $y$-axis tic
  1842. Xmark labels be in \LaTeX\ math mode. This makes the labels look a
  1843. Xlittle better. The default is \verb+set format xy "%g"+. The \verb+%g+
  1844. Xrepresents the general-purpose floating point formatting specification
  1845. Xfor the {\tt printf} function in C. Any valid floating-point
  1846. Xformatting specification, or \LaTeX\ command, is allowed in the
  1847. Xformat.
  1848. X
  1849. XA title for the plot and labels for the axes were set up in the next
  1850. Xthree commands.  Note that they are processed by \LaTeX\ and so may
  1851. Xhave math mode and other symbols in them. The ylabel may have multiple
  1852. Xlines, delineated with \verb+\\+.  The ylabel can be moved around with
  1853. Xoptional offset parameters (see {\tt set ylabel} in the GNUPLOT
  1854. Xmanual). Typically, the ylabel needs to be moved to the left to avoid
  1855. Xinterfering with the left-hand side of the plot.  Once these labels
  1856. Xare set up, they will be used for all subsequent plot commands until
  1857. Xthey are changed. These labels are also supported by the other
  1858. Xterminal types, but (of course) any \LaTeX\ code in the string will
  1859. Xnot be interpreted. We have also defined the range of both $x$ (now
  1860. X$[0,2\pi]$) and $y$ (here $[0,1]$).
  1861. X
  1862. XSo far we have plotted one curve, $y=\sin(x)$, on one plot. In
  1863. XGNUPLOT, each {\tt plot} command generates a new plot. If the output
  1864. Xis to a screen, the screen is cleared. If to a printer, a new page is
  1865. Xproduced. In the {\tt latex} case, a new picture is started. It is not
  1866. Xlikely that \LaTeX\ users will want this to happen, so generally each
  1867. Xplot has its own input file and is kept in a separate output ({\tt
  1868. X.tex}) file for inclusion at different places in the document.
  1869. X
  1870. X\paragraph{Example 3:} To place more than one curve on a plot, use one
  1871. X{\tt plot} statement and separate the description of each curve by a
  1872. Xcomma. In our next example, we will plot both a function and a data
  1873. Xfile on the same plot. This plot is shown in Figure~\ref{eg3}.
  1874. X
  1875. X\singlespace
  1876. X\begin{verbatim}
  1877. X    set terminal latex
  1878. X    set output "eg3.tex"
  1879. X    set format xy "$%g$"
  1880. X    set title "This is another plot"
  1881. X    set xlabel "$x$ axis"
  1882. X    set ylabel "$y$ axis"
  1883. X    set key 15,-10
  1884. X    plot x with lines, "eg3.dat" with linespoints
  1885. X\end{verbatim}
  1886. X\currentspace
  1887. X
  1888. X\boxfigure{htbp}{\fullboxwidth}{
  1889. X  \begin{center}
  1890. X    \input{eg3}
  1891. X  \end{center}
  1892. X  \caption{An example with two curves on the same plot.}
  1893. X  \label{eg3}
  1894. X}
  1895. X
  1896. XHere you will see that the $x$ range was not specified. The $x$ range
  1897. Xis determined automatically, unless specified by the user.  In
  1898. Xthis case, it is defined by the range of the data file
  1899. X\verb+"eg3.dat"+. The function is plotted over the same range. If no
  1900. Xdata files or $x$ range are supplied, the default range of $[-10:10]$
  1901. Xis used. We have also moved the key to a different position.  The
  1902. Xfunction $y=x$ is plotted ``with lines'', which is the default plot
  1903. Xstyle for functions, and is shown here to illustrate the plot style
  1904. Xoption.  The data file {\tt eg3.dat} is plotted with style {\tt
  1905. Xlinespoints}, a style like {\tt lines} that also plots a symbol at
  1906. Xeach data point.
  1907. X
  1908. XThere is a style called {\tt points} that only plots the symbols at
  1909. Xdata points, and another called {\tt dots} that plots a tiny dot for
  1910. Xeach data point.  The {\tt points} and {\tt linespoints} styles
  1911. Xproduce a different point symbol for each curve on the plot (for up to
  1912. Xtwelve symbols, after which they are re-used; see
  1913. XFigure~\ref{linepoint} for a complete list). The {\tt lines} and {\tt
  1914. Xlinespoints} styles use a different line style for each curve on the
  1915. Xplot (in this example the dots have different spacing). The
  1916. Xstyle {\tt impulses} draws a perpendicular from each point to the
  1917. X$x$-axis. Finally, the {\tt errorbars} style can draw error bars at
  1918. Xeach data point (see the GNUPLOT manual).
  1919. X
  1920. X\paragraph{Example 4:} In the above plots of $\sin(x)$, it would make
  1921. Xmore sense to label the axis in units of $\pi$. The position and
  1922. Xlabels of the tic labels may be specified by the user, with the {\tt
  1923. Xset xtics} and {\tt set ytics} commands. This is demonstrated by
  1924. Xthe following example, shown in Figure~\ref{eg4}.
  1925. X
  1926. X\singlespace
  1927. X\begin{verbatim}
  1928. X    set terminal latex
  1929. X    set output "eg4.tex"
  1930. X    set format y "$%g$"
  1931. X    set format x "$%.2f$"
  1932. X    set title "This is $\sin(x)$"
  1933. X    set xlabel "This is the $x$ axis"
  1934. X    set ylabel "$\sin(x)$"
  1935. X    set nokey
  1936. X    set xtics -pi, pi/4
  1937. X    plot [-pi:pi] [-1:1] sin(x)
  1938. X\end{verbatim}
  1939. X\currentspace
  1940. X
  1941. X\boxfigure{htbp}{\fullboxwidth}{
  1942. X  \begin{center}
  1943. X    \input{eg4}
  1944. X  \end{center}
  1945. X  \caption{An example of the {\tt set xtics} command.}
  1946. X  \label{eg4}
  1947. X}
  1948. X
  1949. XSince {\tt pi} is a predefined variable in GNUPLOT, we can use it
  1950. Xanywhere we may use an expression. The {\tt set xtics} command here
  1951. Xspecifies that the tics on the $x$ axis start at $-\pi$ and increment
  1952. Xby $\pi/4$. Since no end point is given, the tics continue to the
  1953. Xright edge. We have also turned off the key, and changed the format to
  1954. Xrestrict the $x$-axis tic labels to 2 decimal places.
  1955. X
  1956. XWith a little more work, the plot can look even better.  Another form
  1957. Xof this command allows us to specify the label and position of each
  1958. Xtic individually.  Replacing the above {\tt set xtics} command with
  1959. Xthe following gives us Figure~\ref{eg5}. We also make use of the line
  1960. Xcontinuation character, the backslash (\verb+\+), to spread out this
  1961. Xcommand for readability.
  1962. X
  1963. X\singlespace
  1964. X\begin{verbatim}
  1965. X    set xtics ("$-\pi$" -pi,\
  1966. X     "$-\frac{\pi}{2}$" -pi/2,\
  1967. X     "0" 0,\
  1968. X     "$\frac{\pi}{2}$" pi/2,\
  1969. X     "$\pi$" pi)
  1970. X\end{verbatim}
  1971. X\currentspace
  1972. X
  1973. X\boxfigure{htbp}{\fullboxwidth}{
  1974. X  \begin{center}
  1975. X    \input{eg5}
  1976. X  \end{center}
  1977. X  \caption{A fancy example of the {\tt set xtics} command.}
  1978. X  \label{eg5}
  1979. X}
  1980. X
  1981. X\paragraph{Going further:} You should now be able to make a variety of
  1982. Xplots for your \LaTeX\ document. We will present a final example
  1983. Xwithout explanation that showcases some of the capabilities of
  1984. XGNUPLOT. You may find documentation for the various commands in the
  1985. XGNUPLOT manual, though hopefully this example is somewhat
  1986. Xself-explanatory. This is shown in Figure~\ref{eg6}.
  1987. X
  1988. X\singlespace
  1989. X\begin{verbatim}
  1990. X    set terminal latex
  1991. X    set output "eg6.tex"
  1992. X    set size 3.5/5, 3/3.
  1993. X    set format y "$%g$"
  1994. X    set format x "$%5.1f\mu$"
  1995. X    set title "This is a title"
  1996. X    set xlabel "This is the $x$ axis"
  1997. X    set ylabel "This is\\a longer\\version\\ of\\the $y$\\ axis"
  1998. X    set label "Data" at -5,-5 right
  1999. X    set arrow from -5,-5 to -3.3,-6.7
  2000. X    set key -4,8
  2001. X    set xtic -10,5,10
  2002. X    plot [-10:10] [-10:10] "eg3.dat" title "Data File"  with linespoints 1 7,\
  2003. X       3*exp(-x*x)+1  title "$3e^{-x^{2}}+1$" with lines 4
  2004. X\end{verbatim}
  2005. X\currentspace
  2006. X
  2007. X\boxfigure{htbp}{\fullboxwidth}{
  2008. X  \begin{center}
  2009. X    \input{eg6}
  2010. X  \end{center}
  2011. X  \caption{An example of many features.}
  2012. X  \label{eg6}
  2013. X}
  2014. X
  2015. X\paragraph{Line and point types:} For reference, we show all of the
  2016. Xline and point types available in Figure~\ref{linepoint}.
  2017. X
  2018. X\boxfigure{htbp}{\fullboxwidth}{
  2019. X  \begin{center}
  2020. X    \input{linepoin}
  2021. X  \end{center}
  2022. X  \caption{All of the line and point types in the \LaTeX\ driver.}
  2023. X  \label{linepoint}
  2024. X}
  2025. X
  2026. X\subsection{Summary --- Use with \LaTeX}
  2027. XIn summary, to use the \LaTeX\ facilities of GNUPLOT, the first
  2028. Xcommand to GNUPLOT should be
  2029. X\begin{syntax}
  2030. X    set terminal latex
  2031. X\end{syntax}
  2032. Xand the output of GNUPLOT should be directed to a file, for example,
  2033. X\begin{verbatim}
  2034. X    set output "plot.tex"
  2035. X\end{verbatim}
  2036. XThis may be anything you like but it should have a {\tt .tex} extension,
  2037. Xof course. Then the size of the plot should be given. For example, the
  2038. Xcommand
  2039. X\begin{verbatim}
  2040. X    set size 1,2
  2041. X\end{verbatim}
  2042. Xtells GNUPLOT to use a 5 inch wide by 6 inch high box for the plot.
  2043. XThe numbers given are {\em scale factors}, not the actual size.  The
  2044. Xdefault is 5 inches by 3 inches.  This is the size of the complete
  2045. Xplot, including all labels.
  2046. X
  2047. XWhen finished, the file will contain all of the plots you have
  2048. Xspecified (you probably only want one plot per file). This file can
  2049. Xthen be used in a \LaTeX\ document, \eg,
  2050. X
  2051. X\singlespace
  2052. X\begin{verbatim}
  2053. X    \begin {figure}
  2054. X      \begin{center}
  2055. X        \input{plot}
  2056. X      \end{center}
  2057. X    \end {figure}
  2058. X\end{verbatim}
  2059. X\currentspace
  2060. XThis puts the plot into a figure.
  2061. X
  2062. XYou will also want to read about the following commands: {\tt set
  2063. Xtitle, set xlabel, set ylabel, set key, set label, set xtics, set
  2064. Xytics}, and {\tt set clip}.  These are all described in the regular
  2065. XGNUPLOT manual.
  2066. X
  2067. X\section{Use with EEPIC}
  2068. X\label{s:eepic}
  2069. XEEPIC is a macro package extending the picture environment of \LaTeX.
  2070. XIf you have the EPIC or EEPIC macros, and your {\tt dvi} translator
  2071. Xsupports the {\em tpic\/} \verb+\special+s, then you can save \LaTeX\
  2072. Xmemory.  With EEPIC pictures, the {\tt plot.tex} file will be smaller,
  2073. X\LaTeX\ will run much faster (and need much less memory), and the {\tt
  2074. Xdvi} file will be smaller. The quality of the output is about the
  2075. Xsame. If you change the source, you can generate some more interesting
  2076. Xline styles.
  2077. X
  2078. XTo use EEPIC, set GNUPLOT's terminal type to {\tt eepic} instead of
  2079. X{\tt latex}, and use GNUPLOT as before. The line styles will change.
  2080. XInclude the file {\tt plot.tex} in your document as before, along with
  2081. Xthe document style options {\tt [epic,eepic]}.
  2082. X
  2083. X\section{For Former Gnu\TeX\ Users}
  2084. X\label{oldusers}
  2085. X
  2086. XFormer Gnu\TeX\ users may be pleased with many of the new features
  2087. X(many inspired by your suggestions!), but will also find many changes.
  2088. XGNUPLOT will {\em not\/} run all Gnu\TeX\ input files unchanged.
  2089. XSeveral Gnu\TeX\ features were not included in GNUPLOT because they
  2090. Xwere specific to the \LaTeX\ driver. I encourage you to use the newer
  2091. XGNUPLOT.  A translator is available that attempts to translate your
  2092. Xold Gnu\TeX\ 1.6 input files into GNUPLOT 3.0 files. You can ftp it
  2093. Xfrom \verb+cs.duke.edu+ as \verb+dist/sources/gnuplot/gnut2p.tar.Z+.
  2094. XThis file also contains directions and a list of changes from Gnu\TeX\
  2095. Xto GNUPLOT.
  2096. X
  2097. X\section{Contact}
  2098. XPlease contact me at \verb+David.Kotz@Dartmouth.edu+ with any comments you may
  2099. Xhave on GNUPLOT's \LaTeX\ driver. For general GNUPLOT questions, send
  2100. Xmail to the GNUPLOT mailing list
  2101. X(\verb+info-gnuplot@dartmouth.edu+).
  2102. X
  2103. X
  2104. X\end{document}
  2105. END_OF_FILE
  2106.   if test 16602 -ne `wc -c <'gnuplot/docs/latextut/tutorial.tex'`; then
  2107.     echo shar: \"'gnuplot/docs/latextut/tutorial.tex'\" unpacked with wrong size!
  2108.   fi
  2109.   # end of 'gnuplot/docs/latextut/tutorial.tex'
  2110. fi
  2111. if test -f 'gnuplot/plot.h' -a "${1}" != "-c" ; then 
  2112.   echo shar: Will not clobber existing file \"'gnuplot/plot.h'\"
  2113. else
  2114.   echo shar: Extracting \"'gnuplot/plot.h'\" \(15702 characters\)
  2115.   sed "s/^X//" >'gnuplot/plot.h' <<'END_OF_FILE'
  2116. X/*
  2117. X * $Id: plot.h%v 3.50 1993/07/09 05:35:24 woo Exp $
  2118. X *
  2119. X */
  2120. X
  2121. X/* GNUPLOT - plot.h */
  2122. X/*
  2123. X * Copyright (C) 1986 - 1993   Thomas Williams, Colin Kelley
  2124. X *
  2125. X * Permission to use, copy, and distribute this software and its
  2126. X * documentation for any purpose with or without fee is hereby granted, 
  2127. X * provided that the above copyright notice appear in all copies and 
  2128. X * that both that copyright notice and this permission notice appear 
  2129. X * in supporting documentation.
  2130. X *
  2131. X * Permission to modify the software is granted, but not the right to
  2132. X * distribute the modified code.  Modifications are to be distributed 
  2133. X * as patches to released version.
  2134. X *  
  2135. X * This software is provided "as is" without express or implied warranty.
  2136. X * 
  2137. X *
  2138. X * AUTHORS
  2139. X * 
  2140. X *   Original Software:
  2141. X *     Thomas Williams,  Colin Kelley.
  2142. X * 
  2143. X *   Gnuplot 2.0 additions:
  2144. X *       Russell Lang, Dave Kotz, John Campbell.
  2145. X *
  2146. X *   Gnuplot 3.0 additions:
  2147. X *       Gershon Elber and many others.
  2148. X * 
  2149. X * There is a mailing list for gnuplot users. Note, however, that the
  2150. X * newsgroup 
  2151. X *    comp.graphics.gnuplot 
  2152. X * is identical to the mailing list (they
  2153. X * both carry the same set of messages). We prefer that you read the
  2154. X * messages through that newsgroup, to subscribing to the mailing list.
  2155. X * (If you can read that newsgroup, and are already on the mailing list,
  2156. X * please send a message info-gnuplot-request@dartmouth.edu, asking to be
  2157. X * removed from the mailing list.)
  2158. X *
  2159. X * The address for mailing to list members is
  2160. X *       info-gnuplot@dartmouth.edu
  2161. X * and for mailing administrative requests is 
  2162. X *       info-gnuplot-request@dartmouth.edu
  2163. X * The mailing list for bug reports is 
  2164. X *       bug-gnuplot@dartmouth.edu
  2165. X * The list of those interested in beta-test versions is
  2166. X *       info-gnuplot-beta@dartmouth.edu
  2167. X */
  2168. X
  2169. X#define PROGRAM "G N U P L O T"
  2170. X#define PROMPT "gnuplot> "
  2171. X#if defined(AMIGA_SC_6_1) || defined(AMIGA_AC_5)
  2172. X#define SHELL "NewShell"
  2173. X#else /* AMIGA */
  2174. X#ifdef ATARI
  2175. X#define SHELL "gulam.prg"
  2176. X#else /* ATARI */
  2177. X#ifdef OS2
  2178. X#define SHELL "c:\\cmd.exe"
  2179. X#else /*OS2 */
  2180. X#define SHELL "/bin/sh"        /* used if SHELL env variable not set */
  2181. X#endif /*OS2 */
  2182. X#endif /* ATARI */
  2183. X#endif /* AMIGA  */
  2184. X
  2185. X#if defined(__unix__) && !defined(unix)
  2186. X#define unix
  2187. X#endif
  2188. X
  2189. X#define SAMPLES 100        /* default number of samples for a plot */
  2190. X#define ISO_SAMPLES 10        /* default number of isolines per splot */
  2191. X#define ZERO    1e-8        /* default for 'zero' set option */
  2192. X
  2193. X#ifndef TERM
  2194. X/* default terminal is "unknown"; but see init_terminal */
  2195. X#define TERM "unknown"
  2196. X#endif
  2197. X
  2198. X#define TRUE 1
  2199. X#define FALSE 0
  2200. X
  2201. X
  2202. X#define Pi 3.141592653589793
  2203. X#define DEG2RAD (Pi / 180.0)
  2204. X
  2205. X
  2206. X#define MIN_CRV_POINTS 100        /* minimum size of points[] in curve_points */
  2207. X#define MIN_SRF_POINTS 1000        /* minimum size of points[] in surface_points */
  2208. X
  2209. X#define MAX_LINE_LEN 1024    /* maximum number of chars allowed on line */
  2210. X#define MAX_TOKENS 400
  2211. X#define MAX_ID_LEN 50        /* max length of an identifier */
  2212. X
  2213. X
  2214. X#define MAX_AT_LEN 150        /* max number of entries in action table */
  2215. X#define STACK_DEPTH 100
  2216. X#define NO_CARET (-1)
  2217. X
  2218. X#ifdef MSDOS
  2219. X#define MAX_NUM_VAR    3    /* Ploting projection of func. of max. five vars. */
  2220. X#else
  2221. X#define MAX_NUM_VAR    5    /* Ploting projection of func. of max. five vars. */
  2222. X#endif
  2223. X
  2224. X#define MAP3D_CARTESIAN        0    /* 3D Data mapping. */
  2225. X#define MAP3D_SPHERICAL        1
  2226. X#define MAP3D_CYLINDRICAL    2
  2227. X
  2228. X#define CONTOUR_NONE    0    /* Where to place contour maps if at all. */
  2229. X#define CONTOUR_BASE    1
  2230. X#define CONTOUR_SRF    2
  2231. X#define CONTOUR_BOTH    3
  2232. X
  2233. X#define CONTOUR_KIND_LINEAR    0 /* See contour.h in contours subdirectory. */
  2234. X#define CONTOUR_KIND_CUBIC_SPL    1
  2235. X#define CONTOUR_KIND_BSPLINE    2
  2236. X
  2237. X#define LEVELS_AUTO            0        /* How contour levels are set */
  2238. X#define LEVELS_INCREMENTAL    1        /* user specified start & incremnet */
  2239. X#define LEVELS_DISCRETE        2        /* user specified discrete levels */
  2240. X#define MAX_DISCRETE_LEVELS   30
  2241. X
  2242. X#define ANGLES_RADIANS    0
  2243. X#define ANGLES_DEGREES    1
  2244. X
  2245. X
  2246. X#if defined(AMIGA_SC_6_1) || defined(AMIGA_AC_5)
  2247. X#define OS "Amiga "
  2248. X#endif
  2249. X
  2250. X#ifdef OS2
  2251. X#ifdef unix
  2252. X#undef unix    /* GCC might declare this */
  2253. X#define OS "OS/2"
  2254. X#endif
  2255. X#endif  /* OS2 */
  2256. X
  2257. X#ifdef vms
  2258. X#define OS "VMS "
  2259. X#endif
  2260. X
  2261. X#ifdef linux
  2262. X#define OS "Linux "
  2263. X#else
  2264. X#ifdef unix
  2265. X#define OS "unix "
  2266. X#endif
  2267. X#endif
  2268. X
  2269. X#ifdef _WINDOWS
  2270. X#define _Windows
  2271. X#endif
  2272. X
  2273. X#ifdef DOS386
  2274. X#define OS "DOS 386 "
  2275. X#endif
  2276. X#ifdef _Windows
  2277. X#define OS "MS-Windows "
  2278. X#else
  2279. X#ifdef MSDOS
  2280. X#ifdef unix    /* __EMX__ and DJGPP may set this */
  2281. X#undef OS
  2282. X#undef unix
  2283. X#endif
  2284. X#define OS "MS-DOS "
  2285. X#endif
  2286. X#endif
  2287. X
  2288. X
  2289. X#ifdef ATARI
  2290. X#define OS "TOS "
  2291. X#endif
  2292. X#ifndef OS
  2293. X#define OS ""
  2294. X#endif
  2295. X
  2296. X
  2297. X/* To access curves larger than 64k, MSDOS needs to use huge pointers */
  2298. X#if (defined(__TURBOC__) && defined(MSDOS)) || (defined(_Windows) && !defined(WIN32))
  2299. X#define GPHUGE huge
  2300. X#define GPFAR far
  2301. X#else
  2302. X#define GPHUGE
  2303. X#define GPFAR
  2304. X#endif
  2305. X
  2306. X
  2307. X/*
  2308. X * Note about VERYLARGE:  This is the upper bound double (or float, if PC)
  2309. X * numbers. This flag indicates very large numbers. It doesn't have to 
  2310. X * be the absolutely biggest number on the machine.  
  2311. X * If your machine doesn't have HUGE, or float.h,
  2312. X * define VERYLARGE here. 
  2313. X *
  2314. X * This is a mess.  If someone figures out how to clean this up, please
  2315. X *    diff -c  of your fixes
  2316. X *
  2317. X *
  2318. X * example:
  2319. X#define VERYLARGE 1e37
  2320. X */
  2321. X
  2322. X#ifdef ATARI
  2323. X#include <stdlib.h>        /* Prototyping used !! 'size_t' */
  2324. X#include <stdio.h>
  2325. X#include <string.h>
  2326. X#include <math.h>
  2327. X#define VERYLARGE    HUGE_VAL
  2328. X#else  /* not ATARI */
  2329. X#if defined(MSDOS) || defined(_Windows)
  2330. X#include <float.h>
  2331. X#define VERYLARGE (FLT_MAX/2 -1)
  2332. X#else  /* not MSDOS || _Windows */
  2333. X#if defined( vms ) || defined( _CRAY ) || defined( NEXT ) || defined(__osf__) || defined( OS2 ) || defined(__EMX__) || defined( DOS386) || defined(KSR)
  2334. X#include <float.h>
  2335. X#if defined ( NEXT )  /* bug in NeXT OS 2.0 */
  2336. X#if defined ( DBL_MAX)
  2337. X#undef DBL_MAX
  2338. X#endif
  2339. X#define DBL_MAX 1.7976931348623157e+308 
  2340. X#undef HUGE
  2341. X#define HUGE    DBL_MAX
  2342. X#undef HUGE_VAL
  2343. X#define HUGE_VAL DBL_MAX
  2344. X#endif /* not NEXT but CRAY, VMS or OSF */
  2345. X#define VERYLARGE (DBL_MAX/2 -1)
  2346. X#else  /* not vms, CRAY, NEXT, OS/2 or OSF */
  2347. X#ifdef AMIGA_AC_5
  2348. X#include <math.h>
  2349. X#define VERYLARGE (HUGE/2 -1)
  2350. X#else /* not AMIGA_AC_5 */
  2351. X#ifdef AMIGA_SC_6_1
  2352. X#include <float.h>
  2353. X#ifndef HUGE
  2354. X#define HUGE DBL_MAX
  2355. X#endif
  2356. X#define VERYLARGE (HUGE/2 -1)
  2357. X#else /* !AMIGA_SC_6_1 */
  2358. X/* #include <float.h> */
  2359. X#ifdef ISC22
  2360. X#include <float.h>
  2361. X#ifndef HUGE
  2362. X#define HUGE DBL_MAX
  2363. X#endif
  2364. X#endif /* ISC22 */
  2365. X/* This is the default */
  2366. X#ifndef HUGE
  2367. X#define HUGE DBL_MAX
  2368. X#endif
  2369. X#define VERYLARGE (HUGE/2 -1)
  2370. X/* default */
  2371. X#endif /* !AMIGA_SC_6_1 */
  2372. X#endif /* !AMIGA_AC_5 */
  2373. X#endif /* !VMS !CRAY !NEXT */
  2374. X#endif /* !MSDOS || !_Windows */
  2375. X#endif /* !ATARI */
  2376. X
  2377. X#ifdef AMIGA_SC_6_1
  2378. X/* Get function prototypes */
  2379. X#include <stdio.h>
  2380. X#include <stdlib.h>
  2381. X#include <string.h>
  2382. X#include <math.h>
  2383. X#endif /* AMIGA_SC_6_1 */
  2384. X
  2385. X#define END_OF_COMMAND (c_token >= num_tokens || equals(c_token,";"))
  2386. X
  2387. X#ifdef vms
  2388. X
  2389. X
  2390. X#define is_comment(c) ((c) == '#' || (c) == '!')
  2391. X#define is_system(c) ((c) == '$')
  2392. X
  2393. X
  2394. X#else /* vms */
  2395. X
  2396. X#define is_comment(c) ((c) == '#')
  2397. X#define is_system(c) ((c) == '!')
  2398. X
  2399. X#endif /* vms */
  2400. X
  2401. X/* If you don't have vfork, then undefine this */
  2402. X#if defined(NOVFORK) || defined(MSDOS) || defined( OS2 ) || defined(_Windows) || defined(DOS386)
  2403. X# undef VFORK
  2404. X#else
  2405. X# ifdef unix
  2406. X#  define VFORK
  2407. X# endif
  2408. X#endif
  2409. X
  2410. X/* 
  2411. X * memcpy() comes by many names. The default is now to assume bcopy, 
  2412. X * since it is the most common case. Define 
  2413. X *  MEMCPY to use memcpy(), 
  2414. X *  vms to use the vms function,
  2415. X *  NOCOPY to use a handwritten version in parse.c
  2416. X */
  2417. X#ifdef vms
  2418. X# define memcpy(dest,src,len) lib$movc3(&len,src,dest)
  2419. X#else
  2420. X# if defined(MEMCPY) || defined(MSDOS) || defined (ATARI) || defined( OS2 ) || defined(_Windows) || defined(DOS386)
  2421. X   /* use memcpy directly */
  2422. X# else 
  2423. X#  ifdef NOCOPY
  2424. X    /* use the handwritten memcpy in parse.c */
  2425. X#  else
  2426. X    /* assume bcopy is in use */
  2427. X#   define memcpy(dest,src,len) bcopy(src,dest,len)
  2428. X#  endif /* NOCOPY */
  2429. X# endif /* MEMCPY || MSDOS */
  2430. X#endif /* vms */
  2431. X
  2432. X/*
  2433. X * In case you have MEMSET instead of BZERO. If you have something 
  2434. X * else, define bzero to that something.
  2435. X */
  2436. X#if defined(MEMSET) || defined(MSDOS) || defined( OS2 ) || defined(_Windows) || defined(DOS386)
  2437. X#define bzero(dest,len)  (void)(memset(dest, 0, len))
  2438. X#endif /* MEMSET || MSDOS */
  2439. X
  2440. X#define top_of_stack stack[s_p]
  2441. X
  2442. Xtypedef int TBOOLEAN;
  2443. X
  2444. X#ifdef __ZTC__
  2445. Xtypedef int (*FUNC_PTR)(...);
  2446. X#else
  2447. Xtypedef int (*FUNC_PTR)();
  2448. X#endif
  2449. X
  2450. Xenum operators {
  2451. X    PUSH, PUSHC, PUSHD1, PUSHD2, PUSHD, CALL, CALLN, LNOT, BNOT, UMINUS,
  2452. X    LOR, LAND, BOR, XOR, BAND, EQ, NE, GT, LT, GE, LE, PLUS, MINUS, MULT,
  2453. X    DIV, MOD, POWER, FACTORIAL, BOOLE, JUMP, JUMPZ, JUMPNZ, JTERN, SF_START
  2454. X};
  2455. X
  2456. X
  2457. X#define is_jump(operator) ((operator) >=(int)JUMP && (operator) <(int)SF_START)
  2458. X
  2459. X
  2460. Xenum DATA_TYPES {
  2461. X    INTGR, CMPLX
  2462. X};
  2463. X
  2464. X
  2465. Xenum PLOT_TYPE {
  2466. X    FUNC, DATA, FUNC3D, DATA3D
  2467. X};
  2468. X
  2469. X/*XXX - JG */
  2470. Xenum PLOT_STYLE {
  2471. X    LINES, POINTSTYLE, IMPULSES, LINESPOINTS, DOTS, ERRORBARS, BOXES, BOXERROR, STEPS
  2472. X};
  2473. X
  2474. Xenum JUSTIFY {
  2475. X    LEFT, CENTRE, RIGHT
  2476. X};
  2477. X
  2478. X#if !(defined(ATARI)&&defined(__GNUC__)&&defined(_MATH_H)) /* FF's math.h has the type already */
  2479. Xstruct cmplx {
  2480. X    double real, imag;
  2481. X};
  2482. X#endif
  2483. X
  2484. X
  2485. Xstruct value {
  2486. X    enum DATA_TYPES type;
  2487. X    union {
  2488. X        int int_val;
  2489. X        struct cmplx cmplx_val;
  2490. X    } v;
  2491. X};
  2492. X
  2493. X
  2494. Xstruct lexical_unit {    /* produced by scanner */
  2495. X    TBOOLEAN is_token;    /* true if token, false if a value */ 
  2496. X    struct value l_val;
  2497. X    int start_index;    /* index of first char in token */
  2498. X    int length;            /* length of token in chars */
  2499. X};
  2500. X
  2501. X
  2502. Xstruct ft_entry {        /* standard/internal function table entry */
  2503. X    char *f_name;        /* pointer to name of this function */
  2504. X    FUNC_PTR func;        /* address of function to call */
  2505. X};
  2506. X
  2507. X
  2508. Xstruct udft_entry {                /* user-defined function table entry */
  2509. X    struct udft_entry *next_udf;         /* pointer to next udf in linked list */
  2510. X    char udf_name[MAX_ID_LEN+1];         /* name of this function entry */
  2511. X    struct at_type *at;            /* pointer to action table to execute */
  2512. X    char *definition;             /* definition of function as typed */
  2513. X    struct value dummy_values[MAX_NUM_VAR];    /* current value of dummy variables */
  2514. X};
  2515. X
  2516. X
  2517. Xstruct udvt_entry {            /* user-defined value table entry */
  2518. X    struct udvt_entry *next_udv; /* pointer to next value in linked list */
  2519. X    char udv_name[MAX_ID_LEN+1]; /* name of this value entry */
  2520. X    TBOOLEAN udv_undef;        /* true if not defined yet */
  2521. X    struct value udv_value;    /* value it has */
  2522. X};
  2523. X
  2524. X
  2525. Xunion argument {            /* p-code argument */
  2526. X    int j_arg;                /* offset for jump */
  2527. X    struct value v_arg;        /* constant value */
  2528. X    struct udvt_entry *udv_arg;    /* pointer to dummy variable */
  2529. X    struct udft_entry *udf_arg; /* pointer to udf to execute */
  2530. X};
  2531. X
  2532. X
  2533. Xstruct at_entry {            /* action table entry */
  2534. X    enum operators index;    /* index of p-code function */
  2535. X    union argument arg;
  2536. X};
  2537. X
  2538. X
  2539. Xstruct at_type {
  2540. X    int a_count;                /* count of entries in .actions[] */
  2541. X    struct at_entry actions[MAX_AT_LEN];
  2542. X        /* will usually be less than MAX_AT_LEN is malloc()'d copy */
  2543. X};
  2544. X
  2545. X
  2546. X/* Defines the type of a coordinate */
  2547. X/* INRANGE and OUTRANGE points have an x,y point associated with them */
  2548. Xenum coord_type {
  2549. X    INRANGE,                /* inside plot boundary */
  2550. X    OUTRANGE,                /* outside plot boundary, but defined */
  2551. X    UNDEFINED                /* not defined at all */
  2552. X};
  2553. X  
  2554. X#if defined(MSDOS) || defined(_Windows) 
  2555. Xtypedef float coordval;        /* memory is tight on PCs! */
  2556. X#else
  2557. Xtypedef double coordval;
  2558. X#endif
  2559. X
  2560. Xstruct coordinate {
  2561. X    enum coord_type type;    /* see above */
  2562. X    coordval x, y, z;
  2563. X    coordval ylow, yhigh;    /* ignored in 3d */
  2564. X#if (defined(_Windows) && !defined(WIN32)) || (defined(MSDOS) && defined(__TURBOC__))
  2565. X    char pad[10];        /* pad to 32 byte boundary */
  2566. X#endif
  2567. X};
  2568. X
  2569. Xstruct curve_points {
  2570. X    struct curve_points *next_cp;    /* pointer to next plot in linked list */
  2571. X    enum PLOT_TYPE plot_type;
  2572. X    enum PLOT_STYLE plot_style;
  2573. X    char *title;
  2574. X    int line_type;
  2575. X    int point_type;
  2576. X     int p_max;                    /* how many points are allocated */
  2577. X    int p_count;                    /* count of points in points */
  2578. X    struct coordinate GPHUGE *points;
  2579. X};
  2580. X
  2581. Xstruct gnuplot_contours {
  2582. X    struct gnuplot_contours *next;
  2583. X    struct coordinate GPHUGE *coords;
  2584. X     char isNewLevel;
  2585. X     char label[12];
  2586. X    int num_pts;
  2587. X};
  2588. X
  2589. Xstruct iso_curve {
  2590. X    struct iso_curve *next;
  2591. X     int p_max;                    /* how many points are allocated */
  2592. X    int p_count;                    /* count of points in points */
  2593. X    struct coordinate GPHUGE *points;
  2594. X};
  2595. X
  2596. Xstruct surface_points {
  2597. X    struct surface_points *next_sp;    /* pointer to next plot in linked list */
  2598. X    enum PLOT_TYPE plot_type;
  2599. X    enum PLOT_STYLE plot_style;
  2600. X    char *title;
  2601. X    int line_type;
  2602. X    int point_type;
  2603. X    int has_grid_topology;
  2604. X    int num_iso_read;  /* Data files only - num of isolines read from file. */
  2605. X    struct gnuplot_contours *contours;    /* Not NULL If have contours. */
  2606. X    struct iso_curve *iso_crvs;
  2607. X};
  2608. X
  2609. Xstruct TERMENTRY {
  2610. X    char *name;
  2611. X#if defined(_Windows) && !defined(WIN32)
  2612. X    char GPFAR description[80];    /* to make text go in FAR segment */
  2613. X#else
  2614. X    char *description;
  2615. X#endif
  2616. X    unsigned int xmax,ymax,v_char,h_char,v_tic,h_tic;
  2617. X    FUNC_PTR options,init,reset,text,scale,graphics,move,vector,linetype,
  2618. X        put_text,text_angle,justify_text,point,arrow;
  2619. X};
  2620. X
  2621. X#ifdef _Windows
  2622. X#define termentry TERMENTRY far
  2623. X#else
  2624. X#define termentry TERMENTRY
  2625. X#endif
  2626. X
  2627. X
  2628. Xstruct text_label {
  2629. X    struct text_label *next;    /* pointer to next label in linked list */
  2630. X    int tag;            /* identifies the label */
  2631. X    double x,y,z;
  2632. X    enum JUSTIFY pos;
  2633. X    char text[MAX_LINE_LEN+1];
  2634. X};
  2635. X
  2636. Xstruct arrow_def {
  2637. X    struct arrow_def *next;    /* pointer to next arrow in linked list */
  2638. X    int tag;            /* identifies the arrow */
  2639. X    double sx,sy,sz;        /* start position */
  2640. X    double ex,ey,ez;        /* end position */
  2641. X    TBOOLEAN head;            /* arrow has a head or not */
  2642. X};
  2643. X
  2644. X/* Tic-mark labelling definition; see set xtics */
  2645. Xstruct ticdef {
  2646. X    int type;                /* one of three values below */
  2647. X#define TIC_COMPUTED 1        /* default; gnuplot figures them */
  2648. X#define TIC_SERIES 2        /* user-defined series */
  2649. X#define TIC_USER 3            /* user-defined points */
  2650. X#define TIC_MONTH 4        /* print out month names ((mo-1)%12)+1 */
  2651. X#define TIC_DAY 5        /* print out day of week */
  2652. X    union {
  2653. X       struct {            /* for TIC_SERIES */
  2654. X          double start, incr;
  2655. X          double end;        /* ymax, if VERYLARGE */
  2656. X       } series;
  2657. X       struct ticmark *user;    /* for TIC_USER */
  2658. X    } def;
  2659. X};
  2660. X
  2661. X/* Defines one ticmark for TIC_USER style.
  2662. X * If label==NULL, the value is printed with the usual format string.
  2663. X * else, it is used as the format string (note that it may be a constant
  2664. X * string, like "high" or "low").
  2665. X */
  2666. Xstruct ticmark {
  2667. X    double position;        /* where on axis is this */
  2668. X    char *label;            /* optional (format) string label */
  2669. X    struct ticmark *next;    /* linked list */
  2670. X};
  2671. X
  2672. X/*
  2673. X * SS$_NORMAL is "normal completion", STS$M_INHIB_MSG supresses
  2674. X
  2675. X * printing a status message.
  2676. X * SS$_ABORT is the general abort status code.
  2677. X from:    Martin Minow
  2678. X    decvax!minow
  2679. X */
  2680. X#ifdef    vms
  2681. X#include        <ssdef.h>
  2682. X#include        <stsdef.h>
  2683. X#define    IO_SUCCESS    (SS$_NORMAL | STS$M_INHIB_MSG)
  2684. X#define    IO_ERROR    SS$_ABORT
  2685. X#endif /* vms */
  2686. X
  2687. X
  2688. X#ifndef    IO_SUCCESS    /* DECUS or VMS C will have defined these already */
  2689. X#define    IO_SUCCESS    0
  2690. X#endif
  2691. X#ifndef    IO_ERROR
  2692. X#define    IO_ERROR    1
  2693. X#endif
  2694. X
  2695. X/* Some key global variables */
  2696. Xextern TBOOLEAN screen_ok;
  2697. Xextern TBOOLEAN term_init;
  2698. Xextern TBOOLEAN undefined;
  2699. Xextern struct termentry term_tbl[];
  2700. X
  2701. Xextern char *alloc();
  2702. Xextern char GPFAR *gpfaralloc();    /* far versions */
  2703. Xextern char GPFAR *gpfarrealloc();
  2704. Xextern void gpfarfree();
  2705. X/* allocating and managing curve_points structures */
  2706. Xextern struct curve_points *cp_alloc();
  2707. Xextern int cp_extend();
  2708. Xextern int cp_free();
  2709. X/* allocating and managing surface_points structures */
  2710. Xextern struct surface_points *sp_alloc();
  2711. Xextern int sp_replace();
  2712. Xextern int sp_free();
  2713. X/* allocating and managing is_curve structures */
  2714. Xextern struct iso_curve *iso_alloc();
  2715. Xextern int iso_extend();
  2716. Xextern int iso_free();
  2717. X
  2718. X/* Windows needs to redefine stdin/stdout functions */
  2719. X#ifdef _Windows
  2720. X#include "win/wtext.h"
  2721. X#endif
  2722. END_OF_FILE
  2723.   if test 15702 -ne `wc -c <'gnuplot/plot.h'`; then
  2724.     echo shar: \"'gnuplot/plot.h'\" unpacked with wrong size!
  2725.   fi
  2726.   # end of 'gnuplot/plot.h'
  2727. fi
  2728. if test -f 'gnuplot/term/hp26.trm' -a "${1}" != "-c" ; then 
  2729.   echo shar: Will not clobber existing file \"'gnuplot/term/hp26.trm'\"
  2730. else
  2731.   echo shar: Extracting \"'gnuplot/term/hp26.trm'\" \(16288 characters\)
  2732.   sed "s/^X//" >'gnuplot/term/hp26.trm' <<'END_OF_FILE'
  2733. X/*
  2734. X * $Id: hp26.trm%v 3.50 1993/07/09 05:35:24 woo Exp $
  2735. X */
  2736. X
  2737. X/* GNUPLOT - HP26.trm */
  2738. X/*
  2739. X * Copyright (C) 1990   
  2740. X *
  2741. X * Permission to use, copy, and distribute this software and its
  2742. X * documentation for any purpose with or without fee is hereby granted, 
  2743. X * provided that the above copyright notice appear in all copies and 
  2744. X * that both that copyright notice and this permission notice appear 
  2745. X * in supporting documentation.
  2746. X *
  2747. X * Permission to modify the software is granted, but not the right to
  2748. X * distribute the modified code.  Modifications are to be distributed 
  2749. X * as patches to released version.
  2750. X *  
  2751. X * This software  is provided "as is" without express or implied warranty.
  2752. X * 
  2753. X * This file is included by ../term.c.
  2754. X *
  2755. X * This terminal driver supports:
  2756. X *  HP2623A 
  2757. X *
  2758. X * AUTHORS
  2759. X *   luecken@udel.edu (Bruce Lueckenhoff) 
  2760. X *   hplvlch!ch (Chuck Heller) 
  2761. X * 
  2762. X * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
  2763. X * 
  2764. X */
  2765. X
  2766. X
  2767. X#define HP26_XMAX 512
  2768. X#define HP26_YMAX 390
  2769. X
  2770. X#define HP26_XLAST (HP26_XMAX - 1)
  2771. X#define HP26_YLAST (HP26_XMAX - 1)
  2772. X
  2773. X/* Use a size 1 character, or a 7 x 10 grid. */
  2774. X#define HP26_VCHAR    10
  2775. X#define HP26_HCHAR    7
  2776. X#define HP26_VTIC    5
  2777. X#define HP26_HTIC    5
  2778. X
  2779. X/* include the stream compaction routines */
  2780. X#include "compact.c"
  2781. X
  2782. Xtypedef struct _HP26_Buffer_Node{
  2783. X    int index;
  2784. X    int size;
  2785. X    int next;
  2786. X    int linetype;
  2787. X    int *x;
  2788. X    int *y;
  2789. X    TBOOLEAN *isa_move;
  2790. X} HP26_Buffer_Node;
  2791. X
  2792. X/* constructor method */
  2793. XHP26_Buffer_Node *BN_create(index, size, linetype)
  2794. Xint index, size, linetype;
  2795. X{
  2796. X    HP26_Buffer_Node *the_node;
  2797. X    the_node = (HP26_Buffer_Node *) malloc(sizeof(HP26_Buffer_Node));
  2798. X    the_node->index = index;
  2799. X    the_node->linetype = linetype;
  2800. X    the_node->size = size;
  2801. X    the_node->next = 0;
  2802. X    the_node->x = (int *) calloc(the_node->size, sizeof(int));
  2803. X    the_node->y = (int *) calloc(the_node->size, sizeof(int));
  2804. X    the_node->isa_move = (TBOOLEAN *)calloc(the_node->size,sizeof(TBOOLEAN));
  2805. X    if (the_node->x == NULL 
  2806. X      ||the_node->y == NULL 
  2807. X      ||the_node->isa_move == NULL)
  2808. X        return (NULL);
  2809. X    else
  2810. X        return(the_node);
  2811. X}
  2812. X
  2813. X/* destructor method */
  2814. Xvoid BN_delete(the_node)
  2815. XHP26_Buffer_Node *the_node;
  2816. X{
  2817. X    free(the_node->x);
  2818. X    free(the_node->y);
  2819. X    free(the_node->isa_move);
  2820. X    free(the_node);
  2821. X}
  2822. X
  2823. X/* 2 for border and axes + 9 for plots + 1 for dots */
  2824. X#define HP26_gnu_map_size 12
  2825. XHP26_Buffer_Node *HP26_gnu_map[HP26_gnu_map_size];
  2826. XHP26_Buffer_Node *HP26_buff;
  2827. Xint HP26_pen_x;
  2828. Xint HP26_pen_y;
  2829. Xint HP26_angle;
  2830. Xint HP26_cursor_x;
  2831. Xint HP26_cursor_y;
  2832. XTBOOLEAN HP26_in_text;
  2833. Xint HP26_linetype_current;
  2834. Xint HP26_reduction_int;
  2835. Xint HP26_reduction_slope;
  2836. Xint HP26_overflows;
  2837. Xint HP26_nop_move;
  2838. Xint HP26_nop_vect;
  2839. Xint HP26_nop_line;
  2840. X
  2841. X/* linetype stuff */
  2842. X#define    SOLID    1
  2843. X#define    USER    2
  2844. X#define LINE3    3
  2845. X#define LINE4    4
  2846. X#define LINE5    5
  2847. X#define LINE6    6
  2848. X#define    DOTS    7
  2849. X#define LINE8    8
  2850. X#define LINE9    9
  2851. X#define LINE10    10
  2852. X#define POINT    11
  2853. X
  2854. X
  2855. X
  2856. X#define swap(a, b) a ^= b; b ^= a; a ^= b;
  2857. X
  2858. Xchar HP26_bin_short_table[32]={
  2859. X'0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?',
  2860. X' ','!','"','#','$','%','&','\'','(',')','*','+',',','-','.','/'};
  2861. X/* encodes an integer (assumed to be in range) into 
  2862. X   binary short incremental format (j)*/
  2863. X#define short_encode(n) (HP26_bin_short_table[n+16])
  2864. X
  2865. X/* tells whether a given delta_x,delta_y pair can be expressed in
  2866. X   binary short incremental format */
  2867. X#define qualified(dx,dy) ((dx>-17)&&(dy>-17)&&(dx<16)&&(dy<16))
  2868. X
  2869. X
  2870. Xchar HP26_bin_table[32]={
  2871. X' ','!','"','#','$','%','&','\'','(',')','*','+',',','-','.','/',
  2872. X'0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?'};
  2873. X/* returns the high byte of integer n in binary absolute format (i) */
  2874. X#define bin_encode_hi(n) (HP26_bin_table[n>>5]) 
  2875. X/* returns the low byte of integer n in binary absolute format (i) */
  2876. X#define bin_encode_lo(n) (HP26_bin_table[n & 31]) 
  2877. X
  2878. X
  2879. X
  2880. X/* the guts of the program 
  2881. X-- first checks if any work need be done and, failing that, returns 
  2882. X    immediately
  2883. X-- tries to compress the vector stream
  2884. X-- goes through the buffer, using binary short incremental (2 bytes/point) 
  2885. X    as much as possible, even if must output two pairs to express one vector
  2886. X    (it's no more expensive, and will hopefully damp any excessive switching
  2887. X    back and forth between the two formats)
  2888. X    if can't use binary short incremental, use binary 
  2889. X    absolute(4 bytes/point)
  2890. X-- finally, resets the HP26_next pointer to zero    */
  2891. XHP26_flush(the_buff)
  2892. XHP26_Buffer_Node *the_buff;
  2893. X{
  2894. X    int i, delta_x, delta_y, half_dx, half_dy;
  2895. X    int *buff_x, *buff_y;
  2896. X    TBOOLEAN *isa_move;
  2897. X    TBOOLEAN bin_short;
  2898. X
  2899. X    if (the_buff->next == 0)
  2900. X        return (FALSE);
  2901. X    /* init pointers for easy access */
  2902. X    buff_x = the_buff->x;
  2903. X    buff_y = the_buff->y;
  2904. X    isa_move = the_buff->isa_move;
  2905. X    if (HP26_in_text){
  2906. X        fputs("\033*dT", outfile);
  2907. X        HP26_in_text = FALSE;
  2908. X    }
  2909. X    if (HP26_linetype_current != the_buff->linetype
  2910. X        && (the_buff->next > 1 || !isa_move[0])){
  2911. X        fprintf(outfile,"\033*m%dB",the_buff->linetype);
  2912. X        HP26_linetype_current = the_buff->linetype;
  2913. X    }
  2914. X    /* try to compress the stream */
  2915. X    if (the_buff->next>30 && the_buff->linetype != POINT){
  2916. X/*        HP26_reduction_int += compact_int(buff_x,buff_y,isa_move, &(the_buff->next));    */
  2917. X        HP26_reduction_slope += compact_slope(buff_x,buff_y,isa_move, &(the_buff->next),0.1); 
  2918. X    }
  2919. X
  2920. X    /* start escape sequence */
  2921. X    fputs("\033*p",outfile);
  2922. X    /* initialize the state:  binary short incremental or binary absolute */
  2923. X    delta_x = buff_x[0] - HP26_pen_x;
  2924. X    delta_y = buff_y[0] - HP26_pen_y;
  2925. X    if (qualified(delta_x, delta_y)){
  2926. X        fputc('j', outfile);
  2927. X        bin_short = TRUE;
  2928. X    }else{
  2929. X        fputc('i', outfile);
  2930. X        bin_short = FALSE;
  2931. X    }
  2932. X    /* now work through the list */
  2933. X    for (i=0;i<the_buff->next;i++){
  2934. X        if (i>0){
  2935. X            delta_x = buff_x[i] - buff_x[i-1];
  2936. X            delta_y = buff_y[i] - buff_y[i-1];
  2937. X        }
  2938. X        if ((delta_x==0)&&(delta_y==0)){
  2939. X            if (i>0 && !isa_move[i-1] && !isa_move[i]){
  2940. X                /* allow null vectors only when drawing dots */
  2941. X                HP26_nop_vect++;
  2942. X                continue;
  2943. X            }else if (isa_move[i]){
  2944. X                /* a null move */
  2945. X                HP26_nop_move++;
  2946. X                continue;
  2947. X            }
  2948. X        }else if (i > 0
  2949. X            && i+1 <the_buff->next
  2950. X            && isa_move[i]
  2951. X            && isa_move[i+1]){
  2952. X            /* consecutive moves are condensed into one */
  2953. X            HP26_nop_move++;
  2954. X            continue;
  2955. X        }else if (!qualified(delta_x, delta_y)
  2956. X          && i > 0
  2957. X          && i + 2 < the_buff->next
  2958. X          && isa_move[i]
  2959. X          && !isa_move[i+1]
  2960. X          && isa_move[i+2]
  2961. X          &&qualified(buff_x[i+1]-buff_x[i-1],buff_y[i+1]-buff_y[i-1])){
  2962. X            swap(buff_x[i], buff_x[i+1]);
  2963. X            swap(buff_y[i], buff_y[i+1]);
  2964. X            /* set up new delta_x & delta_y */
  2965. X            delta_x = buff_x[i] - buff_x[i-1];
  2966. X            delta_y = buff_y[i] - buff_y[i-1];
  2967. X        }
  2968. X        if (qualified(delta_x,delta_y)){
  2969. X            if (!bin_short){
  2970. X                fputc ('j',outfile);
  2971. X                bin_short = TRUE;
  2972. X            }
  2973. X            if (isa_move[i])
  2974. X                fputc ('a',outfile);
  2975. X            fputc(short_encode(delta_x), outfile);
  2976. X            fputc(short_encode(delta_y), outfile);
  2977. X        }else{
  2978. X            half_dx = (delta_x + (delta_x>0 ? 1 : -1))/2;
  2979. X            half_dy = (delta_y + (delta_y>0 ? 1 : -1))/2;
  2980. X            if (bin_short && qualified(half_dx,half_dy)){
  2981. X                if (isa_move[i])
  2982. X                    fputc('a',outfile);
  2983. X                fputc(short_encode(half_dx), outfile);
  2984. X                fputc(short_encode(half_dy), outfile);
  2985. X                if (isa_move[i])
  2986. X                    fputc('a',outfile);
  2987. X                fputc(short_encode(delta_x - half_dx), outfile);
  2988. X                fputc(short_encode(delta_y - half_dy), outfile);
  2989. X            }else{ 
  2990. X                if (bin_short){
  2991. X                    bin_short = FALSE;
  2992. X                    fputc('i',outfile);
  2993. X                }
  2994. X                if (isa_move[i])
  2995. X                    fputc('a',outfile);
  2996. X                fputc(bin_encode_hi(buff_x[i]), outfile);
  2997. X                fputc(bin_encode_lo(buff_x[i]), outfile);
  2998. X                fputc(bin_encode_hi(buff_y[i]), outfile);
  2999. X                fputc(bin_encode_lo(buff_y[i]), outfile);
  3000. X            }
  3001. X        }
  3002. X    }    /* end for.. */
  3003. X    /* the term doesn't seem to mind leaving this out */
  3004. X    /* finish the escape sequence */
  3005. X    fputc ('Z',outfile);
  3006. X    /* set these for next time */
  3007. X    HP26_pen_x = buff_x[the_buff->next - 1];
  3008. X    HP26_pen_y = buff_y[the_buff->next - 1];
  3009. X    the_buff->next = 0;
  3010. X    return(TRUE);
  3011. X}
  3012. X
  3013. XHP26_handle_overflow()
  3014. X{
  3015. X    HP26_Buffer_Node *bigger, *old;
  3016. X    int x, y;
  3017. X    x = (HP26_buff->x)[HP26_buff->next - 1];
  3018. X    y = (HP26_buff->y)[HP26_buff->next - 1];
  3019. X    HP26_flush(HP26_buff);
  3020. X    bigger = BN_create(HP26_buff->index, HP26_buff->size * 2,
  3021. X        HP26_buff->linetype);
  3022. X    if (bigger != NULL){
  3023. X        old = HP26_buff;
  3024. X        HP26_gnu_map[bigger->index] = bigger;
  3025. X        /* special case since DOTS entry is shared 3 ways */
  3026. X        if(bigger->index == 0){
  3027. X            HP26_gnu_map[1] = bigger;
  3028. X            HP26_gnu_map[3] = bigger;
  3029. X        }
  3030. X        HP26_buff = bigger;
  3031. X        BN_delete(old);
  3032. X    }
  3033. X    (HP26_buff->x)[0] = x;
  3034. X    (HP26_buff->y)[0] = y;
  3035. X    (HP26_buff->isa_move)[0] = TRUE;
  3036. X    HP26_buff->next = 1;
  3037. X    HP26_overflows++;
  3038. X}
  3039. X
  3040. X/* checks for NOP, overcapacity condition, and then adds vector to the list */
  3041. XHP26_vector(x,y)
  3042. Xint x,y;
  3043. X{
  3044. X    if (HP26_buff->next > 2
  3045. X      && x == (HP26_buff->x)[HP26_buff->next-1]
  3046. X      && y == (HP26_buff->y)[HP26_buff->next-1]
  3047. X      && !(HP26_buff->isa_move)[HP26_buff->next-1] ){
  3048. X        HP26_nop_vect++;
  3049. X        return(FALSE);
  3050. X    }
  3051. X    if (HP26_buff->next == HP26_buff->size)
  3052. X        HP26_handle_overflow();
  3053. X    /* otherwise add to the list */
  3054. X    (HP26_buff->x)[HP26_buff->next] = x;
  3055. X    (HP26_buff->y)[HP26_buff->next] = y;
  3056. X    (HP26_buff->isa_move)[HP26_buff->next] = FALSE;
  3057. X    HP26_buff->next++;
  3058. X}
  3059. X
  3060. X/* checks for NOP, checks for overcapacity, puts self on list */
  3061. XHP26_move(x,y)
  3062. Xint x,y;
  3063. X{
  3064. X    if (HP26_buff->next > 0){
  3065. X        if (((HP26_buff->x)[HP26_buff->next - 1] == x)
  3066. X          &&((HP26_buff->y)[HP26_buff->next - 1] == y)){
  3067. X            /* null moves are NOP's */
  3068. X            HP26_nop_move++;
  3069. X            return (FALSE);
  3070. X        }else if ((HP26_buff->isa_move)[HP26_buff->next-1]){
  3071. X            /* consecutive moves are NOP's */
  3072. X            (HP26_buff->x)[HP26_buff->next-1] = x;
  3073. X            (HP26_buff->y)[HP26_buff->next-1] = y;
  3074. X            HP26_nop_move++;
  3075. X            return (TRUE);
  3076. X        }
  3077. X    }
  3078. X    if (HP26_buff->next == HP26_buff->size)
  3079. X        HP26_handle_overflow();
  3080. X    (HP26_buff->x)[HP26_buff->next] = x;
  3081. X    (HP26_buff->y)[HP26_buff->next] = y;
  3082. X    (HP26_buff->isa_move)[HP26_buff->next] = TRUE;
  3083. X    HP26_buff->next++;
  3084. X    return (TRUE);
  3085. X}
  3086. X
  3087. XHP26_init()
  3088. X{
  3089. X    HP26_gnu_map[-2 + 2] = BN_create( 0, 2048, DOTS);    /* border */
  3090. X    HP26_gnu_map[-1 + 2] = HP26_gnu_map[-2 + 2];        /* axes */
  3091. X    HP26_gnu_map[ 0 + 2] = BN_create( 2, 3072, SOLID);    /* plot 0 */
  3092. X    HP26_gnu_map[ 1 + 2] = HP26_gnu_map[-2 + 2];        /* plot 1 */
  3093. X    HP26_gnu_map[ 2 + 2] = BN_create( 4, 1024, LINE5);    /* plot 2 */
  3094. X    HP26_gnu_map[ 3 + 2] = BN_create( 5,  256, LINE6);    /* plot 3 */
  3095. X    HP26_gnu_map[ 4 + 2] = BN_create( 6,  256, LINE8);    /* plot 4 */
  3096. X    HP26_gnu_map[ 5 + 2] = BN_create( 7,  128, LINE9);    /* plot 5 */
  3097. X    HP26_gnu_map[ 6 + 2] = BN_create( 8,  128, LINE10);    /* plot 6 */
  3098. X    HP26_gnu_map[ 7 + 2] = BN_create( 9,   64, LINE6);    /* plot 7 */
  3099. X    HP26_gnu_map[ 8 + 2] = BN_create(10,   64, LINE4);    /* plot 8 */
  3100. X    HP26_gnu_map[ 9 + 2] = BN_create(11,  512, POINT);    /* point plot */
  3101. X    HP26_buff = HP26_gnu_map[10];    /* set to an unlikely linetype */
  3102. X    HP26_linetype_current = 0;    /* set to force a linetype change */
  3103. X    HP26_angle = 1;            /* left to right, default */
  3104. X    fputs("\033*mp1m2a2Q",outfile);
  3105. X    /*           1 2 3 4
  3106. X    1.  make text upright
  3107. X    2.  select text size 1
  3108. X    3.  make SET the default drawing op
  3109. X    4.  left justify text */
  3110. X    fflush (outfile);
  3111. X}
  3112. X
  3113. X
  3114. XHP26_graphics()
  3115. X{
  3116. X    fputs("\033*daflsC", outfile);
  3117. X    /*           12345
  3118. X    1.  clear graphics display
  3119. X    2.  shut off the alphanumeric display 
  3120. X    3.  graphics cursor off
  3121. X    4.  into graphics text mode
  3122. X    5.  enable graphics display */
  3123. X    /* set the pen & cursor positions to force an initial absolute move */
  3124. X    HP26_pen_x     = HP26_pen_y    = -200;
  3125. X    HP26_cursor_x    = HP26_cursor_y    = 800;
  3126. X    HP26_in_text = TRUE;
  3127. X    /* initialize statistics */
  3128. X    HP26_reduction_int = 0; 
  3129. X    HP26_reduction_slope = 0;
  3130. X    HP26_nop_move = 0;
  3131. X    HP26_nop_vect = 0;
  3132. X    HP26_nop_line = 0;
  3133. X    HP26_overflows = 0;
  3134. X}
  3135. X
  3136. X
  3137. XHP26_text()
  3138. X{
  3139. X    int i, j, curr;
  3140. X
  3141. X    /* always flush the current line first */
  3142. X    for (i=0;i<HP26_gnu_map_size;i++)
  3143. X        if ((HP26_gnu_map[i])->linetype == HP26_linetype_current)
  3144. X            HP26_flush(HP26_gnu_map[i]);
  3145. X    /* now flush the rest of the lines */
  3146. X    for (i=0;i<HP26_gnu_map_size;i++){
  3147. X        HP26_flush(HP26_gnu_map[i]);
  3148. X        curr = HP26_gnu_map[i] -> linetype;
  3149. X        for (j=0;j<HP26_gnu_map_size;j++)
  3150. X            if ((HP26_gnu_map[j])->linetype == curr)
  3151. X                HP26_flush(HP26_gnu_map[j]);
  3152. X    }
  3153. X    fputs("\033*deT",outfile);
  3154. X    /*           12
  3155. X    1. turn on the alphanumeric display
  3156. X    2. back to text mode */
  3157. X    fflush(outfile);
  3158. X    /* informational:  tells how many points compressed, how
  3159. X       many NOP's of each type, and how many times a buffer
  3160. X       overflowed during this plot */
  3161. X    /*
  3162. X    if(HP26_reduction_int
  3163. X         + HP26_reduction_slope
  3164. X         + HP26_nop_move
  3165. X         + HP26_nop_vect
  3166. X         + HP26_overflows
  3167. X         + HP26_nop_line > 0){
  3168. X        if (HP26_reduction_int>0)
  3169. X            printf("%d int-compress",HP26_reduction_int);
  3170. X        if (HP26_reduction_slope>0)
  3171. X            printf("%d slope-compress",HP26_reduction_slope);
  3172. X        if (HP26_nop_move>0)
  3173. X            printf("  %d nop_move",HP26_nop_move);
  3174. X        if (HP26_nop_vect>0)
  3175. X            printf("  %d nop_vect",HP26_nop_vect);
  3176. X        if (HP26_nop_line>0)
  3177. X            printf("  %d nop_line",HP26_nop_line);
  3178. X        if (HP26_overflows>0)
  3179. X            printf("  %d buffer overflows",HP26_overflows);
  3180. X        printf("\n");
  3181. X    }
  3182. X    */
  3183. X}
  3184. X
  3185. XHP26_reset()
  3186. X{
  3187. X    int i;
  3188. X    for (i=0;i<HP26_gnu_map_size;i++)
  3189. X        BN_delete(HP26_gnu_map[i]);
  3190. X}
  3191. X
  3192. XHP26_text_angle (ang)
  3193. Xint ang;
  3194. X{
  3195. X    HP26_angle = ang + 1;
  3196. X    fprintf(outfile,"\033*m%dN",HP26_angle);
  3197. X    return(TRUE);
  3198. X}
  3199. X
  3200. X
  3201. XHP26_put_text(x, y,str)
  3202. Xint x, y;
  3203. Xchar *str;
  3204. X{
  3205. X    char abs_str[10],rel_str[10];
  3206. X
  3207. X    if (!strlen(str))
  3208. X        return(FALSE);
  3209. X    else{
  3210. X        fputs("\033*d", outfile);
  3211. X        if (!HP26_in_text){
  3212. X            fputc('s', outfile);
  3213. X            HP26_in_text = TRUE;
  3214. X        }
  3215. X        sprintf(rel_str,"%d,%dP",x - HP26_cursor_x, y - HP26_cursor_y);
  3216. X        sprintf(abs_str,"%d,%dO", x, y);
  3217. X        if (strlen(rel_str) < strlen(abs_str))
  3218. X            fputs(rel_str, outfile);
  3219. X        else
  3220. X            fputs(abs_str, outfile);
  3221. X        fputs(str, outfile);
  3222. X        HP26_pen_x = HP26_cursor_x = x;
  3223. X        HP26_pen_y = HP26_cursor_y = y;
  3224. X    }
  3225. X    /*
  3226. X        tmp = &(HP26_all_buffers[HP26_linetype_current]);
  3227. X        tmp->x[tmp->next] = x;
  3228. X        tmp->y[tmp->next] = y;
  3229. X        tmp->isa_move[tmp->next] = TRUE;
  3230. X        tmp->next++;
  3231. X        HP26_flush(tmp);
  3232. X        fprintf(outfile,"\033*l%s\r",str);
  3233. X    */
  3234. X    return(TRUE);
  3235. X}
  3236. X
  3237. X
  3238. X/* checks for NOP, sets HP26_buff to point to the right buffer */
  3239. XHP26_linetype(linetype)
  3240. Xint linetype;
  3241. X{
  3242. X    if (linetype > 8)
  3243. X        linetype %= 9;
  3244. X    linetype += 2;
  3245. X    if (HP26_gnu_map[linetype] == HP26_buff){
  3246. X        HP26_nop_line++;
  3247. X        return (FALSE);    /* gnuplot just sent us another NOP */
  3248. X    }
  3249. X    HP26_buff = HP26_gnu_map[linetype];
  3250. X    return (TRUE);
  3251. X}
  3252. X
  3253. X
  3254. X
  3255. X/* switches to a solid linetype and calls do_point, then switches back */
  3256. XHP26_line_and_point(x,y,number)
  3257. Xint x,y,number;
  3258. X{
  3259. X    int line_save,not_solid;
  3260. X
  3261. X    not_solid = (HP26_buff->linetype != SOLID);
  3262. X    if (not_solid){
  3263. X        line_save = HP26_buff->linetype;
  3264. X        HP26_linetype (0);  /*switch to a solid line*/
  3265. X    }
  3266. X    HP26_do_point(x, y, number);
  3267. X    if (not_solid)
  3268. X        HP26_linetype(line_save);
  3269. X    return (TRUE);
  3270. X}
  3271. X
  3272. X
  3273. X/* provides 9 point types so they stay in sync with the linetypes 
  3274. Xputs simpler point types first on the assumption they are more
  3275. Xfrequently used */
  3276. XHP26_do_point (x, y,number)
  3277. Xint x, y,number;
  3278. X{
  3279. X    int htic,vtic;
  3280. X    HP26_Buffer_Node *tmp;
  3281. X
  3282. X    vtic = HP26_VTIC/2;
  3283. X    htic = HP26_HTIC/2;
  3284. X    if (number<0){
  3285. X        /* do a dot -- special case */
  3286. X        tmp = HP26_buff;
  3287. X        HP26_buff = HP26_gnu_map[11];    /* point plot */
  3288. X        HP26_vector(x, y);
  3289. X        HP26_buff = tmp;
  3290. X        return(TRUE);
  3291. X    }
  3292. X    switch (number % 9){
  3293. X        case 0:
  3294. X            /* do triangle */
  3295. X            HP26_move(x-htic, y-vtic);
  3296. X            HP26_vector(x, y+vtic);
  3297. X            HP26_vector(x+htic, y-vtic);
  3298. X            HP26_vector(x-htic, y-vtic);
  3299. X            break;
  3300. X        case 1:
  3301. X            /* do nambla */
  3302. X            HP26_move(x-htic, y+vtic);
  3303. X            HP26_vector(x, y-vtic);
  3304. X            HP26_vector(x+htic, y+vtic);
  3305. X            HP26_vector(x-htic, y+vtic);
  3306. X            break;
  3307. X        case 2:
  3308. X            /* do left triangle */
  3309. X            HP26_move(x-htic, y);
  3310. X            HP26_vector(x+htic, y+vtic);
  3311. X            HP26_vector(x+htic, y-vtic);
  3312. X            HP26_vector(x-htic, y);
  3313. X            break;
  3314. X        case 3:
  3315. X            /* do right triangle */
  3316. X            HP26_move(x+htic, y);
  3317. X            HP26_vector(x-htic, y+vtic);
  3318. X            HP26_vector(x-htic, y-vtic);
  3319. X            HP26_vector(x+htic, y);
  3320. X            break;
  3321. X        case 4:
  3322. X            /* do box */
  3323. X            HP26_move(x-htic, y-vtic);
  3324. X            HP26_vector(x-htic, y+vtic);
  3325. X            HP26_vector(x+htic, y+vtic);
  3326. X            HP26_vector(x+htic, y-vtic);
  3327. X            HP26_vector(x-htic, y-vtic);
  3328. X            break;
  3329. X        case 5:
  3330. X            /* do plus */
  3331. X            HP26_move(x, y+vtic);
  3332. X            HP26_vector(x, y-vtic);
  3333. X            HP26_move(x-htic, y);
  3334. X            HP26_vector(x+htic, y);
  3335. X            break;
  3336. X        case 6:
  3337. X            /* do X */
  3338. X            HP26_move(x+htic, y+vtic);
  3339. X            HP26_vector(x-htic, y-vtic);
  3340. X            HP26_move(x-htic, y+vtic);
  3341. X            HP26_vector(x+htic, y-vtic);
  3342. X            break;
  3343. X        default:
  3344. X            /* do diamond */
  3345. X            HP26_move(x, y-vtic);
  3346. X            HP26_vector(x-htic, y);
  3347. X            HP26_vector(x, y+vtic);
  3348. X            HP26_vector(x+htic, y);
  3349. X            HP26_vector(x, y-vtic);
  3350. X            break;
  3351. X    }
  3352. X    return(TRUE);
  3353. X}
  3354. END_OF_FILE
  3355.   if test 16288 -ne `wc -c <'gnuplot/term/hp26.trm'`; then
  3356.     echo shar: \"'gnuplot/term/hp26.trm'\" unpacked with wrong size!
  3357.   fi
  3358.   # end of 'gnuplot/term/hp26.trm'
  3359. fi
  3360. echo shar: End of archive 20 \(of 33\).
  3361. cp /dev/null ark20isdone
  3362. MISSING=""
  3363. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ; do
  3364.     if test ! -f ark${I}isdone ; then
  3365.     MISSING="${MISSING} ${I}"
  3366.     fi
  3367. done
  3368. if test "${MISSING}" = "" ; then
  3369.     echo You have unpacked all 33 archives.
  3370.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  3371. else
  3372.     echo You still must unpack the following archives:
  3373.     echo "        " ${MISSING}
  3374. fi
  3375. exit 0
  3376. exit 0 # Just in case...
  3377.