ePiX -- CHANGELOG

Andrew D. Hwang            <ahwang@mathcs.holycross.edu>

December 21, 2002 (v0.8.8a)
 * (epix.1, helpfiles.sh, samples/makefigs) Correct for ".xp" extension

December 20, 2002 (v0.8.8)
 * (bash_completions, elaps, epix.el, POST_INSTALL, prepix) .epx -> .xp

December 16, 2002 (v0.8.8rc8)
 * (output.cc) Use tpic "sh" \special to get gray shading (Jay Belanger)

December 13, 2002
 * (output.cc) 
   - Off by 1 bug in gray()
   - Missing "long" flag in hex constant

December 12, 2002 (v0.8.8rc7)
 * (prepix) Internal variable renaming
 * (elaps) Accept .epx files correctly
 * (INSTALL, POST_INSTALL) epix.el instructions (partly moved from INSTALL)
 * (files, helpfiles.sh) Add epix.texi
 * (output.cc) 1025 shades of gray

December 06, 2002
 * (INSTALL, README) epix.el installation instructions

December 05, 2002
 * (bash_completions, epix.el) Handle epx extension

December 04, 2002 (v0.8.8rc6)
 * (prepix) 
   - Compile in temp directory
   - Introduce ".epx" extension
   - Recognized file extensions put in EPIX_EXTENSIONS

December 02, 2002
 * (All source and sample files) ePiX namespace introduced
 * (legacy.*) ePiX_legacy namespace
 * (sample.tex) Miscellaneous typos fixed, 12 -> 11pt

December 01, 2002 (v0.8.8rc5)
 * (output.*) gray(), controls gray depth in shaded objects
 * (plots.*) Jay Belanger's code for shaded plots

October 23, 2002
 * (arcana.cc) plot_profile() optimized slightly
 * (arcana.*)  plot_profile() takes optional lower momentum limit

October 20, 2002
 * (objects.*) 
   - Diameters of DOT, DDOT increased (to 3 and 2 pt resp. by default)
   - New function: dot(pair, double) (filled circle of specified radius)

October 19, 2002 (v0.8.8rc4)
 * (elaps) Option "-p" for additional LaTeX packages
 * (elaps) DVIPS_OPTS bug
 * (elaps) Options passed improperly to epix
 * (pre-install.sh) Use $INSTALL_DIR/share/epix/{config,notes,samples,tutorial}
 * (helpfiles.sh) 
   - Samples tarball unpacks in subdirectory, not unpacked in install
   - Samples, READMEs, and tutorial (incl. src) installed in directories above
 * (INSTALL, POST_INSTALL) Updated
 * (Makefile) Cleanup
 * (Tutorial) Pedersen's docs incorporated; contrib/doc -> epix_tex/contrib
 * (contrib/epix_ext.cc) Function/variable names updated

October 16, 2002 (v0.8.8rc3)
 * (files) 
   - bash_completions (for Ian MacDonald's programmable completion package)
   - epix.el (Jay Belanger's emacs mode)

October 13, 2002
 * VERSION removed from distribution

October 11, 2002 (v0.8.8rc2)
 * (elaps, files, globals.h, laps, prepix) Show current (minor) version number

October 09, 2002
 * (triples.*) V(triple&) -> V(triple)

October 07, 2002 (v0.8.8rc1)
 * (objects.cc) draw_[bold]arrow(): arrowhead path style bug (Torbjorn Vik)
 * (triples.*) New function, V(triple), projects triple to pair

October 07, 2002 (v0.8.7a)
 * (elaps, laps, prepix) Renaming:
   - Verbose option is "-vv", version is "-v"
   - Option/flag parsing: <script>_parse_options
   - Error message: <script>_die
   - Help: <script>_help
 * (elaps, epix) New functionality:
   - Help and version options
   - Accept suffix ".cpp"
 * (epix) Catch "no input file" error

October 06, 2002
 * (helpfiles.sh) Use "install" instead of "mv" for sample files
 * (helpfiles.sh) Add laps options

October 05, 2002
 * (helpfiles.sh) Line 74: $USER.$USER -> $USER:$GROUPS

October 05, 2002 (v0.8.7)
 * (elaps) --verbose option

October 04, 2002
 * (elaps) Option bug fixed, help option added
 * (laps)
   - Functionization
   - Options --verbose and --help added
   - "dvips" printer options (-Pamz -Pcmz) removed from default
   - Use latex (instead of pslatex) by default; --ps option for pslatex

September 30, 2002 (v0.8.7rc11)
 * (elaps) Let epix handle file errors, exit gracefully on failure
 * (elaps) Accept extensions [.eepic|.c|.cc|.C] in order

September 23, 2002 (v0.8.7rc10)
 * (elaps) Path bug: "./epix" -> "epix" (Jay Belanger)
 * (functions.cc, functions.h) abs(int) removed

September 21, 2002
 * (legacy.cc) Missing "comment" functions added

September 20, 2002 (v0.8.7rc9)
 * (elaps) Accept eepic files as input, correct "Title:" in eps file

September 15, 2002 (v0.8.7rc8)
 * (elaps) Null fileroot bug
 * (epix) Error handling functions, send error messages to stderr
 * (laps) Silence on success

September 15, 2002 (v0.8.7rc7)
 * (elaps, epix) Accept all meaningful compiler options (not -o, -b)
 * (epix, output.cc) Reformat output file header (print "by" from epix)

September 14, 2002 (v0.8.7rc6)
 * (elaps) Accept valid epix command line options
 * (elaps, epix) Silence on success
 * (laps) Direct the output with dvips option instead of shell redirection

September 10, 2002 (v0.8.7rc5)
 * (prepix) EPIX_CONFIG_FILE bug ("$HOME" evaluated at compile time)
 * (prepix) -static option added to compile line

September 06--08, 2002 (v0.8.7rc4)
 * (prepix) Compiler flags may be specified in $HOME/.epixrc
 * (samples.sh -> helpfiles.sh) Tutorial installed if sources are present
 * (epix.1) Updates

September 02, 2002 (v0.8.7rc3)
 * (laps, elaps) Printer options added to dvips lines (Walter A. Kehowski)

August 31, 2002
 * Documentation updated (for pyepix, etc.)

August 22, 2002
 * (CHANGELOG) Reformatted

August 18, 2002 (v0.8.7rc2)
 * (prepix) INFILE improperly defined

August 05, 16, 2002 (v0.8.7rc1)
 * (prepix) Additional includes/libs through command line options
 * (globals.h) #define statements replaced by const definitions
 * (all source files, globals.h) Systematic copyright notices added

July 28, 2002 (v0.8.6rc6 -> 0.8.6)
 * (Several source files) Replace "Magic number" with "Hardwired constant"
 * (globals.h) EPIX_ITERATIONS reduced from 1000 to 200
 * (triples.cc) rot(), rotates <viewpt> about a coordinate axis
 * (plots.cc) shadow(), plots projection of space curve to a plane 

July 27, 2002 (v0.8.6rc5)
 * The following accept pair- or triple-valued arguments:
  - (plots.cc) adplot, clipplot, tan_line, envelope, tan_field, arrow, 
    dart, and vector fields, ode_plot, flow_plot
  - (geometry.cc) plot_R and front/back variants
  - (meshplots.cc) wiremesh
 * Step sizes in plot routines computed once, declared const
 * (samples/) Several files updated to use new plot syntax

July 26, 2002 (v0.8.6rc4)
 * (output files) epix_comment(), unified comment function
 * (prepix) Shell script writes name of source file/compile time to output
 * (curves.cc) Diameter of CIRC, RING, DOT, DDOT is %.3f instead of %g

July 25, 2002 (v0.8.6rc3)
 * (pairs.cc) Orientation bug in V()
 * (plots.cc) Unnecessary cases removed from space curve plotting
 * (plots.cc) Parametric plots accept pair- or triple-valued arguments
 * (plots.cc) flow_plot(), draws the image of a plane curve under planar flow

July 24, 2002 (v0.8.6rc2)
 * (output files) Prefix-style names removed from the "core" library
 * (Makefile, files, legacy.cc) Prefixed objects moved to legacy module/target

July 20, 2002 (v0.8.6rc1)
 * (output files) Internal symbols renamed with epix_ or EPIX_ prefix.

July 19, 2002
 * (curves.*, geometry.*) Hyperbolic line routines moved to geometry
 * (output.*) Line styles (solid...) separated from line widths (plain...)
 * (all source files) Path styles made declarations instead of name prefixes

July 18, 2002
 * (plots.cc) Simpson's rule used to calculate integrals
 * (plots.cc, samples/calculus.c) plot_int(), handles non-endpoint lower limit
 * (plots.cc) tan_line(), plots tangent lines to paths
 * (plots.cc) envelope(), plots family of tangent lines to a path
 * (objects.cc) Line() may be specified by a point and slope

July 15, 2002
 * (geometry.cc) (front/back)plot_R(), plot_N/S, curves on the unit sphere
 * (triples.cc) "basis" (orthonormal triple) class and associated routines
 * (all .cc files) Path style controlled by global int

July 13, 2002 (v0.8.5a)
 * (update_figs.sh) Destructive sed failure bug (GNU sed unaffected)

July 10, 2002 (v0.8.5)
 * (meshplots.cc) edge_seek() removed
 * (samples/) Several small changes

July 9, 2002 (v0.8.5rc4)
 * (samples/sample.tex, contour.c) Variable name conflict fixed
 * (objects.cc) label() with alignment had arguments in the wrong order

July 8, 2002 (v0.8.5rc3)
 * (output.cc) raw_print(), truncation bug (changed %.2f to %g)
 * (objects.cc) New label alignment options:
   - label(base, "label text");
   - label(base, offset, "label text", label_posn);

July 5-6, 2002 (v0.8.5rc2)
 * (new file: INSTALL) Installation instructions separated from README.
 * (legacy.h) Obsolete functions removed from main source
 * (output.h) Primary colors (rgb, cmyk), bold, (un)fill macros, take no ()
 * (objects.cc) Lines take optional stretch factor
 * (objects.cc) dashline() stretch factor fixed
 * (contrib/epix_ext.cc) Zero stretch parameter added to draw_line
 * (curves.cc) Splines renamed; old routines defined as macros in legacy.h
 * (plots.cc) Deprecated routines macro-ized; header file cleaned up
 * (update-figs.sh) Updated to this version

June 28-9, 2002 (v0.8.4)
 * (output.cc) start_path(), dashlength/dot separation bug fixed
 * (globals.h) DOT_SEP changed to 40.0
 * (contrib/epix_ext.cc) hatch_polygon() partially fixed; pass vertices as refs
 * (Makefile) Sample files and tarball installed in share/epix
 * (output.cc) New functions:
   - stretch(), changes dashlengths and dot separation
   - pen("width"), changes the width of lines (double or string argument)
   - bold() and end_bold() re-implemented for compatibility
 * (samples.sh) Script to (un)install/test sample files
 * (testfigs) Incorporated into samples.sh and removed

June 27, 2002 (v0.8.4pre)
 * (contrib/epix_ext.cc) Add "#include <float.h>" (removed in version 0.8)
 * (prepix) Wrapper accepts file extensions .c, .C, and .cc

June 25, 2002 (v0.8.3c)
 * (elaps) Converts epix to encapsulated Postscript
 * (pairs.cc, triples.cc) Removed "inline" modifier from P() and polar()

June 24, 2002 (v0.8.3b)
 * (newshell.sh) sh script for users whose bash is not in /bin/bash
 * (README) Install procedure rewritten
 * (Makefile) Install flags fixed, general cleanup and commenting
 * (All shell scripts) Change #! line to call /bin/bash explicitly
 * (pre-install.sh, post-uninst.sh) New auxiliary scripts
 * (prepix) Generates wrapper script at compile time, using Makefile vars

June 16, 2002 (v0.8.3a)
 * (objects.cc) CIRC marker fixed

June 14, 2002 (v0.8.3)
 * (pairs.cc) V(), improperly returned (0,0) when viewpt parallel to z-axis
 * (plots.cc) clipplot() handles space curves; edge_seek() handles triples
 * (meshplots.cc) wiremesh(), wire-mesh plotting (no hidden line removal)
 * (lengths.cc) raw_len(triple), computes Cartesian length of a triple

June 10-11, 2002 (v0.8.2)
 * (contrib/epix_ext.*) S. D. Pedersen's package ported with Makefile target
 * (triples.h, triples.cc) Ordered triple class (* is cross product)

June 9, 2002 (v0.8.1b)
 * Minor errors corrected in sample document
 * (lengths.h) Add "#include <string.h>" to fix compile problem (Michael Somos)
 * (pkg script) Exclude CVS directories from tarball, remove pkg script

May 26-June 6, 2002 (v0.8.1)
Initial freshmeat announcement
 * Complete re-write in C++, with code re-organization
   - <pair>s may be manipulated with +, -, *, /, +=, etc.
   - "plot" replaces plot, paramplot, and plot3d
   - clipplot does parametric plotting
   - True color handling, rgb or cmyk models
   - V0.4 variable definition syntax (e.g., x_min=0;) unsupported

March 28, 2002 (v0.6.11)
 * (epix.c) Net(), create pair-of-integers data structure
 * (functions.c) proj1(x,y) = x, proj2(x,y) = y.
 * (plots.c) multiplot1(), multiplot2(), plot families of curves

March 20-22, 2002 (v0.6.10)
 * (arcana.c) transf(), draw image of a point under a linear transf of R^2
 * (arcana.c) reflect(), reflects a point about a line through (0,0)
 * (plots.c) draw_vector_field(), zero vector bug fixed

March 9, 2002 (v0.6.9)
 * (epix.c, epix.h) version string moved to header file
 * (plots.c) clipparamplot(), clipped parametric plotting

March 5, 2002 (v0.6.8)
 * (arcana.c) plot_profile(), while loop bug fixed
 * (arcana.c) std_F(), draw image of "standard F" under a linear transf
 * (meshplot.c) Rudimentary mesh plotting, poor-quality hidden line removal
 * (contrib) Svend Daugaard Pedersen's region-hatching package added

January 4, 2002 (v0.6.7)
 * (epix) Temporary binary created by shell script has unique name

December 3, 2001 (v0.6.7rc1)
 * (plots.c) data_plot() supports several LaTeX markers (+, x, o, <>, ^, v /)
 * (plots.c) Slope/dart field length bug fixed

November 16, 22-25, 2001 (v0.6.6)
 * (curves.c) disk_line(), hyperbolic lines in the Poincare disk
 * (epix.c, plots.c) plot3d(), space curve plotting and auxiliary routines
 * (All source/header files) printf statements replaced with fprintf(stdout)

August 16, 22, 2001 (v0.6.5: First public release)
 * (epix.c) bounding_box(), picture(), unitlength(), for defining variables
 * x_size, y_size declared extern double, set by begin()
 * pic_unit no longer of type "const"
 * (bold)swatch(), mask(), circ(), ring()
 * (lengths.c) x_size(), y_size() obsolete
 * (plots.c) BOX (4pt square), BBOX (2pt square) markers for data plots, 
     CIRC marker renamed RING
 * (arcana.c, curves.c, epix.c, plots.c) %.2f -> %g, truncated

August 11, 2001 (v0.6.4)
 * (functions.c) sup(), inf(), for functions on [a,b]
 * (epix.c) dart(), arrows with half-size heads
 * (plots.c) dart_field(), slope_field with dart heads
 * (epix.c) draw_arrowhead(), draw_shaft() take "width" parameter
 * (plots.c) slope field segments drawn from tail to head

August 9, 2001 (v0.6.3)
 * (epix.c, epix.h) Dashed, dotted paths handled uniformly
 * (lengths.c) h_scale(), v_scale() round small output to 0 (fix "e-" bug)
 * (testfigs.sh) Compile line searches parent directory for epix.h

August 6, 2001 (v0.6.2)
 * (testfigs.sh) "make test" target added
 * (epix.c, plots.c) line(), slope_field() segments have two points (not three)
 * (curves.c, plots.c) sqrt(a*a+b*b) replaced with GNU C function "hypot"

August 3, 2001 (v0.6.1)
 * (plots.c) slope_field(), segment length bug fixed
 * (plots.c) clipplot(), line break bug (introduced in 0.6) fixed
 * (plots.c)adplot(), rudimentary adaptive plotting
 * (lengths.c) Length scaling: scale() for points, stretch() for vectors
 * (epix.c) line_break() commented and slightly simplified

July 29-31, 2001 (v0.6: Nearly usable)
 * Output routines uniformized: 
 * Path style handling cleaned up: "draw_" functions introduced
 * New features:
   - Hyperbolic lines (upper half-plane)
   - Circular arrows
   - Dashed and dotted arrows and grids
   - Planar knot diagram primitives
   - Integer absolute value, gcd functions
   - Color primaries ("rgb" and "cmy")
   - Vector fields, slope fields, solutions of planar ODEs
   - Data plotting from file
   - More informative output header (version, figure size/offset)
   - Output size checking

July 21, 2001 (v0.4.3)
 * Angle limits bug fixed in dot-, dash-, boldarc()
 * Formatting bug in clipplot()

July 17, 2001 (v0.4.2)
 * circ(), spot() take <pair> input
 * dot primitive (filled spot 2 true pt in diameter) added
 * DOT_SEP changed from 16 to 40.0 to improve dotted plots
 * scale(), unscale() handle "pc" (picas)

June 23-27, 2001 (v0.4: The Cambrian period)
 * Documentation updated
 * (New file: functions.c)
 * Tangent fields
 * Source code split into pieces
 * Makefile rewritten, objects written into binary archive
 * Installation cleaned up; facilitate public installation
 * Arrows and vectors
 * fill(), Filled paths
 * native_ellipse(), arc() added
 * Capability for handling true unitlengths:
 * Preamble must contain definitions of pic_size and pic_unit
 * begin() is a function of void
 * label() offsets in true pts rather than Cartesian coords
 * Improved axis label spacing, labels generated from basepoint coordinates
 * Circles and spots; Cartesian coordinate grid
 * General cleanup: symbolic constants introduced, coordinates are %g, not %.2f

May 26, 2001 (v0.2: The pre-Cambrian period)
 * Floats changed to doubles
