ChangeLog for dsslib
====================
Version 5.12.2 - 2020-09-17 (RDS)
------------------------------
+ DScomp.cc
Avoid compressing regions if one of them is a MASK
(SPR-7562)
Version 5.12.1 - 2020-09-08 (RDS)
------------------------------
+ DataSubSpace.cc
Remove DssCompForm warning for MASK/IMAGE
constructs (SPR-7561)
Version 5.12 - 2020-06-08 (AI)
------------------------------
+ New definition of Dope vector templates. SOC-SPR-7550
Version 5.11 - 2018-02-13 (EO)
------------------------------
+ This is a new major version of this package including a new GNU
Public License Text disclaimer required to distribute the SAS source
code to the Astronomical Community under the terms of the GNU Public
License. The text as it is shown below is the same that has been
included in all SAS source code files.
ESA (C) 2000-2018
This file is part of ESA's XMM-Newton Scientific Analysis System
(SAS).
SAS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SAS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SAS. If not, see .
---------------------------------------------------------------------
Version 5.10 - 2015-02-13 (AI)
-----------
+ New timestamps for DssLexer.l and DssParser.y files
Version 5.9 - 2014-12-04 (AI)
-----------
+ Doc modified to include "_" simbol in latex.
Version 5.8 - 2014-04-15 (AI)
-----------
+ gcc4.8.2 portability changes.
Version 5.7.3 - 2013-11-12 (AI)
-----------
+ New DssParser.h file (generated with bison 2.3)
Version 5.7.2 - 2013-11-11 (AI)
-----------
+ replaced 'unsigned long' types with 'uint32_t' to preserve bit flag
conversion between 32 and 64. At least, we found an error
converting the bit flag '#XMMEA_SM' in 64bit platforms.
Version 5.7.1 - 2012-03-29 (AI)
-----------
+ (DScomp.cc) Bug in block extension numbering fixed. SOC-SPR-6490
Version 5.7 - 2011-03-14 (AI)
-----------
+ (f90.cc) Replacement of the "sprintf" call by a better treatment of
character string memory allocation.
Version 5.6.6 - 2010-02-19 (EO)
-------------
+ Since the previous change did not work at all on Mac OS X, I am now checking
the option to remove any direct inclussion of Gti.h. Therefore, I did remove
#include from DScomp.cc and DSgtiBlock.cc and keep it out as well in
DataSubspace.h. Such removal has passed successfully under Mac OS X and Linux.
Version 5.6.5 - 2010-02-18 (EO)
-------------
+ Attempt to get rid of error message in Mac OS X about undefined symbol
Gti::ETERNITY (defined in selectlib/src/utils/Gti.h), in libdss.dylib
due to flat_namespace:
- Including explicitly #include where needed:
* src/dsscore/DScomp.cc
* src/dsscore/DSgtiBlock.cc
- Removing #include from src/dsscore/DataSubspace.h.
Version 5.6.4 - 2010-02-03 (EO)
-------------
+ src/dsscore/Makefile: dss.h removed from INTERFACES to avoid creation of
a fake soft link in $SAS_DIR/include when processed by Make.include.
Version 5.6.3 - 2009-07-06 (AI)
-------------
+ Modifications is several source files to make dal gcc 4.3 compliant.
Version 5.6.2 - 2009-05-19 (AI)
-------------
+(DScomp.cc) CCDID keyword added to the GTI tables.
SOC-SPR-6507 changes removed.
Version 5.6.1 - 2009-05-18 (AI)
-------------
+(DScomp.cc) Limit on the GTI extesion changed.
Version 5.6 - 2008-10-09 (AI)
-------------
+(DScomp.cc) Added the CCD number to the GTI extensions name.
Closes SOC-SPR-6507.
Version 5.5.7 - 2008-06-26 (AI)
-------------
+(dssutil.f90) pointers variables in dssRanges interface have been changed
to allocatable variables. SOC-SPR-6457 fixed.
Version 5.5.6 - 2005-08-04 (AI)
-------------
+ (DSgtiBlock.cc) level warning message changed.
Version 5.5.5 - 2005-06-09 (AI)
-------------
+ (DataSubspace.cc) Removed some auxiliary variables.
Version 5.5.4 - 2005-05-31 (AI)
-----------
+ (DataSubspace.cc) Fix a bug in Data subspace keywords (MTYPE).
Closes SOC-SPR-2613.
Version 5.5.3 - 2005-05-26 (AI)
-----------
+ (DataSubspace.cc) Check that the DSS component vector has
at least one component. Closes SOC-SPR-2583
Version 5.5.2 - 2004-11-17 (AI)
-----------
+ (DSgtiBlock.cc) Identical STDGTI extensions are now written to the
final event file (SPR-2578). A warning message appears if two or more
STDGTI are identical.
Version 5.5.1 - 2004-08-20 (RDS/AI)
-----------
+ (src/DataSubspace.cc/h, added new routine realextent so that
DScomp.cc, DSfilter.cc, the extent of RA/DEC dss selections
DSrange.cc, DSregionBlock.cc, can be returned (SPR-2547)
DSregion.cc, DSrangeBlock.cc)
Version 5.5 - 2003-12-05 (AI)
-----------
+ test/testDss.cc file modified.
Version 5.4 - 2003-03-13 (GV/SOC)
-----------
+ Add param to depend file, or build fails on Mac where dsslib sorts
ahead of param.
Version 5.3 - 2003-02-28 (GV/SOC)
-----------
+ (DssLexer.cc,l,DssParser.cc,y) remove inclusion of values.h, add
include . This makes it compile on Mac OS X.
Version 5.2 - 2003-01-30 (DH)
-----------
+ Package now tracks range filters which can never select anything, and does
not propogate or write out dss components containing such filters. Closes
SSC-SPR-3014.
+ Range filters of TIME now get converted (at least in most cases) to GTI
filters, which should be subsequently merged with the other TIME GTI filters.
Version 5.1 - 2003-01-21 (DH)
-----------
+ Fix bug in test harness which was still referencing the old style include
file.
Version 5.0 - 2003-01-07 (DH)
-----------
+ Change version number to reflect fact that 4.0 was delivered without the
changes to the bit mask format.
Version 4.1 - 2002-09-30 (DH)
-----------
+ Change directory name src/dssbuild src/build.
+ Get rid of dss.h in favor of DataSubspace.h. Maintaining two
redundant header files really wasn't accomplishing anything.
+ New format for storing bit mask values in DSVALn keywords, in order
to conform with the agreed XMM and Chandra datasubspace conventions.
+ Replace dynamic_cast test with a switch statement on Shape::type() in
the DSregionFilter constructor.
+ Check for and eliminate redudant GTI extensions when writing the
data subspace to a fits file. Closes SSC-SPR-2934.
+ Add dssprint task to test harness.
Version 4.0 - 2002-08-08 (DH)
-----------
+ Change f90 interface for dssRanges function to avoid name clash
and make the interface more convenient. Closes SSC-SPR-2156.
+ Add support for parsing and ingesting of region filters which
specify only the region file. Closes SSC-SPR-2929.
+ Fix bug in the operator&() method of the Range class, which
was not properly considering Unbounded ranges in some cases.
Also properly adjust max value for Ranges when changing types.
Closes SSC-SPR-2954.
Version 3.17 - 2002-07-23 (GV/SOC)
------------
+ Re-upload of 3.16.8 in the development track.
Version 3.16.8 - 2002-07-22 (JBa)
--------------
+ changes in implementation files in order to comply with ANSI C++
Version 3.16.7 - 2002-07-01 (UL)
--------------
+ changes in various source files to render usage of 'stringstream'
standard compliant
Version 3.16.6 - 2002-05-14 (DH)
--------------
+ Fix bugs in combining of data subspace ranges. Closes SPR 2865.
Version 3.16.5 - 2002-02-25 (DH)
--------------
+ Remove debugging message that had inadvertenly been left in.
Version 3.16.4 - 2002-02-04 (DH)
--------------
+ Fix bug in copying of block filters that use temporary files.
Version 3.16.3 - 2002-02-04 (DH)
--------------
+ Fix problem with copying of Rhombus shape, which was getting turned
into a Box.
Version 3.16.2 - 2002-01-28 (DH)
--------------
+ Fix bug in 3.16.1 with writing of selection expressions for
box functions. Also modify the extent() method so it returns
sensible values for the box function as well.
Version 3.16.1 - 2002-01-28 (DH)
--------------
+ Bug fix for box functions in dss parser was not complete. Now makes
adjustment for full width to half width when writing out a selection
expression as well.
Version 3.16 - 2002-01-18 (DH)
------------
+ Fix bug in the explicit copy of DSregionFilter objects. Rotated shapes
were not being recognized as such in the copy process.
+ Replace with in Range.cc as the preferred place to obtain
the DBL_MAX macro. This should work on linux.
+ Write MTYPE and MFORM keywords to event files specfying the components of
2-d filters used in the dss.
+ Modify cleanDss funtion so that it takes into account ranges with a value of
[Inf] in an efficient way.
Version 3.15 - 2002-01-18 (DH)
------------
+ Change DSblockFilter class so that in only opens the associated block when
really necessary by storing the block name and the parent name in the class.
Greatly reduces the number of times the block has to be opened (in one test,
from over 300 to 15).
+ Fix bug in dss parser which was not passing the proper argument values to
the box and rectangle functions.
Version 3.14 - 2001-11-21 (DH)
------------
+ Generate unique block names for new gti extensions when combining gti's in
DScomp::compressRegions(). Gets rid of some annoying warning messages.
+ DScomp::compressRegions() now compresses range filters, as well as gti
and region filters. Implement & operator for range lists inorder to
facilitate this.
+ Real ranges are now written to keywords and in selection expressions in
exponetial format.
Version 3.13 - 2001-10-16 (DH)
------------
+ Change dss parser so that it will except 'true' in filtering expressions.
A DSS component with no filters is considered to be 'true'. Also modify
the writing of data subspace info in DataSubspace.cc to deal with this.
+ Fix geoExtent function, which in some cases was not making a box big enough
to contain some rotated shapes.
+ Update documentation for the extent method, to try and make the description
more clear.
Version 3.12 - 2001-10-11 (DH)
------------
+ Fix f90 test harness, which had been replaced with a temporary file
(which had a bug!). Sorry, Giuseppe.
Version 3.11 - 2001-09-24 (DH)
------------
+ Changed all standard containers to use the explicit std:: scope operator.
+ Fix initialization bug in DScomp.cc which was upsetting the optimizer.
Version 3.10 - 2001-09-19 (DH)
-----------
+ Add new hasFilter method to the DataSubspace class.
+ Add clear() method to the DssBuilder class, to delete dss objects
and free memory. Called at the end of the getDss method.
+ Add contains() method to the Range class.
Version 3.9 - 2001-09-03 (DH)
-----------
+ Implement negation of DataSuspaces. The '!' operator works for the
DataSubspace class, and is implemented for all filter types except
bit masks and region masks.
+ Add support for logical not to the dss parser and builder. Logical
not's should no longer need to be propogated thru an expression by
hand. Closes SCR-50.
+ Add include statement for cstdio to DScomp.cc .
Version 3.8 - 2001-08-13 (DH)
-----------
+ Change system and compiler include statements to conform to standard.
+ Dss parser now handles the '+' and '[]' conventions for specifying fits
file extensions. Closes SSC-SPR-2082.
+ Make the DSfilter::region() method work with region block filters. Using
this functionality, modify DScomp::compressRegions() method to work with
block filters. Closes SCR 51.
+ Add attribute to the DataSubspace class which indicates whether an error
occurred when building the dss from the parser. Closes SSC-SPR-2029.
+ Trap case where data subspace is so large its indexes exceed fits keyword
name size. Issue a warning message.
+ Rationalize code for renaming blocks with duplicate names.
+ Modify DScomp::compressRegions() so that it will combine GTIs as well as
regions.
Version 3.7 - 2001-08-06 (DH)
-----------
+ Include values.h in DssParser and DssLexer. May fix some compile
problems on Debian linux.
+ Fix SSC-SPR-2465, which is basically a follow on from SSC-SPR-2023.
+ Fix SSC-SPR-2388 and (probably) SSC-SPR-2190. Datasubspace info was
not getting properly deleted from a Block.
Version 3.6.1 - 2001-05-25 (DH)
-------------
+ Fix SSC-SPR-2023. If the dss writer finds a block name clash, it now renames
the new block to something else.
Version 3.6 - 2001-04-19 (DH)
-----------
+ Add new DataSubspace and DScomp method, called compressRegions.
Tries to combine GeoRegions from the filters in a component into
fewer filters.
+ Parser no longer tries to distinguish different axes and combine expressions
for region filters in a component. This was just causing headaches. Instead
regions are combined after parsing using the new compressRegions method. This
closes SSC-SPR-2266.
Version 3.5 - 2000-12-22 (UL)
-----------
+ a couple of trivial changes to make the optimizer happy
Version 3.4.3 - 2000-11-14 (DH)
-------------
+ Fix SSC-SPR-2071, Cannot negate region in paratheses.
Version 3.4.2 - 2000-10-31 (DH)
-------------
+ Add info file.
Version 3.4.1 - 2000-10-12 (DH)
-------------
+ Parser now excepts parentheses around axis names. Closes SSC-SPR-1949.
+ Parser now excepts numbers of the form 1E2, as well as 1.E2.
+ Change to new convention for representing octal numbers (now
preceded by an 'o').
+ Accept real-valued ranges for integer-valued columns. Reals are truncated
to integers, with a warning message.
+ Change software for detecting block filter types to be more robust,
with a clearer error message in case of failure.
Version 3.4 - 2000-10-02 (DH)
-----------
+ Error catching for the parser now done in DssBuilder:getDss method.
Version 3.3 - 2000-09-25 (DH)
-----------
+ Fix bug in Range::maxRange method which was causing crashes on DEC. Could
also be have been causing some of the 'out of memory' problems.
Version 3.2 - 2000-07-27 (DH)
-----------
+ Add missing '#include ' to DSregion.cc
Version 3.1 - 2000-07-19 (DH)
-----------
+ Incorporates changes up to version 3.0.6 .
+ Change projection of axes in selectExpression, so that if both the components
of a 2D axis are listed, then the axis is included in the expression.
+ Add method 'extent' to the DataSubspace, DScomp, and DSfilter methods. Update
documentation to correspond.
+ Implement volume calculation for Region and RegionBlock type filters.
+ Add support in parser for mask filters which do not use the 'in' operator.
Closes SPR 1916.
Version 3.0.6 - 2000-06-29 (DH)
-------------
+ Rework parser to handle logical combination of filters in simpler,
better fashion. Some of the constraints on the parser have been removed.
Version 3.0.5 - 2000-06-26 (DH)
-------------
+ Fix bug with clearing of list in DSS builder. Fixes SOC SPR 1540.
Version 3.0.4 - 2000-06-22 (DH)
-------------
+ Add isGlobal method to DataSubspace class. Update C++ API documentation.
Version 3.0.3 - 2000-06-15 (DH)
-------------
+ Add support for parsing region function filters of the form
(...,X,Y) . Closes evselect SPR 1775.
Version 3.0.2 - 2000-06-15 (DH)
-------------
+ Enhanced error message for DSS parsing, in response to evselect SPR 1775.
+ Prevent checking of unitialized values in Range objects. Closes evselect
SPR 1778.
+ Increase accuracy of ranges stored in keywords to 15 digits. Store integer
valued ranges as integer 32 instead of interger 16. Closes evselect SPR
1814.
Version 3.0.1 - 2000-06-01 (DH)
-------------
+ Fix SPR 1698, dsslib chokes on 'bad' gti files
+ Fix evselect SPR 1692, GTI filter set not released
+ Fix evselect SPR 1697, task fails if selected time interval has no events
Version 3.0 - 2000-05-24 (DH)
-----------
+ Fix parsing of bit mask filters, so that the paser recongizes the form
required for selectlib (closes evselect SPR 1637).
+ Adjust DSS to account for the change in sense of bit mask filters (this
change is not backward compatible).
+ Add code in parser to give 2d region filters reasonable names, based on
the value of their components.
Version 2.8 - 2000-03-08 (DH)
-----------
+ selectExpression() method was producing range specifictions which could
not be parsed by selectlib. Fixed.
Version 2.7 - 2000-02-29 (DH)
-----------
+ Add cleanDSS utility function to the library.
+ Change format for writing axis components to be compatible with Chandra.
+ Fix intialization problem which was causing problems when trying to use
the dss within evselect within xmmselect.
Version 2.6 - 2000-02-18 (DH)
-----------
+ Change method arguments 'DSS::FilterType &' to 'const DSS::FilterType &'
in the API.
Version 2.5 - 2000-02-08 (DH)
-----------
+ Fix SPR 1455 "[PATCH] fix for fix of SPR-148{8,9} (unresolved symbols)"
Version 2.4 - 2000-02-25 (DH)
-----------
+ Additional expilicit template instantiation declarations needed for Dunix.
Version 2.3 - 2000-01-31 (DH)
-----------
+ Accidentally delivered old version of ddslib in 2.2. Delivered updated version.
Version 2.2 - 2000-01-28 (DH)
-----------
+ Iron out several bugs in dsscore.
+ Add support data subspace merging in dsscore.
+ Change block filters so that instead of initializing with a block pointer, they are
initialized with a Dal type block specification ("FileName:Block").
+ Expand parser to allow the use of >,<,>=,!= and == in filter expressions.
+ Change parser to associate filter names with table columns where appopriate.
+ Use DSS merging to expand parser to allow more complex nesting of filters.
+ Do not clobber files made by bison and flex, so most sites do not need these utilities.
Version 2.1 - 1999-12-17 (UL)
-----------
+ minor modification in src/dscore/DSregion.cc to avoid compiler warning
+ reconciled with selectlib-4.23
Version 2.0 - 1999-11-18 (UL)
-----------
+ added functionality to convert a selectlib expression into a
DataSubspace object
+ added test harness to test DSS conversion
+ changes directory structure (src dir now consists of two subdirs:
dsscore + dssconstr)
Version 1.3 - 1999-09-13 (DH)
-----------
+ Updates to documentation macros, error messages and references.
+ Fix bug which caused faulty generation of temporary file names
on DEC - closes SOC SPR 803.
Version 1.2 - 1999-06-15 (DH)
-----------
+ Fix SPR 1006 - Wrong type for string::size() caused
problems on Digital Unix.
Version 1.1 (DH)
-----------
+ Fix DEPEND file.
Version 1.0 - 1999-05-19 (DH)
-----------
+ First release. Some functionality missing
(see Implementation Status and TODO sections of the documentation).