summaryrefslogtreecommitdiffstats
path: root/funtools/doc/changelog_beta.html
diff options
context:
space:
mode:
Diffstat (limited to 'funtools/doc/changelog_beta.html')
-rw-r--r--funtools/doc/changelog_beta.html953
1 files changed, 953 insertions, 0 deletions
diff --git a/funtools/doc/changelog_beta.html b/funtools/doc/changelog_beta.html
new file mode 100644
index 0000000..4e3ccd3
--- /dev/null
+++ b/funtools/doc/changelog_beta.html
@@ -0,0 +1,953 @@
+<HTML>
+<HEAD>
+<TITLE>Funtools ChangeLog</TITLE>
+</HEAD>
+<BODY>
+<H2>Funtools ChangeLog</H2>
+
+<P>
+This ChangeLog covers both the Funtools library and the suite of
+applications. It will be updated as we continue to develop and improve
+Funtools. The up-to-date version can be found <A
+HREF="http://hea-www.harvard.edu/RD/funtools/changelog.html">here</A>.
+
+<H2>Beta release 1.0.b28 (06/26/01)</H2>
+<UL>
+
+<P>
+<LI> In funcnts, removed extra new-lines from the primary table,
+inadvertently added in cases where zero-area rows are skipped.
+
+<P>
+<LI> Added code to support columns in binary tables that do not have names.
+
+<P>
+<LI> Changed the ds9 radial plot so that the radius (x value) for each
+plotted point is taken to be the middle of the annulus, (Rin+Rout)/2,
+instead of just the inner annulus, Rin.
+
+</UL>
+
+<H2>Beta release 1.0.b27 (06/21/01)</H2>
+<UL>
+
+<P>
+<LI> Added missing new-lines in funcnts primary tables that did not
+have -r switch.
+
+<P>
+<LI> Filtering with dynamic shared objects (gcc only) now links the
+region code into the shared object, instead of relying on finding the
+region code in global space.
+
+<P>
+<LI> A few minor changes to column headers in funcnts.
+</UL>
+
+<H2>Beta release 1.0.b26 (05/21/01)</H2>
+<UL>
+<P>
+<LI> Fixed funcnts to work properly when the background region
+overlaps the source and therefore explicitly excludes the source.
+It was simply ignoring the source regions in such a case.
+
+<P>
+Added a second DS9 init file, funcnts2.ds9, which contains funcnts
+and radial profile routines that work from the image stored in DS9's
+memory, rather than the original FITS file. This is useful in cases
+where no original FITS file exists (e.g., a temp file was created
+by a program and sent to DS9).
+
+<P>
+<LI> Fixed funcnts so that region specified with a variable number of
+arguments must come last (as is the case with panda and the n=
+accelerator). Thus, a region specification such as "pie 504 512 10 20
+30 & circle 504 512 10" is now properly an error. Using "circle 504 512 10
+& pie 504 512 10 20 30" instead ensures that the circle is applied to
+each pie.
+
+<P>
+<LI> Fixed funcnts output of radii/angles when boolean expressions
+such as "pie & annulus" are specified.
+
+<P>
+<LI> Enhanced funcnts so that -r outputs valid radii for circular regions.
+
+</UL>
+
+<H2>Beta release 1.0.b25 (4/19/01)</H2>
+<UL>
+
+<P>
+<LI> Added support to funtable to generate a FITS binary table
+from an image. By default, a 3-column table is generated, where the
+columns are "X", "Y", and "VALUE". For each pixel in the image, a
+single row (event) is generated with the "X" and "Y" columns assigned
+the dim1 and dim2 values of the image pixel, respectively and the
+"VALUE" column assigned the value of the pixel. If the -i
+("individual" rows) switch is specified, then only the "X" and "Y"
+columns are generated. However the number of rows (events) are written
+out for each image pixel is equal to the value of that image pixel(or
+1, whichever is larger).
+
+<P>
+<LI> Added -z switch to funcnts to display shapes in primary table
+that have no area. This is useful when automatic processing assumes
+that there are a set number of rows.
+
+<P>
+<LI> Reworked how the "$region" column is handled. A "$region" column
+can now be added to a table already having a "region" column. If a
+"region" column already exists, the new column will be "region1". If
+that exists, we try "region2", etc.
+
+<P>
+<LI> Added the header parameters EXTNAME="IMAGE" and EXTVER=1 when an
+image extension of created automatically.
+
+<P>
+<LI> When funcnts is run with -r, the rad1, rad2, ang1, and ang2 columns
+are filled in with "NA" if the shape is not annulus, pie, or panda (instead
+of being left blank).
+
+<P>
+<LI> Changed funcnts to display arc-sec/pixel instead of degrees/pixel in the
+output header.
+
+<P>
+<LI> Fixed bug in FunColumnSelect() that prevented a new table from
+being created that consists only of new columns.
+
+<P>
+<LI> Fixed processing of blank values in FunImageRowGet() (was a SEGV).
+
+<P>
+<LI> Fixed fundisp processing of images (SEGV upon completion, trying to
+free space only used by tables).
+
+<P>
+<LI> Fixed bug in funcalc which left executable in /tmp space if -n
+(no execute) was specified.
+
+<P>
+<LI>Fixed various bugs processing raw event files, especially on
+little-endian machines and reading these files via stdin.
+
+<P>
+<LI> Changed rad1, rad2 columns to radius1, radius2 in funcnts.
+
+<P>
+<LI> Purified dynamically loaded filter code (since purify now can work
+with gcc).
+
+</UL>
+
+<H2>Beta release 1.0.b24 (03/26/01)</H2>
+<UL>
+
+<P>
+<LI> First release of <B>funcalc</B>, the Funtools table calculator.
+funcalc is a calculator program that allows arbitrary
+expressions to be constructed, compiled, and executed on columns in a
+Funtools table (FITS binary table or raw event file). It works by
+integrating user-supplied expression(s) into a template C program,
+then compiling and executing the program. funcalc expressions
+are valid C statements, although some important simplifications (such
+as automatic declaration of variables) are supported.
+
+Within a funcalc expression, reference is made to a
+column of the <B>current</B> row using the C syntax
+<B>cur->[colname]</B>, e.g. cur->x, cur->pha, etc. Local scalar
+variables can either be defined using C syntax at very the beginning
+of the expression, or else they can be defined automatically by
+funcalc (to be of type double). Thus, for example, a swap of
+columns x and y in a table can be performed using either of the following
+equivalent funcalc expressions:
+<PRE>
+ double temp;
+ temp = cur->x;
+ cur->x = cur->y;
+ cur->y = temp;
+</PRE>
+or:
+<PRE>
+ temp = cur->x;
+ cur->x = cur->y;
+ cur->y = temp;
+</PRE>
+When this expression is executed using a command such as:
+<PRE>
+ funcalc -f swap.expr itest.ev otest.ev
+</PRE>
+the resulting file will have values of the x and y columns swapped.
+Many other features are available in funcalc to make table
+manipulation easy. See the Funtools program.html documentation.
+
+<P>
+<LI> First release of the <B>funtools.ds9</B> set-up file for adding
+Funtools analysis programs to the DS9 Analysis menu. This set-up file
+is installed in the same bin directory where Funtools programs are
+installed and can be loaded into DS9 from the <B>Load Analysis
+Commands ...</B> option of the <B>Analysis</B> menu. Alternatively,
+you can tell DS9 to load this file each time it starts by adding the
+file to the <B>Edit</B>-><B>Preferences</B>-><B>Analysis
+Menu</B>-><B>Analysis File</B> menu option.
+
+<P>
+<LI> Added support for non-integral binning of binary tables. The bincols
+specifier on the command line now can take the form:
+<PRE>
+ bincols=([xname[:tlmin[:tlmax:[binsiz]]]],[yname[:tlmin[:tlmax[:binsiz]]]])
+</PRE>
+where the tlmin, tlmax, and binsiz specifiers determine the image binning
+dimensions:
+<PRE>
+ dim = (tlmax - tlmin)/binsiz (floating point data)
+ dim = (tlmax - tlmin)/binsiz + 1 (integer data)
+</PRE>
+These tlmin, tlmax, and binsiz specifiers can be omitted if TLMIN,
+TLMAX, and TDBIN header parameters (respectively) are present in the
+FITS binary table header for the column in question. Note that if
+only one parameter is specified, it is assumed to be tlmax, and tlmin
+defaults to 1. If two parameters are specified, they are assumed to be
+tlmin and tlmax.
+
+<P>
+<LI> Added "mask=transparent" support to the plist argument in
+FunTableRowGet(). If this string is passed in the call's plist
+argument, then all events are passed back to the user. This is useful
+when FunColumnSelect() specifies "$region" as a column in order to
+return the regionid value for each event. In such a case, events
+found in a region have regionid >0, events passing the filter but not
+in a region have regionid == -1, events not passing the filter have
+regionid ==0.
+
+<P>
+<LI> Added FUN_WCS0 to the FUN_WCS option available to FunInfoGet().
+The original FUN_WCS option returns WCS Library handle (for use with
+Doug Mink's wcssubs library) suitable for use with images, regardless
+of whether the data are images or tables. For this structure, the WCS
+reference point (CRPIX) has been converted to image coordinates if the
+underlying file is a table (and therefore in physical coordinates). The
+new FUN_WCS0 structure has not had its WCS reference point converted
+to image coordinates. It therefore is useful when passing processing
+physical coordinates from a table.
+
+<P>
+<LI> Added -G switch to funcnts to print out floating point values
+with maximum %.14g precision.
+
+<P>
+<LI> Added -l switch to fundisp, which displays the pixels of an image as
+a list with X, Y, VAL columns.
+
+<P>
+<LI> Added support for images to funhist. The program will create
+a histogram of the values found in each pixel, or it can perform
+a projection over either axis.
+
+<P>
+<LI> All Funtools programs now accept "-" to mean "stdin" or "stdout",
+when the io mode is "r" or "w", respectively.
+
+<P>
+<LI> Changed behavior of the prec (precision) argument in FunParamPutd()
+(and the underlying fitsy routine ft_cardfmt()) so that if the double
+value being put is less than 0.1 or greater than or equal to
+10**(20-2-prec), then %20.[prec]e format is used, otherwise
+%20.[prec]f format is used.
+
+<P>
+<LI> Fixed behavior of "merge=replace" in FunColumnSelect() so that if
+tlmin/tlmax values are not specified in the replacing column, but are
+specified in the replaced column, then the original tlmin/tlmax values
+are used in the replacing column.
+
+<P>
+<LI> Improved funcnts error-handling when no valid region is specified.
+
+<P>
+<LI> Fixed region parsing of '#' comment character so that comments
+are terminated by new-lines, but not ';'. This is more intuitive behavior.
+
+<P>
+<LI> Fixed region parser so that a region (without parens), followed by
+a column expression (e.g., "circle 5 5 1,pha==4") is processed correctly.
+
+<P>
+<LI> Fixed funcnts so that the timecorr parameter specified by -t
+[timecorr] can be in lower case.
+
+<P>
+<LI> Fixed panda region shapes when processing a blocked image. The
+number of pies and number of annuli (args 5 and 8) were incorrectly
+being divided by the block factor (i.e., they were being treated as
+sizes).
+
+<P>
+<LI> Fixed bug in funcnts that resulted in slightly smaller
+integerized pixel boundaries being used when filtering events. This
+does not affect ordinary event filtering(in fundisp, funtable, etc.).
+In funcnts (which filters binary table events using image-style pixel
+filtering), this bug could result in fewer photons being counted than
+is the case when the equivalent image is used.
+
+<P>
+<LI> Fixed funcnts to work with raw event files on little-endian machines.
+
+<P>
+<LI> Fixed funhist so that it will read data from a pipe.
+
+<P>
+<LI> Fixed region parser (and funcnts) so that an include file ending
+with a comment stops the comment at the end of the include file.
+
+<P>
+<LI> Clarified the meaning of the "," operator (should it be "or" or
+"and") between a region and a non-region expression in a filter: if
+the second operand in the expression contains a region, the operator
+is "or", otherwise it is "and".
+
+<P>
+<LI> Fixed bug in funmerge, which was not handling integerization of
+negatively-valued physical pixels properly (not actually used in any
+known application).
+
+</UL>
+
+<H2>Beta release 1.0.b23 (02/16/01)</H2>
+<UL>
+<P>
+<LI> Fixed funcnts to report area correctly in arc-seconds.
+
+<P>
+<LI> Fixed funcnts to report radii correctly when summing.
+
+<P>
+<LI> Fixed bug in fundisp: a SEGV when trying to display an ASCII column
+from a binary table.
+
+</UL>
+
+<H2>Beta release 1.0.b22 (02/15/01)</H2>
+<UL>
+
+<P>
+<LI> Funcnts now will automatically output appropriate columns from
+the primary table in units of arc-seconds instead of pixels if WCS info
+is present. Use -p to force the output to be in pixels.
+
+<P>
+<LI> Added qualitative exposure correction to funcnts by means of the switch
+"-e source_exp[;background_exp]". For each region, the average exposure is
+calculated and net counts (and background) are divided by the average
+exposure. See programs.html for more info.
+
+<P>
+<LI> Added qualitative time correction to funcnts by means of the switch
+"-t source_time[;background_time]". The net counts (and background) are
+divided by this time. See programs.html for more info.
+
+<P>
+<LI> Improved funcnts output. For example, column units are displayed
+(since surf_bri units now can be cnts/pix**2, cnts/arcsec**2, etc.)
+
+<P>
+<LI> Changed funcnts.gnuplot and funhist.gnuplot scripts to funcnts.plot
+and funhist.plot, respectively. The new scripts take an argument
+such as "gnuplot" or "ds9" and output data appropriate for each
+target. Also enhanced funcnts.plot so that it senses the axis units
+automatically.
+
+<P>
+<LI> Fixed bug in funcnts when handling regions whose centers are out of the
+image. Processing often resulted in BUS ERROR or zero counts, and it took
+forever to reach those results
+
+<P>
+<LI> Fixed bug in FunImagePut() when outputting float data on
+little-endian machines (PCs/Dec Alpha) -- an erroneous error was
+signaled trying to convert from native to IEEE before writing.
+
+<P>
+<LI> Fixed bug in fundisp when displaying the mask of a double/float
+image using the mask=all option.
+
+<P>
+<LI> Fixed bug in fitsy/headimage/ft_imageloadhead(fits), in which the
+default value for LTV[1,2] was incorrectly set to 1.0, not 0.0. This
+means that region physical coordinates applied to FITS images and
+arrays that did not have LTM/LTV keywords were 1 pixel off.
+
+<P>
+<LI> Fixed obscure bug in region circle processing when a block factor
+is specified in the section command but the circle has radius less
+than the block.
+
+<P>
+<LI> Fixed bug in FunImageGet which was returning the full image in
+cases where a region was specified but no image pixels were in the
+region. An empty image is now returned.
+</UL>
+
+<H2>Beta release 1.0.b21 (02/01/01)</H2>
+<UL>
+
+<P>
+<LI> In funcnts, added ability to specify a separate background file.
+When using a separate background file, the background area will be
+normalized by the ration of the pixel sizes of the two files, if
+requisite WCS info is available.
+
+<P>
+<LI> In funcnts, added -r switch to output radii (and angle)
+information. This is useful with annulus and panda shapes when
+plotting radial profiles. An example plot script, funcnts.gnuplot, is
+available for use with gnuplot (3.7 and higher):
+<PRE>
+ funcnts ... | funcnts.gnuplot
+</PRE>
+
+<P>
+<LI> First version of the funhist program, which creates a 1D
+histogram by binning the specified column in a binary table. The
+tabular output can be plotted using funhist.gnuplot:
+<PRE>
+ funhist snr.ev x | funhist.gnuplot
+</PRE>
+
+<P>
+<LI> Added additional error messages to funcnts when invalid binning
+parameters are found for one or more binary table binning columns.
+
+<P>
+<LI> Fixed bug in FunImagePut() which sometimes occurred when
+dimensions were passed in the calling sequence. If, in addition, a
+reference handle was passed in the FunOpen() call, then the output
+dimensions are erroneously taken from the reference file, not the
+passed dimensions.
+
+<P>
+<LI> Fixed bug in filter lex code (filt.l) in which yyrestart was
+being called incorrectly with the string to be parsed as the argument
+(should be NULL).
+
+<P>
+<LI> Fixed bug in filter code in which the Sun cc compiler was creating
+a useless .o file in the working directory.
+
+<P>
+<LI> Fixed bug in region parser which made it impossible to specify
+angles with a 'd' or 'r' suffix unless WCS info was in the file. (The
+use of 'd' or 'r' with angle is independent of WCS but the check was
+there anyway.)
+
+</UL>
+
+<H2>Beta release 1.0.b20 (11/29/00)</H2>
+<UL>
+
+<P>
+<LI> Fixed a serious bug in which exclude regions were being ignored
+when multiple annuli were specified. That is, in a region specification
+such as:
+<PRE>
+ annulus 512 512 0 100 n=4; -circle 510 510 20
+</PRE>
+or
+<PRE>
+ annulus 512 512 0 25 50 75 100; -circle 510 510 20
+</PRE>
+the excluded region was not being sensed properly. Note that
+single regions did work properly with exclude regions.
+
+<P>
+<LI> Optimized funcnts so that the time for processing an event list
+(binary table) is no longer proportional to the number of pixels in
+the image. The unoptimized code was taking forever with Chandra ACIS
+images (8192**2 pixels), even with relatively few events.
+
+<P>
+<LI> Fixed bugs that gave incorrect answers when image regions were
+combined with image sections.
+
+<P>
+<LI> Fixed bug in parsing image section of the form: "foo.fits[*,6:9,2]",
+i.e. the default ("*") x dimensions, followed by specified y dimensions.
+
+<P>
+<LI> Added -g option to funcnts to change some output formats from
+12.3f to 12.3g to accommodate display of very small numbers.
+</UL>
+
+<H2>Beta release 1.0.b19 (11/21/00)</H2>
+<UL>
+<P>
+<LI> Fixed bug in filter code that caused a SEGV on Solaris machines
+when the first specified spatial region is an exclude region. Our
+user-supplied qsort/compare algorithm was confusing the Solaris qsort()
+routine, causing it to SEGV by trying to process a record prior to the
+beginning of the passed array of records.
+</UL>
+
+<H2>Beta release 1.0.b18 (11/13/00)</H2>
+<UL>
+<P>
+<LI> Fixed bug in handling bitpix=-32 (single float) images.
+
+<P>
+<LI> Fixed gio gskip routine to better handle skip of 0 bytes.
+</UL>
+
+<H2>Beta release 1.0.b17 (11/10/00)</H2>
+<UL>
+
+<P>
+<LI> Fixed working of $REGION keyword in funtable.
+
+<P>
+<LI> Removed FunFlush() from end of funtable (it was redundant).
+
+<P>
+<LI> Fixed bug in gopen() handling of "pipe:".
+
+<P>
+<LI> Fixed bug in gseek() where pipes, streams, and sockets were
+not skipping bytes properly (that can do skips, but cannot do other
+sorts of seek).
+
+</UL>
+
+<H2>Beta release 1.0.b16 (10/23/00)</H2>
+<UL>
+
+<P>
+<LI> Added -s switch to funcnts to support display of summed results
+(as well as individual results for each region), i.e. each row in the
+summed bkgd-subtracted table contains the sum of counts and areas from
+previous rows.
+
+<P>
+<LI> Added -f [format] switch to fundisp to allow control over the
+display format for each data type.
+
+<P>
+<LI> Fixed bug in which regions could be incorrectly re-ordered. This
+was a problem with annular ellipses and rectangles created by ds9 and
+then used in funcnts (the only program where the order of the regions is
+important).
+</UL>
+
+<H2>Beta release 1.0.b15 (10/11/00)</H2>
+<UL>
+
+<P>
+<LI> Changed the names of routines FunEventsGet() and FunEventsPut()
+to FunTableRowGet() and FunTableRowPut(), respectively. The old names
+are still valid (using #define in funtools.h), so no code change is
+required.
+
+<P>
+<LI> Changed funevents program name to funtable, in line with API changes.
+
+<P>
+<LI> Renamed FunInfoGet/Put() parameter FUN_EVSIZE to FUN_ROWSIZE, in
+order to reflect change from use of "events" to use of "row" in
+funtools binary table support. The old name is still supported as
+an alias.
+
+<P>
+<LI> Completed first version of funmerge program to merge FITS binary tables.
+
+<P>
+<LI> Fixed bug in line region shape that was causing a SEGV with event data.
+
+<P>
+<LI> Fixed minor compiler warnings using "gcc-Wall".
+
+<P>
+<LI> Added the ability for FunOpen() to open a list of event files and
+read events from this list synchronously or asynchronously. This
+facility is part of an experimental set of parallel processing
+techniques that are being added to funtools. Documentation will be
+forthcoming when we know which techniques have value!
+</UL>
+
+<H2>Beta release 1.0.b14 (9/22/00)</H2>
+<UL>
+
+<P>
+<LI> Added first version of funmerge program to merge FITS binary tables.
+
+<P>
+<LI> Changed the output format of funcnts so that the main results
+(background-subtracted table) are displayed first. This means that the
+result columns always start at line 4 in the file (after a 1-line
+comment and a 2-line header) and end at the first blank line. The
+fixed format makes it easier for programs such as sed to extract
+results for further processing. For example:
+
+<PRE>
+ csh> cat fun.sed
+ 1,/---- .*/d
+ /^$/,$d
+
+ csh> funcnts snr.ev[pha==1] "annulus 512 512 0 200 n=8" | sed -f fun.sed
+ 1 49.000 7.000 0.000 0.000 1941 0.025 0.004
+ 2 91.000 9.539 0.000 0.000 5884 0.015 0.002
+ 3 129.000 11.358 0.000 0.000 9820 0.013 0.001
+ 4 159.000 12.610 0.000 0.000 13752 0.012 0.001
+ 5 176.000 13.266 0.000 0.000 17652 0.010 0.001
+ 6 183.000 13.528 0.000 0.000 21612 0.008 0.001
+ 7 137.000 11.705 0.000 0.000 25528 0.005 0.000
+ 8 198.000 14.071 0.000 0.000 29420 0.007 0.000
+</PRE>
+
+<P>
+<LI> Fixed bug in row# processing in which all range was ignored if
+lo range value was 1 (e.g., row#=1:7).
+
+<P>
+<LI> Fixed bug in event header processing in which the multiple
+instances of keywords HISTORY, COMMENT, and CONTINUE were not all
+being copied from the old to the new header (e.g. in funevents).
+
+<P>
+<LI> Fixed processing of ARRAY() and EVENTS() specifiers in FunOpen().
+
+<P>
+<LI> Fixed 'make clean' directive so that it also cleans funtools subdirs.
+</UL>
+
+<H2>Beta release 1.0.b12 (9/5/00)</H2>
+<UL>
+
+<P>
+<LI> Improved the performance of panda regions so that the funcnts
+"wall time" now is proportional to the size of the panda region, not
+the size of the image. (The latter is the case with the pie shape; use
+of panda is recommended over pie.) This means that it is possible to
+run funcnts on an ACIS file at zoom 1 (8192x8192) in seconds rather
+than (tens of) minutes.
+
+<P>
+<LI> Added support for INET sockets to gio and hence, to funtools.
+This means that you can read/write from/to sockets on other machines,
+creating a distributed pipeline. For example:
+<PRE>
+ on m1: funevents foo.ev m2:1428
+ on m2: funevents :1428 m3:1428
+ on m3: funevents :1428 ...
+</PRE>
+etc. Tests indicate that this is faster than pipes on a single
+machine, once the CPU is saturated on that machine. (But note that it
+is not faster until the CPU is saturated, due to the efficiency of
+Unix pipes and the I/O wait time on non-saturated CPUs.) This new
+facility implements the parallel processing technique called "process
+decomposition" for pipelines, in which a pipeline process is run on
+several machines at once, with different machines handling separate
+parts of the pipeline process.
+<P>
+NB: socket support requires that the libraries:
+<PRE>
+ -lsocket -lnsl
+</PRE>
+be added to the Solaris link line.
+
+<P>
+<LI> Added support for the row#=lo:hi keyword to process specific rows
+in a FITS binary table. For example:
+<PRE>
+ funevents "test.ev[row#=3:8]" stdout ...
+or
+ funevents "test.ev[row#=(3,8)]" stdout ...
+</PRE>
+will only process rows 3 to 8 (inclusive) of the test.ev file. Along
+with image section specification, use of the row#= keyword implements
+the parallel processing technique called "data decomposition", in
+which several copies of a single program operate on different parts of
+a single data file.
+
+<P>
+<LI> Added guard code to image region processing to catch illegal event
+values.
+
+<P>
+<LI> Fixed bug when writing FITS image extensions in which dim1, dim2,
+and bitpix were being output as 0.
+
+<P>
+<LI> reversed the y row order of displayed images in fundisp, so that pixel
+(1,1) is in the lower left corner, as is the case for ds9 image display.
+</UL>
+
+<H2>Beta release 1.0.b11 (8/10/00)</H2>
+<UL>
+
+<P>
+<LI> Fixed annulus accelerators and panda regions -- again. Old
+problems (from the original implementation) were uncovered related to
+the use of these shapes in boolean expressions. Documented an old
+restriction that panda and accelerators must be put last in a boolean
+expression and added code to signal an error if they are not placed last.
+
+<P>
+<LI> The behavior of the point shape was changed so that multiple x,y
+pairs in a single shape specifier now are assigned different region
+ids. This makes the behavior of points and annuli consistent with one
+another.
+</UL>
+
+<H2>Beta release 1.0.b10 (8/08/00)</H2>
+<UL>
+
+<P>
+<LI> Fixed annulus accelerators and panda regions. These were
+broken when dynamic loading was implemented.
+
+<P>
+<LI> Fixed a bug in the event filter body code (i.e., the basis for
+the slave filter program). Reading the data sometimes incorrectly
+calculated the number of events being passed -- which only showed up
+occasionally on the Alpha!
+</UL>
+
+<H2>Beta release 1.0.b9 (8/03/00)</H2>
+<UL>
+<P>
+<LI> Removed compilation of some extraneous routines from wcs library.
+Also renamed wcssubs directory to wcs.
+
+<P>
+<LI> Added calls to hlength() before wcsinit(). This is necessary in
+ds9 (and is a safeguard in other programs) because once hlength() is
+called before any invocation of wcsinit(), it must always be used.
+
+<P>
+<LI> Fixed bug in filter code in which CTYPE1 and CTYPE2 param values
+were not being passed to wcsinit() as valid FITS strings: the single
+quotes were missing.
+
+<P>
+<LI> Fixed a bug in fitsy in which the card buffer was not being
+null-terminated properly when a "card insert" call reallocated space
+for more cards.
+
+<P>
+<LI> Added protective code so that one cannot set FILTER_PTYPE to
+"dynamic" if dynamic filter objects are not available.
+
+<P>
+<LI> Ported to Debian Linux, which (believe it or not) required
+removal of extraneous strdup() and strstr() declarations in the code
+(apparently these are macros in that version of Debian gcc, so you
+cannot declare them).
+</UL>
+
+<H2>Beta release 1.0.b8 (8/01/00)</H2>
+<UL>
+
+<P>
+<LI> Added new filter ptype ("contained"), which builds a separate
+process by compiling both the main routine and the region code. This
+is different from the "process" ptype, which compiles the main
+routine, but links in pre-compiled region code (in order to make the
+program build more quickly). It is needed by ds9 so that the latter
+does not have to keep track of the compiled region code module.
+</UL>
+
+<H2>Beta release 1.0.b7 (7/25/00)</H2>
+<UL>
+
+<P>
+<LI> Changed filter code so that, in simple cases, we can access the
+contents of a file. This is needed so that funcnts can work properly in one
+oft-used case, i.e., if the file foo contains:
+<PRE>
+ circle 5 5 1
+ circle 4 4 1
+</PRE>
+then:
+<PRE>
+ funcnts foo.fits @foo
+</PRE>
+now will display the 2 regions in its output, instead of displaying the
+near useless "@foo". This only works for simple cases where only a file
+is input, not in odd combinations like:
+<PRE>
+ funcnts foo.fits "@foo,circle 1 1 1"
+</PRE>
+
+<P>
+<LI> Added programming tutorial and enhanced the programming
+reference documentation.
+
+<P>
+<LI> Ported to Windows via the Cygwin environment from
+RedHat. We tested on an NT box, which has decent multi-tasking
+support. Whether it works on Windows95 is unknown.
+
+<P>
+<LI> Upgraded WCS libraries to 2.8.3.
+
+<P>
+<LI> Ported to new and strict SGI C compiler, which uncovered
+lots of unused variables, etc.
+
+<P>
+<LI> Fixed FunParamPut status return.
+</UL>
+
+<H2>Beta release 1.0.b6 (7/15/00)</H2>
+<UL>
+
+<P>
+<LI> Ran Purify with each high level program and each funtest
+program.
+<P>
+<LI> Changed behavior of merge=update option of
+FunColumnSelect() so that the update of the user column value only
+takes place if the user mode has "w" in it. Previously, merge=update
+overrode the mode flag and always updated the user value. Note that
+all calls to FunColumnSelect with merge=update must change "r" to "rw"
+in order to have that user column merged. (The merge=replace already
+was checking the mode flag -- the fact that they were doing different
+things is a bug.)
+<P>
+<LI> Added ability to FunOpen extensions by HDU name. (I
+thought I had already done this!)
+<P>
+<LI> Fixed bug that was adding a NULL table at the end of
+most binary table files (i.e., those that were not copying the rest of
+the input file).
+<P>
+<LI> Re-ported to Alpha. The problem found most often was the
+casting of pointers to ints when doing pointer calculations, i.e.:
+<PRE>
+ char *s, *t;
+ n = ((int)s - (int)t);
+</PRE>
+which is invalid on the 64-bit Alpha. Instead use:
+<PRE>
+ char *s, *t;
+ n = (s - t);
+</PRE>
+Also broadened the check for use of dlopen in configure to match Alpha's
+library configurations (On Alpha, dlopen is in libc).
+
+<P>
+<LI> Changed FunColumnActivate() so that funtools will
+process columns in the sorted order specified by that routine. Thus:
+<PRE>
+ fundisp foo.ev "time y x"
+</PRE>
+will display columns in that order.
+
+<P>
+Sorting does not take place if the activate list contains only exclude
+columns (since there is nothing to sort). Also, you can turn off
+sorting altogether (mimicking the old behavior) by calling
+FunColumnActivate() with a "sort=false" in the plist argument:
+<PRE>
+ FunColumnActivate(fun, "y x", "sort=false");
+</PRE>
+or by adding "sort=false" to the activate string itself:
+<PRE>
+ # by default, its sorted
+ fundisp $E "time y x"
+ TIME Y X
+ ---------------- ------- -------
+ 6.8500 -7 -7
+ 6.8600 -7 -7
+</PRE>
+while:
+<PRE>
+ # turn off sorting
+ ./fundisp $E "time y x sort=false"
+ X Y TIME
+ ------- ------- ----------------
+ -7 -7 6.8500
+ -7 -7 6.8600
+ -7 -7 6.8700
+</PRE>
+</UL>
+
+<H2>Beta release 1.0.b5 (7/8/00)</H2>
+<UL>
+
+<P>
+<LI> Changed all FunParamSet calls to FunParamPut, to make the
+naming consistent with FunImagePut, FunEventsPut, etc.
+
+<P>
+<LI> Fixed bugs preventing tlmin/tlmax from being changed by the
+user in binary tables. Also tlmin/tlmax are now written out using a
+data type that matches the data type of the respective column.
+
+<P>
+<LI> Extended filter syntax to allow "," as separator between
+filename and filters (as well as brackets), i.e.:
+<PRE>
+ foo.fits,events # event extension
+ foo.fits,pha==1 # filter on default extension
+ foo.fits,1 # first extension
+</PRE>
+Note that all but simple expressions will need to be quoted because
+of the shell:
+<PRE>
+ foo.fits,pha==1&&pi==2 # & tells shell to run in bkgd
+ foo.fits,pha==1||pi==2 # similar problems with pipes
+ foo.fits,circle(1,2,3) # parens are grabbed by shell
+</PRE>
+
+<P>
+<LI> Fixed configure so that --with-lib is no longer necessary
+to generate a single funtools.a library. Removed this argument from
+saoconfig. Note that:
+<PRE>
+ ./configure
+</PRE>
+
+now works properly again, so saoconfig should not be used.
+
+<P>
+<LI> Changed FunFlush() mode argument (single characters) to a
+plist argument (keyword arguments). In particular,
+<PRE>
+ FunFlush(fun, "C");
+</PRE>
+is now:
+<PRE>
+ FunFlush(fun, "copy=remaining");
+(or FunFlush(fun, "copy=remainder"); )
+</PRE>
+
+This syntax extension allows FunFlush to support the copy of the
+extension associated with the reference handle, which allows one to
+copy any extension from an input file to an output file:
+<PRE>
+ /* open a new input extension */
+ ifun = FunOpen(...);
+ /* make this new extension the output reference extension */
+ FunInfoPut(ofun, FUN_IFUN, &ifun, 0);
+ /* copy the current reference extension to output */
+ FunFlush(ofun, "copy=reference");
+</PRE>
+
+<P>
+<LI> Fixed bugs in region parser that caused pure floating
+point positions (i.e., numbers w/o format characters) always to be
+interpreted as pixels. Also fixed galactic and ecliptic conversions.
+</UL>
+
+<HR>
+<P>
+<A HREF="./help.html">Index to the Funtools Help Pages</A>
+
+<HR>
+<A HREF="./help.html">Index to the Funtools Help Pages</A>
+
+<H5>Last updated: November 17, 2005</H5>
+
+</BODY>
+</HTML>