Here are the items on my ToDo list for time handling after this weekend's
release of PLplot. Most of these items have been mentioned before, but I
thought I should collect everything in one place, and the first two items
are entirely new.

* Change the libqsastime API.  This has not been mentioned before, but I
plan to store the continuous time variable that represents the scaled
and transformed time as two doubles rather than one double. The first double
will store the integer part of the scaled and transformed time result
(exactly if the signed integer will fit in 54 bits), and the second double
will store the fractional part of the scaled and transformed time result.
The current one double used to represent scaled and transformed continuous
time just introduces too much numerical error for those who might want to
use libqsastime independently of PLplot.  Of course, PLplot must use the one
double approach (since our independent variables for plotting are all stored
that way), but I am of the opinion that the conversion from the high
numerical precision of libqsastime to the reduced PLplot time precision
should be done at the PLplot level and not forced on libqsastime itself.

* Improve the information hiding for libqsastime.  This is currently in a
bit of a mess where some internal functions that normally should be hidden
are made visible so they can be tested by our various test routines.

* Implement leap second intervals in the transformation from broken-down to
continous time in libqsastime.

* Implement additional testing procedure that does comprehensive test of
libqsastime against a file generated on a (Linux 64-bit) system where we
know the result is reliable because of the additional possibility there of
testing against 64-bit glibc time routines for Linux.  Because the
comparison will be against a file, this additional testing procedure will be
completely independent of system time routines on all platforms.

* For PLplot stream initialization already provides a default transformation
between continuous and broken-down time for each different stream.  The way
this works is that if plinit is called for a given stream and if the user
has not already called plconfigtime for that stream, then plconfigtime is
called to establish a PLplot default transformation (currently this is
seconds since the Unix epoch, but that default may change) in the
transformations between continuous and broken-down time for that stream.
However, this needs to be followed up by calling plconfigtime (which
reconfigures the time transformation in libqsastime, but with all
transformation data stored in a QSASConfig struct pointed to by
plsc->qsasconfig) for every change in stream and whenever a stream is copied
so that if a user calls plconfigtime (before or after plinit for the
stream), then that call will only affect the current stream.

* Implement language wrappers (where needed) for the core library functions
plbtime, plctime, and plconfigtime.

* Python example 29 needs to be reinstated to revision 9662 (which already
expands on what is implemented for the C version of example 29), and then
expanded some more to thoroughly test the PLplot time handling including
some of the more interesting time representations such as UTC, TAI, TT, TCG,
and GPS time.

* The expanded Python example 29 needs to be propagated to C and all our
supported languages to test the above language wrappers for plbtime,
plctime, and plconfigtime.

* Document libqsastime visible API.

* Document PLplot plbtime, plctime, and plconfigtime routines that
wrap calls to libqsastime.

That's already a pretty long list, but let me know if you can think of
anything else that should be added to it.

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); PLplot scientific plotting software
package (plplot.org); 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
__________________________

------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to