home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / printer / gnuplot.lha / README2.patch < prev    next >
Text File  |  1991-01-16  |  12KB  |  292 lines

  1. README2.patch - some notes about gnuplot 2.0 patchlevel 2.
  2.  
  3. The major additions in this patch are parametric functions,
  4. X11 Motif support, new bit mapped graphics routines, and new terminal 
  5. drivers vttek (VT like tektronix emulators), hpljii (HP LaserJet II), 
  6. kyo (Kyocera Laser Printer), SCO CGI.  
  7. For a more complete list of the changes, see the MODIFICATIONS
  8. section below.
  9.  
  10.  
  11. APPLYING PATCH 2
  12. ----------------
  13.  
  14. To apply this patch copy the files README2.patch, patch2a, patch2b, 
  15. patch2c, patch2d, patch2e and patch2f to the gnuplot directory.  
  16. Change directory to the gnuplot directory, and then apply the patch with 
  17. the following commands:
  18.  
  19.     rm term/font5x7.trm
  20.     rm term/eps60.trm
  21.     rm term/hpljet.trm
  22.     rm term/epson.trm
  23.     mv README.patch1 README1.patch
  24.     patch -p < patch2a
  25.     patch -p < patch2b
  26.     patch -p < patch2c
  27.     patch -p < patch2d
  28.     patch -p < patch2e
  29.     patch -p < patch2f
  30.  
  31.     Copy the appropriate makefile.* to Makefile, READ THE Makefile
  32.     and make any necessary changes. Then recompile!
  33.  
  34.  
  35. MAIL ADDRESSES
  36. --------------
  37.  
  38. The mailing list info-gnuplot exists as a forum for discussions about 
  39. gnuplot.  About the only gnuplot topic not supported by this list is 
  40. bug reports.  They are handled by a different mail alias, bug-gnuplot.  
  41.  
  42. To be removed or add someone to the mailing list send mail to:
  43.  
  44. pixar!info-gnuplot-request@sun.com
  45.  
  46.  
  47. To report bugs send mail to:
  48.  
  49. pixar!bug-gnuplot@sun.com
  50.  
  51.  
  52. To ask a question or discuss gnuplot send mail to:
  53.  
  54. pixar!info-gnuplot@sun.com
  55.  
  56.  
  57. pixar is a UUCP site.  sun.com is a UUCP and Internet site.  
  58. In the above addresses, sun.com can be replaced by ucbvax.berkeley.edu.
  59.  
  60.  
  61. PARAMETRIC IMPLEMENTATION
  62. -------------------------
  63.  
  64. At the request of Bill Schulz, one of our illustrious math profs, I
  65. was "encouraged" to build parametric plotting capability into gnuplot.
  66. He not only explained how much more useful parametric plotting was
  67. compared to the simpler case of function plotting, but he suggested
  68. the syntax for parametric plots as simply x,y pairs of functions on
  69. the plot line.  (He also suggested that the changes must be very easy
  70. to do, but I forgive him for that bit of chicanery.)
  71.  
  72. Thus armed, I was surprised at the number of other issues I ran into.
  73. For instance, in addition to inventing a `set parametric' command I
  74. took a hard look at xrange and yrange and decided I also 
  75. needed a trange when in parametric mode.  This, happily, led
  76. to what I believe is the right behavior in all cases I have tested
  77. for parametric equations.  Indeed, I feel the implementation is
  78. better than I originally hoped for as you can, in parametric mode,
  79. control the t range, x range and y range independently.  This gives
  80. you quite a bit of control over the function being plotted.
  81.  
  82. If the parametric commentary seems to be too verbose I'm willing to shorten 
  83. it on command.  (I normally don't write like that--geesh!)  I'm happy to 
  84. leave it alone, however, if no one finds it offensive.
  85. Of course, to be complete I needed an autoscale_t variable (such already
  86. existed for x and y).  The meaning of this variable, however, was a bit
  87. weak.  Internally it is necessary, but from the user's standpoint,
  88. it may not make much sense to have a `set autoscale t' command.  All that
  89. gains the user is a chance to catch an empty trange and expand it if
  90. necessary.  How an empty trange comes into existence is a mystery
  91. to me.  (Empty x ranges can occur, I guess, due to a data file or
  92. being in polar mode.)
  93.  
  94. The trange, by the way, has an arbitrary default of [-5:5] (whereas
  95. the xrange default is [-10:10]).  This was a range suggested by Bill
  96. Schulz when I pinned him down on what would be "reasonable" one day.
  97. If you can think of any reason for any other range please let me know.
  98. The current range has the habit, by the way, of plotting over cyclic
  99. functions defined on [0:2*pi] such that dashed lines don't look good.
  100. There seems to be no real "solution" other than to avoid the default
  101. range where it doesn't make any sense.
  102.  
  103. Plotting, as described in my additions to gnuplot.doc, in parametric
  104. mode requires pairs of functions.  Consider the following:
  105.  
  106. plot [-3:3] [0:20] [-10:20] sin(t),t**2,'data.file',t,t**2
  107.  
  108. which has a trange of [-3:3] an xrange of [0:20] and a yrange of [-10:20].
  109. The plot consists of 3 curves: sin(t),t**2; the 'data.file' points;
  110. and the plot of t,t**2.  The last, of course, could be done in 
  111. non-parametric mode as simply x**2.  In parametric mode, you have to
  112. be finished defining a parametric pair (an x-function and a y-function)
  113. before you can put in a `with' or `title' modifier.
  114.  
  115. Ranges can be set on the plot command or with the `set [xyt]range'
  116. command.  As an added benefit, when in parametric mode, the xrange
  117. can be autoscaled.  This is true because, like the yrange, the xrange
  118. is now a computed entity.
  119.  
  120. Finally, I decided that the data file, as ordered (x,y) pairs, could affect 
  121. the xrange but not the trange.  Hence plotting the following:
  122.  
  123. plot sin(t),cos(t),'data.file'
  124.  
  125. Where 'data.file' only has points in the positive x range will cause
  126. the plot of sin(t),cos(t) to take on x values only in the positive
  127. x range.  Another option was to make 'data.file' x values affect the
  128. working t range of the parametric function.  This did not seem like
  129. a good idea, however, and some effort was made to avoid this affect.
  130. The best plan might have been to ignore the 'data.file' ranges
  131. all together when in parametric mode.  I hope someone will think
  132. on this issues and voice an opinion at some point in the future.
  133.  
  134.  
  135. UNFINISHED ISSUES
  136.  
  137. There are some unfinished issues that I ran across in doing the parametric 
  138. implementation.  These are not so much parametric related issues as 
  139. they are general gnuplot issues that the parametric work brought to the 
  140. forefront.
  141.  
  142. First, what is the use of global xmin and xmax changes when a
  143. data file is plotted?  In other words, why would xmin and xmax
  144. change for the whole session when the data file was just mentioned
  145. once on a command line.  It seems that this global behavior is
  146. unwarranted.  The routine in question, get_data() simply checks 
  147. against the global xmin,xmax rather than the local x_min, x_max
  148. that eval_plots() will eventually pass on to do_plot().  The change
  149. wouldn't be hard to do, and I'm hoping someone will decide it is
  150. a good idea for a later bug patch.
  151.  
  152. Also, the default style for each individual plot depends upon the
  153. line_type and point_type of the plot.  Gnuplot currently increments
  154. the line_type (and possibly point_type) for each plot that it is
  155. plotting regardless of the type of plot in question.  For instance,
  156. plot x,'data.file',x**2 will generate x with line_type of 1 and
  157. x**2 with line_type of 3 while plot x,x**2,'data.file' will use a
  158. line_type of 1 and 2 respectively.  This also seemed expedient, but
  159. not quite right in terms of what would be nicest behavior.  It seems
  160. to me that line_type's are scarce resources and should be used 
  161. (incremented) only as needed.  In other words, since the 'data.file'
  162. plot isn't using a line_type at all, the second line_type should be
  163. saved for the x**2 plot, and the two plots would look the same
  164. instead of being different as they are now.
  165.  
  166. Of course, neither of these issues are critical.  We've been living with
  167. them comfortably for the whole life of at least the latest gnuplot 2.0
  168. release.  It seems to me, however, that both these problems are minor
  169. oversights and could easily be corrected in the near future.  Rather
  170. than do that here, as part of the parametric work, I decided that would
  171. be a change to the previous non-parametric behavior and should not be
  172. "snuck in" without a bit of debate.
  173.  
  174. John Campbell   jdc@naucse.cse.nau.edu   or CAMPBELL@NAUVAX.bitnet
  175.  
  176.  
  177. SCO CGI DRIVERS 
  178. ---------------
  179. copyright 1990 Ronald Florence
  180.  
  181. The 'cgi' driver added to Gnuplot 2.0 will work with the SCO CGI drivers.
  182. To use the CGI drivers, you will need to have the CGIPATH and CGIDISP 
  183. and/or CGIPRNT environmental variables declared.  The CGI output mode 
  184. can be controlled by setting an ASPECT environmental variable.  The 
  185. default is to use full-screen/full-page.
  186.  
  187. Two CGI terminal options are provided.  If you have either CGIDISP or
  188. CGIPRNT declared, Gnuplot 2.0 will start with terminal set to "cgi".
  189. If both devices are declared, you can "set terminal hcgi" to select
  190. the CGIPRNT (hardcopy) device instead of the default CGIDISP device.
  191. This is useful when you are proofing a graph on the display before
  192. sending output to a printer or plotter.
  193.  
  194. The driver has been tested with the SCO vga, ega, cga, hercules, and
  195. laserjet drivers.  If you are using a monochrome VGA display you may
  196. need to include "-DVGA_MONO" in your Makefile to work-around the
  197. broken SCO monochrome VGA display drivers.  The CGI driver includes 
  198. a built-in pause-for-any-key feature which makes the Gnuplot
  199. "pause -1 prompt" command redundant.
  200.  
  201. Permission is hereby granted for unlimited non-commercial use of this
  202. code, on condition that the copyright notices are left intact and any
  203. modifications to the source code are noted as such.  No warranty of
  204. any kind is implied or granted for this material.
  205.  
  206. Please send suggestions and comments to ron@mlfarm.com.
  207.  
  208.  
  209. MODIFICATIONS IN PATCH 2.
  210. -------------------------
  211.  
  212. Tony McGrath <phs145p@vaxc.cc.monash.edu.au>
  213.   Fixed replot line length calculation (command.c).
  214.  
  215. John Engel <jengels@bnandp51.bitnet>
  216.   vttek terminal driver (term/tek.trm).
  217.   vms additions for tektronix drivers (term.c).
  218.   hpljii driver - now uses the same bitmap routines as the epson driver
  219.    and will work on a PC (term/hpljii.trm).
  220.   
  221. Russell Lang <rjl@monu1.cc.monash.edu.au>
  222.   Created term.c function 'void reopen_binary()' for PC (term.c).
  223.   Removed HPLJET driver.
  224.   Added an error check for bad xrange when plotting functions -
  225.    this came up when an attempt is made to plot an non-existent
  226.    data file with x autorange, followed on the next command line
  227.    by an attempt to plot a function (command.c).
  228.   Added new bit mapped graphics (bitmap.h, bitmap.c, term.c,
  229.    epson.trm, hpljii.trm).
  230.   Removed PROPRINTER driver - use epson_lx800 instead.
  231.   nec_cp6 monochrome drivers also work with epson lq-800.
  232.  
  233. Rik Harris <edp367s@monu6.cc.monash.edu.au>
  234.   Fixed 'set dummy' command (command.c).  
  235.   Previously crashed if dummy variable missing.
  236.  
  237. Dave Kotz <dfk@cs.duke.edu>
  238.   added x11 autosense code (term.c).
  239.   empty gnuplot.doc lines now produce empty lines in .ms
  240.    or .tex files.  (doc2ms.c, doc2tex.c)
  241.   check for zero argument in call to x**(-n). (internal.c)
  242.  
  243. James Dugal <jpd@usl.edu>
  244.   Fixed messy octal constants (epson.trm).
  245.  
  246. Jeff Kellem <composer@chem.bu.edu>
  247.   Fixed ceil and floor to work as per documentation - for complex argument, 
  248.    return integer ceil/floor of real part (standard.c).
  249.   Changed gnuplot_x11.c to use default screen (gnuplot_x11.c).
  250.  
  251. Anthony Thyssen <thyssen@batserver.cs.uq.oz.au>
  252.   (Ideas by Anthony, code by Russell Lang)
  253.   Changed 'plot with impulses' to draw impulses to origin (graphics.c).
  254.   Added 'plot "datafile" using y|xy|yx "scanf string"' (command.c).
  255.  
  256. Greg Montgomery <greg@turbo.atl.ga.us>
  257.   Turbo C BGI drivers now use far code, to avoid segment _TEXT 
  258.    overflow with TC++ (makefile.tc, linkopt.tc, plot.c).
  259.  
  260. Sebastian Kremer <sk@thp.Uni-Koeln.DE>
  261.   Kyocera laser printer driver (term/kyo.trm).
  262.  
  263. John Eaton <jwe@emx.utexas.edu>
  264.   set [no][xy]zeroaxis  (graphics.c, setshow.c, setshow.h).
  265.  
  266. John Campbell <jdc@naucse.cse.nau.edu>
  267.   Parametric plots (command.c, misc.c, setshow.c, setshow.h).
  268.  
  269. Ronald Florence <ron@mlfarm.com>
  270.   SCO CGI driver (term.c, term/cgi.trm).
  271.  
  272. Chip Rosenthal <chip@chinacat.Unicom.COM>
  273.   Fixes a security problem with ".gnuplot" files (plot.c).
  274.   Add pipe option for output file on Unix.  Can now say
  275.   'set output "|more" '.
  276.  
  277. Ed Kubatis <ejk@uxh.cso.uiuc.edu>
  278.   Ignore interrupts in gnuplot_x11.c (gnuplot_x11.c).
  279.   Added X11 Motif support (gnuplot_x11.c).
  280.   Demo files for 'plot using'.
  281.   Added ifdef GETCWD for HP-UX (command.c).
  282.   Fixed RS/6000 AIX 3.1 build problem (misc.c).
  283.  
  284. Ronald Hartranft <RJH2@NS.CC.Lehigh.EDU>
  285.   Base work on new bit mapped graphics routines.
  286.  
  287. Alex Woo <woo@pioneer.arc.nasa.gov>
  288.   Changed -DGAMMA to -DGAMMA=gamma so that -DGAMMA=lgamma
  289.   can be used on the NeXT (standard.c, makefiles).
  290.  
  291. End of README2.patch
  292.