.help revisions Jun88 pkg.xtools.icfit
.nf
icdeviant.gx
    There were two bugs related to growing.  First, the logic was wrong.
    Second, in one place the grow parameter was treated as being in pixels
    and in another as being in user coordinate units.
    (6/28/10, Valdes)

icdosetup.gx
    When there is only one sample range that is binned to a single point
    this would result in the fitting limits (introduced 8/11/00) being
    equal.  This causes cvinit to return an error and the cv pointer
    is invald.   The change is if the number of binned fitting points
    is 1 then the full range of the unbinned data is used.  Note that
    a change was also made on this date to have cvinit return a null
    pointer rather than a partially initialized pointer.  (11/18/02, Valdes)

=======
V2.12.1
=======

=====
V2.12
=====

icdosetup.gx
    The change made previously is now restricted to the polynomial functions
    which make sense to extrapolate.  The spline functions define the
    fitting region to be the region set by the calling program.
    (11/21/00, Valdes)

icfshow.gx
    Will now work if the GT pointer is NULL.  (8/19/00, Valdes)

icdosetup.gx
    When using sample ranges the fitting region is now limited to the
    minimum and maximum of the fitted region.  (8/11/00, Valdes)

=========
V2.11.3p1
=========
=======
V2.11.3
=======

icgui.x
    Eliminated gmsg calls when there is no GUI.  (2/1/99, Valdes)

icshow.x
icvshow.gx
    The gt pointer was not being used when called by CURFIT noninteractively.
    The IC_GT structure is now set in these routines.  (9/14/99, Valdes)

=======
V2.11.2
=======

icggraph.gx
    Moved smark to after an initial return.  (7/11/99, Valdes)

icgfit.x
    This routine is called with a graphics descriptor for interactive
    fitting.  The descriptor is set in an internal structure.  Other
    procedures, which may be called both for interactive and
    non-interactive fitting, check if the descriptor is not NULL
    before sending GUI messages.  The problem occurs if this procedure is
    first called interactively and then the non-interactive fitting
    routine is called later (maybe after a deactivate workstation or
    closing the descriptor) resulting in GUI messages being sent
    when not in interactive mode.  The solution is to return the
    internal descriptor value to NULL after finishing the interactive
    fitting and returning from this procedure. (7/22/99, Valdes)

icgui.x
    Fixed bug in behavior when there is no gui.  (4/2/99, Valdes)

icfit.h
names.h
icgfit.gx
icparams.x
icggraph.gx
icgcolon.gx
icgui.x
icferrors.gx
icshow.x
icerrors.gx
icvshow.gx
icguishow.gx
icfvshow.gx
mkpkg
    Added support for GUIs.  (12/7/98, Valdes)

=======
V2.11.1
=======

=======
V2.11.0
=======

pkg$xtools/icfit/icfit.hlp
    Changed the order of the task name and version number in the revisions
    section.  (4/22/97, Valdes)

pkg$xtools/icgcolon.gx
pkg$xtools/icfit/icfit.hlp
    Changed the "fitvalue" colon command to "evaluate" to avoid abbreviation
    conflict with "function".  (4/16/97, Valdes)

pkg$xtools/icfit/icshow.x
    The commenting of the title string needed to be modified since the
    title string could include new lines and we want each line to be
    commented.  (3/27/97, Valdes)

pkg$xtools/icfit/icgcolon.gx
pkg$xtools/icfit/icfit.hlp
    Added a "fitvalue" colon command to evaluate the fit at an arbitrary value.
    (1/28/97, Valdes)

pkg$xtools/icfit/icvshow.gx
pkg$xtools/icfit/icshow.x
pkg$xtools/icfit/icerrors.gx
    All output except the tabular part of :xyshow now begins with
    the comment character.  Comment column labels were added back.
    (2/29/96, Valdes)

pkg$xtools/icfit/icvshow.gx
pkg$xtools/icfit/icgcolon.gx
pkg$xtools/icfit/icfit.help
    Enhanced the :xyshow command to include the weights and not print
    column labels.  (11/20/95, Valdes)

pkg$xtools/icfit/icparams.x
    Added an ic_geti paramter "nmin" to return the minimum number of
    points that can be fit.  (9/8/95, Valdes)

pkg$xtools/icfit/icgfit.h
    The prototype capability of adding points was supposed to return to
    the calling program as if only the original data was used however
    the structure element giving the number of points fit was the number
    after adding the points.  This causes other routines to think the
    data was sampled in some way which then leads to attempting to
    reference a NULL array.  The routine now sets the number of points
    fit back to the input value upon completion.  (7/12/95, Valdes)

pkg$xtools/icfit/icfit.h
pkg$xtools/icfit/icparams.x
pkg$xtools/icfit/icggraph.gx
pkg$xtools/icfit/icgcolon.gx
pkg$xtools/icfit/icfit.hlp
    Added a color option for the fit.  Users may set it with :color and
    applications with ic_puti.  (6/30/95, Valdes)

=======
V2.10.4
=======

pkg$xtools/icfit/icdosetup.gx
    Fixed two type mismatches in min/max calls.  (12/30/94, Valdes)

pkg$xtools/icfit/icgfit.gx
pkg$xtools/icfit/icfit.hlp
    Added 'v' key to change fitting weight.  (12/29/94, Valdes)

pkg$xtools/icparams.gx
    Make it legal to call ic_closed with a null pointer.  (8/11/93, Valdes)

============
V2.10.3 beta
============

pkg$xtools/icfit.gx
    This procedure now sets the IC_FITERROR structure element so that
    a program using only the noninteractive ic_fit will have this element
    defined.  The procedure will still return with an error condition
    if an error occurs as was true previously.  (6/29/93, Valdes)

pkg$xtools/icdosetup.gx
    The fitting min and max given to cvinit is now calculated from the data
    avoiding errors in setting it by calling programs.  This was especially
    dangerous because fitting data outside this range can cause memory
    corruption errors by the CURFIT routines.  (7/29/92, Valdes)

=======
V2.10.1
=======

pkg$xtools/icfit/icgcolon.gx
pkg$xtools/icfit/icggraph.gx
pkg$xtools/icfit/icparams.x
pkg$xtools/icfit/icfit.h
pkg$xtools/icfit/icfit.hlp
noao$lib/src/icgfit.key
noao$lib/src/idicgfit.key
    Added a new user parameter called "markrej" to toggle whether to mark
    rejected points or not.  (1/21/92, Valdes)

pkg$xtools/icfit/icfit.hlp
pkg$xtools/icfit/icgsample.gx
pkg$xtools/icfit/icgfit.gx
pkg$xtools/icfit/icgcolon.gx
pkg$xtools/icfit/icparams.x
pkg$xtools/icfit/icfit.h
pkg$xtools/icfit/icfit.hlp
    1.  Added 'z' key to delete individual sample regions.
    2.  Increased the internal sample string to 1024 characters.
    (9/4/91, Valdes)

pkg$xtools/icfit/icfit.hlp
pkg$xtools/icfit/icgfit.gx
pkg$xtools/icfit/icgadd.gx
pkg$xtools/icfit/ mkpkg
    Added 'a' key to allow adding points for constraining the fit.
    (9/3/91, Valdes)

pkg$xtools/icfit/icfit.hlp
    Fixed typo for :errors description.  (11/20/90, Valdes)

pkg$xtools/icfit/icgcolon.gx
    1. Unrecognized or ambiguous colon commands are now noted.
    (10/2/90, Valdes)

pkg$xtools/icfit/icvshow.gx
pkg$xtools/icfit/icgcolon.gx
pkg$xtools/icfit/icfit.hlp
noaolib$scr/icgfit.key
    1. The :vshow command now does not print the (x, y fit, y) values.
    2. A new user command, :xyshow, prints the (x, y fit, y) values.
    (5/16/90, Valdes)

====
V2.9
====

pkg$xtools/icfit/icparams.x
pkg$xtools/icfit/icgcolon.x
    1. ic_puti uses max (1, order) for setting the order.
    2. icg_colon prints error if attempting to set order < 1.
    (3/6/90, Valdes)

pkg$xtools/icfit/icparams.x
    Added ability to get information about the number of fit points and the
    rejected points to the ic_geti procedure.  (5/4/89, Valdes)

pkg$xtools/icfit/icggraph.gx
    Scaled the symbol used for marking average points to the appropriate
    coordinate system.  This is still only approximately correct.
    Based on a report by Ivo Busko.  (3/1/89, Valdes)
 
pkg$xtools/icfit/icvshow.gx

    Changed output format of 3 values so 7 digits of precision are printed.
    This was in response to a user request for the utilities.curfit task,
    but all programs calling icvshow will be affected.  (ShJ 3-NOV-88)

< 	call fprintf (fd, "RMS = %10.7g\n")
> 	call fprintf (fd, "RMS = %7.4g\n")

< 	call fprintf (fd, "square root of reduced chi square = %10.7g\n")
> 	call fprintf (fd, "square root of reduced chi square = %7.4g\n")

<       call fprintf (fd, "\t%14.7e\t%14.7e\n")
>       call fprintf (fd, "\t%10.4e\t%10.4e\n")

pkg$xtools/icfit/icgfit.gx
pkg$xtools/icfit/icgaddfit.gx
noao$lib/scr/icgfit.key
    Added 'I' interrupt key.  (4/20/88 Valdes)

pkg$xtools/icfit/icgfit.gx
pkg$xtools/icfit/icgparams.gx
    Valdes, Jan. 5, 1988
    Added checks for an error in fitting the curve.

pkg$xtools/icfit/icgfit.gx
    Valdes, Oct. 2, 1987
    1.  When doing sample regions there was a round off problem with
    negative numbers.  Replaced int(x+.5) with nint(x).

pkg$xtools/icfit/icfit.h
pkg$xtools/icfit/icparams.x
pkg$xtools/icfit/icguaxes.gx
    Valdes, February 20,1987
    1.  Made the cursor help file a setable parameter since the graph
	keys are definable by the application.
    2.  Added the radial velocity axis type explicitly to the package
	to remove the need for onedspec.identify to have it's own copy
	of the package.

pkg$xtools/icfit/*x
    Valdes, February 17, 1987
    1.  Required GIO changes.

pkg$xtools/icfit/icgcolon.gx
    Valdes, January 16, 1987
    1.  Colon command dictionary and switch modified to use macro definitions.

pkg$xtools/icfit/icgfit.gx
noao$lib/scr/icgfit.key
noao$lib/scr/icgaxes.key	-
    Valdes, January 13, 1987
    1.  When setting sample ranges with the cursor the range limits are now
	rounded to the nearest integer only if the x values are integers.
	Previously it always rounded even if the data were not integers.
    2.  Modified to use system page procedure for printing help.
    3.  Revised the help file and included the graph axes help in the same
	file since it is now paged.  The separate axes help file was deleted.

pkg$xtools/icfit/icgcolon.gx
    Valdes, October 7, 1986
    1.  It is no longer possible to set naverage to 0 which causes ICFIT
	to crash.  A message is now printed telling the user that 0 is
	not a legal value.  This error is present in V2.3 and earlier.

pkg$xtools/icfit/icgdelete.gx
pkg$xtools/icfit/icgundelete.gx
    Valdes, September 8, 1986
    1.  Procedures were defined as function but used as subroutines.  The
	function declarations were removed.  Found during the Alliant port.

pkg$xtools/icfit/icgfit.gx
noao$onedspec/identify/icfit/icgfit.gx
    Valdes, August 21, 1986
    1.  When defining sample ranges interactively with the cursor the
	new sample string was appended to the previous string without
	a leading space and with a trailing space.  This was fine if
	the sample was defined only interactively or only explicitly
	as a string.  However, appending an interactive sample to one
	the user types in (without a trailing blank) is an error.
	Changed the interactive appending to put a leading blank and
	no trailing blank.

noao$lib/src/icgfit.key
    Valdes, August 20, 1986
    1.  The key file listed :lowreject and :highreject instead of the
	correct :low_reject and :high_reject.  The key file was fixed.

====================================
Version 2.3 Release, August 18, 1986
====================================

icfit$:  Valdes, August 11, 1986
    1.  Reorganized package to have separate objects for each procedure.
	This allows loading only the procedures of the desired datatype.

icfit$icgfit.gx:  Valdes, August 7, 1986
    1.  The 'c' key was using a fixed format inappropriate for some types
	of data.  The formats where changed to general %g format.

icfit$icgfit.gx:  Valdes, August 7, 1986
    1.  A bug in the generic code was causing a double to be
	passed to gt_setr which caused the windowing to be wrong.
	This bug appeared only in the SUN.
    2.  A bug in writing the current key definition with the 'g' key was
	fixed.  This bug appeared only in the SUN.

icfit:  Valdes, July 3, 1986
    1.  New ICFIT package.

icfit$icggraph.gx:  Valdes, April 28, 1986
    1.  Fixed bug in icggraph.gx:
	    real $tcveval  --->  PIXEL $tcveval

icfit$icgfit.gx,icgfit2.x,icgcolon.x:  Valdes, April 7, 1986
    1.  Fixed use of STRIDX with a character constant to STRIDXS.
    2.  Fixed problem with colon usage for ":sample" and ":function"

icfit: Valdes, Mar 13, 1986:
    1.  ICFIT package converted to generic form.  The package now has entries
	for both single precision and double precision data.  It uses the new
	curfit math library which now has double precision entries as well.
	The external names of the single precision procedures are unchanged.
======
Release 2.2
======
From Valdes Dec 30 , 1985

1.  Setting of sample ranges by cursor was integer truncating giving the
funny result that if the cursor was set at 4.99 the sample limit was 4.
This has been changed so that the sample limit is rounded to the nearest
integer.
------
From Valdes Nov 20 , 1985

1.  New procedure ICG_FIT2 added.  This procedure does all graphics
open and closes and has cl parameters "graphics", "plots", and "cursor".
This will eventually phase out ICG_FIT.

2.  Procedures modified to use an array of GTOOLS pointers instead of
keeping them in separate variables.  This allows easy expansion to add
additional graph formats.
------
From Valdes Oct 17 , 1985

1.  Graphing the zero line was removed from icggraph.x because the line
interfered with fitting data near zero.
------
From Valdes Oct 4, 1985

1.  The package was modified to add high and low rejection and to iterate
the rejection algorithm.

2.  Procedure icg_params was add to label the graphs with the fitting
parameters.
.endhelp
