To Maurice and Andrew:

I think you will be interested both in the history of this issue and
also how I resolved it. If either of you think I screwed up this fix
of Maurice's (1994) fix, please let me know!

Basically Maurice's fix emitted M commands for _every_
state change other than PLSTATE_WIDTH.  The complete list of those
state changes (as far as I know) other than PLSTATE_WIDTH is
PLSTATE_FILL, PLSTATE_COLOR[01], and PLSTATE_CMAP[01] and evidentally
one or more of those which are normally no-ops for the ps device (i.e.,
PLSTATE_FILL and PLSTATE_CMAP[01]) have been triggered by rounding
differences with the result that isolated M commands are being emitted
for one type of rounding compared to another.

My fix essentially returned the M command emitting code back to what it was like
prior to Maurice's fix but with the undefined variable issue
fixed; the M commands are now only issued after a C command,
i.e., only for case PLSTATE_COLOR[01] and only if the relevant
variables for the M command are defined.

Andrew's psttf device driver code is partially based on the ps device
driver code and evidentially Maurice's fix propagated to the psttf
device driver so I had to fix that as well.

I still have no idea why the C command must be followed by an M
command for PostScrit.  That decision was made before 1994. 
Hopefully, Maurice or Andrew will be able to comment on the reason for
this.

For further details about the current fix and Maurice's fix see
<http://sourceforge.net/p/plplot/plplot/ci/3028bea51568a023dcf3612a664a8a4345e91b14>
and
<http://sourceforge.net/p/plplot/plplot/ci/07eab71b70249ac03a0f89db4061583d968f7365>.

Note the current fix likely does not get rid of all causes of extreme
sensitivity of the psc device results to rounding issues, but I do
recall a number of such issues in the past that also involved extra M
PostScript commands being emitted by one language compared to another.
Therefore, I believe this current fix will at least get rid of a
substantial subset of such issues, and it certainly gets rid of that
issue for the Python/C special test comparison of the new example 8 results.

Tomorrow after removing some special testing hacks and throughly
testing the final new Python example 8 against the repository version
of the C code, you should see a commit from me of that new Python code,
and I hope my further planned changes to example 8 for Octave and Java
are a lot less interesting than they have been for the Python case!

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to