/***********************************************************************
* Adaptive Simulated Annealing (ASA)
* Lester Ingber <ingber@ingber.com>
* Copyright (c) 1993-1996 Lester Ingber.  All Rights Reserved.
* The LICENSE file must be included with ASA code.
***********************************************************************/

$Id: CHANGES,v 12.10 1996/03/02 16:16:44 ingber Exp ingber $

========================================================================
			CONTENTS

		@@CHANGES
		@@CONTRIBUTORS
		@@VERSION DATES
========================================================================
		@@CHANGES
========================================================================
29 Feb 96

readme.ms:
Deleted 0lower.dir as this was not being used.

========================================================================
12 Feb 96

readme.ms:
Corrected a couple of typos re location of new archive.

========================================================================
4 Feb 96

NOTES, readme.ms:
Removed pgp-2.6.2 info from commercial archive.

========================================================================
18 Jan 95

readme.ms:
Added reference to a new UTILS.DIR/CODE.DIR storing most of the code
described in the files in UTILS.DIR.

========================================================================
16 Jan 95

readme.ms:
Added reference to same file structure under ingber/ for both WWW and
FTP access.

========================================================================
15 Jan 95

asa.c, asa.h, asa_user.h, readme.ms:
Moved all FDLIBM code to MISC.DIR/asa_contrib.

asa.h:
Moved FDLIBM code to MISC.DIR/asa_contrib so that these routines can be
placed independently in the asa or the user module.

readme.ms:
Cleaned up a few typos.

========================================================================
13 Jan 96

NOTES, asa.c, readme.ms:
The file MISC.DIR/asa_contrib in the ASA archive contains some code
contributed by users; this file may evolve into an index for a separate
directory.  There is a CONTENTS of sections headers that can be used to
search on topics in your browser or editor.

The file MISC.DIR/asa_examples in the ASA archive contains some example
problems using ASA.  There is a CONTENTS of sections headers that can
be used to search on topics in your browser or editor.

========================================================================
10 Jan 96

NOTES:
Added some background correspondence to section on @@Quenching.

========================================================================
8 Jan 96

asa.c:
Cleaned up some printing statements in test_asa().  Bypass most
printing within asa_exit() if *exit_status = INVALID_USER_INPUT.

asa.c, asa.h:
Added print_string_index() to print out index with descriptive string
if *exit_status = INVALID_USER_INPUT.

========================================================================
6 Jan 96

user.c, user_cst.h:
In ASA_TEST, changed d[i] to d_i.

========================================================================
5 Jan 96

NOTES:
Added instructions on how to use quenching to solve the 12-dimensional
ASA_TEST problem.

user.c, user_cst.h:
Changed dimension statement for d[4] in ASA_TEST to permit easy
modifications of *parameter_dimension from asa_opt.

========================================================================
1 Jan 96
All files:
Updated Copyright notice to include 1996.

========================================================================
30 Dec 95

asa.c:
Use fabs when calculating standard deviations to avoid any problems
with roundoff.

Makefile, asa.h, asa.c, asa_user.h, readme.ms:
Removed use of MAX_INTEGER and INTEGER_TOO_LARGE.

========================================================================
29 Dec 95

asa.c:
When Number_Cost_Samples < -1 and when Reanneal_Cost > 1 or < -1, added
EPS_DOUBLE to the calculated cost temperature in case sampling selects
states all with same values of the cost function.

Makefile, asa.h, asa.c, asa_user.h, readme.ms:
Added DEFINE_OPTIONS MAX_INTEGER=99999 and *exit_code
INTEGER_TOO_LARGE=6.  These can give important control and feedback for
different tuning when reannealing.

========================================================================
19 Dec 95

asa.c, readme.ms:
When Reanneal_Cost < -1 or > 1, when periodically reannealing, the
initial and current cost temperatures or just the initial cost
temperature, resp., are calculated as a deviation over a sample of cost
functions.

========================================================================
17 Dec 95

NOTES, readme.ms:
Added comments to section on Efficiency Versus Necessity in the README
on the importance of doing homework on a system in addition to
implementing ASA.

========================================================================
15 Dec 95

NOTES, asa.c, readme.ms:
The NOTES contains some contributed code in the section @@Hashed Lists
for ASA_QUEUE.  This may be useful for some systems.

========================================================================
8 Dec 95

readme.ms:
Changed file name asa_new-X.Y back to asa_new, as some people were
having browser problems trying to locate previous versions of
asa_new-X.Y.

========================================================================
7 Dec 95

user.c:
Added credit for asa_seed().

readme.ms:
Added description of asa_seed().

readme.ms:
Changed publication date of asa95_lessons to asa96_lessons.

user.h:
Added main() prototype for ASA_TEMPLATE_LIB=TRUE.

asa_user.h:
Defined ASA_TEST=TRUE to be part of ASA_TEMPLATE=TRUE.

user.c:
Added printout to stdout in main() defined for ASA_TEMPLATE_LIB=TRUE.

========================================================================
6 Dec 95

asa.c:
Fixed bug in using STDOUT to print output to stdout.

NOTES, readme.ms, user.h, user.c:
When ASA_LIB is TRUE, the function asa_seed() becomes available to set
the initial random seed.  ASA_TEMPLATE_LIB=TRUE illustrates this use.

========================================================================
5 Dec 95

Makefile, asa.c, asa_user.h, readme.ms, user.h, user.c:
Added ASA_TEMPLATE_LIB permitting passing of parameters using asa_main().

asa.c:
Added test to check that initial parameters are within bounds.

========================================================================
1 Dec 95

readme.ms:
Corrected typos in section headers of Asa_Data_Dim_int.

========================================================================
20 Nov 95

readme.ms:
Mentioned availability of ASA-README.txt and ASA-README.ps.Z in the
archive.  Corrected typo in last section.

========================================================================
17 Nov 95

readme.ms:
Included LICENSE in the README.

========================================================================
16 Nov 95

asa.c, readme.ms:
When OPTIONS->Immediate_Exit is set to TRUE, asa() exits without
calculating any closing tangent or curvature arrays.

========================================================================
4 Nov 95

asa.c, readme.ms:
Modified Maximum_Cost_Repeat to permit a value of 0 to bypass this
test.

readme.ms:
Noted similar treatment of the cost temperature using
Number_Cost_Samples and Reanneal_Cost.

========================================================================
3 Nov 95

asa.c, readme.ms:
If Reanneal_Cost < -1, then the current cost temperature is calculated
as the deviation over a sample of -Reanneal_Cost number of cost
functions.

readme.ms:
Corrected description of calculation when Reanneal_Cost < -1.

========================================================================
1 Nov 95

asa.c:
Changed cast to produce integers in generate_new_state() from (int) to
(LONG_INT).

asa.c, asa_user.h, readme.ms, user.c:
When ASA_RESOLUTION is TRUE, Coarse_Resolution[] defines the resolution
of parameters in the fit.

========================================================================
29 Oct 95

asa.c:
Changed casts on some ASA_QUEUE parameters.
Added EPS_DOUBLE to tests using Queue_Resolution.
Put adaptive formatting for all %g printout, except for TIME_CALC.

readme.ms:
Noted utility of using Queue_Size = 0 for recursive fits, and the
possible compiler warnings of "uninitialized" this may generate.

========================================================================
29 Oct 95

Makefile, asa.c, asa_user.h, readme.ms, user.c:
When ASA_QUEUE is set to TRUE, a FIFO queue saves generated states, to
avoid extra cost function calculations.

========================================================================
28 Oct 95

readme.ms:
Added motivation for use of global optimization to Context section.

========================================================================
22 Oct 95

asa.c:
Corrected some comment statements in reanneal().

readme.ms:
Added markets96_momenta.ps to references.

========================================================================
4 Oct 95

asa.c, readme.ms:
The default reannealed initial cost temperature is taken to be the
minimum of the current initial cost temperature and the maximum of the
absolute values of the best and last cost functions and their
difference.

========================================================================
1 Oct 95

asa.c, readme.ms:
When reannealing the cost temperature, the current cost temperature is
set to the maximum of the current cost temperature and the absolute
value of the difference of the best and last values of the cost
function, constrained not to exceed the current initial cost
temperature.

asa.c, readme.ms, user.c, user.h:
When USER_REANNEAL_COST, added *current_cost_temperature to the
parameter list of Reanneal_Cost_Function(), and change default
reannealing algorithm as just above.

readme.ms:
Edited section on numerical derivatives.

========================================================================
30 Sep 95

asa.c:
Improved readability of output to ASA_OUT.

========================================================================
29 Sep 95

asa.c, asa.h:
Added valid_state_generated_flag and exit_status to list of items in
test_asa_options().  Enhanced printout of reason for invalid options.

readme.ms:
Emphasized that ASA_TEMPLATE, with no suffix, should not be set to
TRUE.

========================================================================
28 Sep 95

asa.c, asa_user.h:
Added some missing (double) casts to EPS_DOUBLE and SMALL_FLOAT.

asa.c, asa.h, readme.ms:
Added test_asa_options() to check parameters and OPTIONS for validity,
before the first call to the cost function, and to print out invalid
options.

asa.c:
Fixed warnings when ASA_PRINT is set to FALSE.

user.c:
Print out exit_code to user_out.

========================================================================
24 Sep 95

asa_opt, user.c, readme.ms:
If OPTIONS_FILE_DATA and QUENCH_COST are TRUE, then
*User_Quench_Cost_Scale is read in from asa_opt.  If OPTIONS_FILE_DATA,
QUENCH_COST, and QUENCH_PARAMETERS are TRUE, then
*User_Quench_Cost_Scale and User_Quench_Param_Scale[] all are read in
from asa_opt.

If RECUR_OPTIONS_FILE_DATA and QUENCH_COST are TRUE, then
*User_Quench_Cost_Scale is read in from asa_opt_recur.  If
RECUR_OPTIONS_FILE_DATA, QUENCH_COST, and QUENCH_PARAMETERS are TRUE,
then *User_Quench_Cost_Scale and User_Quench_Param_Scale[] all are read
in from asa_opt_recur.

readme.ms:
Stated that when Reanneal_Cost > 1 or < 1 it is the _initial_ cost
temperature that is being reannealed by being set by the sampled cost
functions.  Because of the fat tail of the parameter temperature
distributions, the current cost temperature is not being directly set
by the sampled cost functions.

========================================================================
16 Sep 95

asa_opt, user.c, readme.ms:
If OPTIONS_FILE_DATA, QUENCH_COST, and QUENCH_PARAMETERS are all TRUE,
then *User_Quench_Cost_Scale and User_Quench_Param_Scale[] all are
read in from asa_opt.

If RECUR_OPTIONS_FILE_DATA, QUENCH_COST, and QUENCH_PARAMETERS are all
TRUE, then *User_Quench_Cost_Scale and User_Quench_Param_Scale[] all
are read in from asa_opt_recur.

========================================================================
15 Sep 95

asa.c, asa.h, readme.ms:
The range of choices to control the initial and the reannealed values
of the cost temperature have been increased by the expanded use of
Number_Cost_Samples and Reanneal_Cost, resp.  The choices include
averaged absolute values or deviations of sampled cost functions.

asa.c, asa.h, readme.ms:
Added INVALID_USER_INPUT[7] to exit codes.

readme.ms:
Added URL format to all references.

========================================================================
14 Sep 95

asa.c, readme.ms:
If Number_Cost_Samples is initially -1, it is set to -2 in asa().

========================================================================
12 Sep 95

asa.c, asa.h, readme.ms, user.c:
When Reanneal_Cost > 1, the reannealed cost temperature is calculated
as the deviation over a sample of Reanneal_Cost number of cost
functions, i.e., the square-root of the difference of the squares of
the first and second moments normalized by the ratio of Reanneal_Cost
to Reanneal_Cost - 1.

asa.c:
When Number_Cost_Samples < -1, the initial cost temperature is
calculated as the deviation over a sample of -Number_Cost_Samples
number of cost functions, i.e., the square-root of the difference of
the squares of the first and second moments normalized by the ratio of
-Number_Cost_Samples to -Number_Cost_Samples - 1.

========================================================================
8 Sep 95

NOTES, readme.ms:
Minor editing changes.

========================================================================
1 Sep 95

readme.ms:
Added smni95_lecture.ps.Z.

CHANGES:
Bug in maintenance software kept deleting old VFSR version numbers in
VERSION DATES section that matched with new ASA version numbers.

========================================================================

19 Aug 95

asa_opt:
Entries used specifically for ASA_TEST are recorded, in case these are
written over during use for other problems.

========================================================================
25 Aug 95

user_cst.h:
Added explicit directions on how to use this file together with asa_opt.

========================================================================
19 Aug 95

user_cst.h:
Changed name of user_cst.c to user_cst.h to prevent possible confusion
when using some PC or Mac compilers to compile all *.c files.

user.c:
Added test to recognize asa_opt under fopen().

NOTES:
Added some info on placing asa_opt file under some PC and Mac compilers.

========================================================================
13 Aug 95

readme.ms:
Added note on the possible necessity of making a transformation of a
discrete parameters to a new parameter which can be expressed as a set
of sequential integers.

========================================================================
8 Aug 95

readme.ms:
Clarified use of Include_Integer_Parameters when used with
parameter_type[].

asa.c:
Fixed bug in cost_derivatives(), in one Include_Integer_Parameters
test, inside of a test of *curvature_flag, requiring adding braces.

========================================================================
6 Aug 95

asa_opt:
Added defaults for integer or real type in comments.

NOTES:
Added some dates to sections where some updates in other files might
give conflicting references.

========================================================================
4 Aug 95

user.c:
Test for values of pid > 99999 or < 0 when using
ASA_TEMPLATE_ASA_OUT_PID.

========================================================================
3 Aug 95

Makefile, asa.c, asa_user.h, readme.ms, user.c:
Added ASA_TEMPLATE_ASA_OUT_PID to permit numbering of asa_out__x and
user_out_x files, where x is the system pid.

Makefile:
Put in FALSE for defaults of ASA_TEMPLATEs.

Makefile, asa_user.h, readme.ms, user.h:
Moved include statement and prototype for ASA_TEMPLATE_ASA_OUT_PID to
user.h from asa_user.h.

========================================================================
15 Jul 95

readme.ms:
Cleaned up some formatting.

========================================================================
14 Jul 95

NOTES, readme.ms:
Added my PGP public key to the NOTES file.

========================================================================
6 Jul 95

readme.ms:
The section on Bug Reports and Help With ASA was expanded to include
statements on confidentiality of all queries, and on arrangements that
can be made to secure queries using the PGP cryptosystem and/or to
exchange large files using FTP.

========================================================================
2 Jul 95

Makefile, readme.ms:
Added user_cst.c to dependencies of user.o.

========================================================================
14 Jun 95

Makefile, NOTES, asa_user.h, readme.ms, user.c, user_cst.c:
Added user_cst.c containing cost_function() to the distribution as a
trimmed version of the ASA_TEST problem.  The default for COST_FILE is
now TRUE.  The version with more documentation and hooks for various
templates is cost_function() in user.c

readme.ms:
Added notes that N_Accepted and N_Generated typically will have values
less in the cost function than in the ASA_OUT file, since these are
only incremented after passing some tests back in asa().

========================================================================
9 Jun 95

asa_user.h:
Removed INT_ALLOC set to TRUE which slipped in during a test run.
Added MY_TEMPLATE example at top of file.

========================================================================
5 Jun 95

readme.ms:
Updated status of referenced paper.  Added information on construction
of individualized TEMPLATEs.

NOTES:
Added some information to FORTRAN Issues section.

========================================================================
30 May 95

user.c:
Corrected cast on read_long when INT_LONG is FALSE.

asa.c:
Corrected cast in fprintf statement for *seed.

readme.ms, user.c, user.h:
Changed cast on asa_main() to void().

========================================================================
30 May 95

readme.ms:
Updated names of some files in archive.

========================================================================
25 May 95

readme.ms:
Changed asa_new to asa_new-X.Y, where X and Y are current version
numbers.  Added to references those reprints available in archive.

========================================================================
23 May 95

readme.ms:
The new WWW address is http://www.alumni.caltech.edu/~ingber/.

========================================================================
16 May 95

readme.ms:
Added trailing slash to http://alumni.caltech.edu/~ingber/ as this was
causing Caltech server to make an extra connection each access not
using this slash.

========================================================================
30 Apr 95

NOTES, readme.ms:
Added section Number of Generated States Required, recommending use
of log-log plots to extrapolate to the number of generated states
required to achieve a global minimum.

========================================================================
23 Apr 95

Makefile, NOTES, asa.c, asa_user.c, readme.ms, user.c:
The special ASA_TEMPLATEs used for examples are now tagged with
{ASA_TEMPLATE_MULTIPLE, ASA_TEMPLATE_SELFOPT, ASA_TEMPLATE_SAMPLE,
ASA_TEMPLATE_PARALLEL, ASA_TEMPLATE_SAVE}; the sets of Pre-Compile
OPTIONS these use are defined in asa_user.h.

========================================================================
19 Apr 95

asa.c, readme.ms:
Modified reanneal() to set the scale of the annealing of the cost
temperature within the scale of the minimum of the current cost
temperature and the absolute values of the current best and last saved
minima.

user.c:
Added example in user_reanneal_cost() to illustrate bypassing the
resetting of the current cost temperature.

========================================================================
17 Apr 95

readme.ms:
Added 1995 ASA paper that has been accepted for publication.

========================================================================
16 Apr 95

asa.c, asa_user.c, user.c:
Changed {exp, log, pow} to {F_EXP, F_LOG, F_POW} to clean up code.  The
new functions select pre-compile choices between {exp, log, pow} and
{s_exp, s_log, s_pow}, depending on {FALSE, TRUE} selected for
{FDLIBM_EXP, FDLIBM_LOG, FDLIBM_POW}.

========================================================================
13 Apr 95

readme.ms:
In the User Options section, emphasis is placed on the ability to
calculate defaults when the Program Options or the DEFINE_OPTIONS pull
in new code.

asa.c, asa_user.h, readme.ms, user.c:
In reanneal(), the algorithm for rescaling the initial cost function
temperature is now taken to be the min of the initial cost temperature
and the max of {cost_best, cost_last, EPS_DOUBLE}, to handle cases
where at the time reanneal() is called the cost function might be at
zero or going from a positive value through zero on its way to a
negative value.

CHANGES, Makefile, NOTES, asa.c, asa_opt, asa_user.h, readme.ms, user.c:
Program Options used to trigger required settings of additional Program
Options of arrays in the user module, {User_Initial_Cost_Temp,
Ratio_Temperature_Scales, User_Initial_Parameters_Temps,
Delta_Parameters, Quench_Parameters, Quench_Cost}, were moved to
DEFINE_OPTIONS, {USER_INITIAL_COST_TEMP, RATIO_TEMPERATURE_SCALES,
USER_INITIAL_PARAMETERS_TEMPS, DELTA_PARAMETERS, QUENCH_PARAMETERS,
QUENCH_COST}, and they were removed from asa_opt.

========================================================================
12 Apr 95

asa.c, user.c, user.h:
In reanneal() in asa.c, added EPS_DOUBLE to calculation of
*initial_cost_temperature to prevent problems when cost_last goes to
zero when entering reanneal().  Such circumstances still require use of
Reanneal_Cost_Function to perform some alternative algorithm in
user_reanneal_cost() and recur_user_reanneal_cost().

Makefile, asa.c, asa_opt, asa_user.h, user.c, readme.ms:
Moved OPTIONS Maximum_Reanneal_Index and Reanneal_Rescale to
DEFINE_OPTIONS MAXIMUM_REANNEAL_INDEX and REANNEAL_SCALE, since they
likely are not ever used adaptively.  Maximum_Reanneal_Index  and
Reanneal_Rescale have been removed from asa_opt.

NOTES, readme.ms:
Moved discussion from NOTES to readme.ms on which options to put into
the Program Options and which to put into the DEFINE_OPTIONS.

========================================================================
6 Apr 95

readme.ms:
Put in caution statements for the FDLIBM codes:  "This code should
first be tested with the standard ASA_TEST OPTIONS to see if the
resulting asa_out file agrees with the test_asa file."

========================================================================
2 Apr 95

asa.c, readme.ms:
When OPTIONS->Acceptance_Frequency_Modulus is 0, *number_accepted is
not tested in the PERIODIC TESTING/REANNEALING/PRINTING SECTION.
When OPTIONS->Generated_Frequency_Modulus is 0, *number_generated is
not tested in the PERIODIC TESTING/REANNEALING/PRINTING SECTION.

========================================================================
26 Mar 95

asa.c, asa_user.h, readme.ms, user.c:
When FDLIBM_EXP is set to TRUE, a function defined s_exp() is used
instead of exp().

========================================================================
25 Mar 95

asa_user.h, asa.h:
Placed some FDLIBM_POW and FDLIBM_LOG info in more standard locations.

asa.c
Added defines FDLIBM_POW, FDLIBM_LOG, and SYSTEM_CALL to header of
asa_out.

========================================================================
24 Mar 95

NOTES, asa.c, asa_user.h, readme.ms, user.c:
When FDLIBM_POW is set to TRUE, a function defined s_pow() is used
instead of pow().
When FDLIBM_LOG is set to TRUE, a function defined s_log() is used
instead of log().

========================================================================
22 Mar 95

asa.c:
Took out extra fread and fwrite lines for User_Quench_Param_Scale,
invoked when ASA_SAVE is TRUE.

========================================================================
17 Mar 95

readme.ms:
Added 1995 ASA paper.

========================================================================
9 Mar 95

user.c:
From versions 1.5 through and possibly past 3.20, there likely was a
bug in not having memory allocated to USER_OPTIONS->Asa_Data before
memory was allocated to USER_OPTIONS.  While this occurred some time
ago, the fix should have been recorded in this file.

========================================================================
8 Mar 95

user.c:
Put in reference to Tsallis statistics for ASA_TEMPLATE used for
USER_ACCEPTANCE_TEST.

========================================================================
28 Feb 95

readme.ms, user.c:
Modified the power of the cost temperature in user_cost_schedule to
improve the accuracy of the ASA_TEMPLATE provided for ASA_SAMPLE.
Added a note to the README that the selected OPTIONS must also provide
for good convergence in the optimal region.

========================================================================
26 Feb 95

NOTES:
Included more information under Colville Examples.  Added sections on
Dynamic Hill Climbing (DHC) and Tsallis Statistics.

========================================================================
19 Feb 95

Makefile, NOTES, asa.h, readme.ms:
Changed G_F.G_P to G_FIELD.G_PRECISION for clarity.

========================================================================
18 Feb 95

Makefile, asa.c, asa.h, readme.ms:
The field width and precision of doubles is specified in asa as
G_F.G_P, e.g., as %gG_F.G_P or %g-G_F.G_P.  These two Printing
DEFINE_OPTIONS are available to change the default of 12.7.

asa.c, asa.h, readme.ms:
Added new *exit_code IMMEDIATE_EXIT to take effect when the new Program
Options OPTIONS->Immediate_Exit is set to TRUE.

NOTES:
Clarified some results obtained on the Shubert problem.

========================================================================
17 Feb 95

NOTES:
Added some statement about nature of adaptive interaction sometimes
required between the user and the system.  Added statement about
trade-off between using DEFINE_OPTIONS and Program Options to turn on
some Program Options.

readme.ms, test_asa, test_usr:
TIME_CALC has been left to its default of FALSE.

asa.c, readme.ms:
On exiting asa(), N_Accepted and N_Generated contain the values
obtained at the best value of the cost function.

========================================================================
16 Feb 95

readme.ms:
Corrected typos in discussion on SELF_OPTIMIZE so that
RECUR_OPTIONS_FILE and RECUR_OPTIONS_FILE_DATA are properly
referenced.

Makefile:
Removed redundant DEFINE_OPTIONS from examples.

asa.c, asa_user.h, readme.ms:
Added N_Generated to the OPTIONS.  N_Accepted and N_Generated are now
always active to help monitor the fit.

========================================================================
12 Feb 95

NOTES:
Added section Use of COST_FILE on Shubert Problem which was used on a
comparison of SA and taboo search.

========================================================================
11 Feb 95

NOTES, asa.c, asa_opt, asa_user.h, readme.ms, user.c:
Expanded Testing_Frequency_Modulus to Acceptance_Frequency_Modulus and
Generated_Frequency_Modulus to independently decide when to enter
testing section in the main annealing loop in asa().

========================================================================
11 Feb 95

readme.ms:
Added directions to change name of cost_function in user.h as well as
in user.c if this is desired when setting COST_FILE to TRUE.

========================================================================
10 Feb 95

readme.ms:
Explained that the Maximum_Cost_Repeat test, invoked when the the cost
function repeats itself within limits set by Cost_Precision before
quitting, is performed only when Acceptance_Frequency_Modulus is
invoked, in order to help prevent exiting prematurely in a local
minimum.

========================================================================
9 Feb 95

readme.ms:
Corrected typos referring to OPTIONS_FILE and OPTIONS_FILE_DATA under
discussion of COST_FILE.

========================================================================
8 Feb 95

asa.c, asa_user.c, readme.ms, user.c:
Added COST_FILE to permit using a separate file to define the cost
function.

========================================================================
8 Feb 95

CHANGES, readme.ms:
Added CONTENTS and section headers to facilitate using this file.

LICENSE:
Changed DISCLAIMER to caps & lower case instead of all caps.

========================================================================
7 Feb 95

asa.c:
Moved calculation of curr_cost_temp in accept_new_state() out of set of
initial tests when USER_ACCEPTANCE_TEST is TRUE.

asa.c, asa_user.h, readme.ms, user.c:
Added OPTIONS->Prob_Bias when ASA_SAMPLE is TRUE to permit calculation
of sampling statistics even when USER_ACCEPTANCE_TEST is TRUE.

========================================================================
5 Feb 95

All files:
The names of all OPTIONS were changed to caps & lower case to help
distinguish them from other DEFINES.

========================================================================
1 Feb 95

LICENSE:
Changed from use of GPL COPYING license to a simpler LICENSE, based in
part on a University of California License, whose intent is to protect
the integrity of the algorithm, promote widespread usage, and require
reference to current source code.

asa.c, readme.ms, user.c:
An approach to using ASA_SAMPLE to perform integrals was added to
sample() in user.c.  The OPTIONS->Bias_Acceptance calculation in the
user module now includes the complement of the Boltzmann test if the
new state is not accepted.  Warnings were placed in readme.ms to be
sure to copy code from the asa module to the user module if
USER_ACCEPTANCE_TEST is set to TRUE when other OPTIONS like ASA_SAMPLE
also are activated.

========================================================================
27 Jan 95

user.c:
Included example of calling acceptance criteria within the cost
function when both USER_ACCEPTANCE_TEST and ASA_TEMPLATE are TRUE.

========================================================================
25 Jan 95

Makefile, NOTES, asa.c, asa.h, asa_user.c, user.c, user.h, readme.ms:
When USER_ACCEPTANCE_TEST is TRUE, some additional variables become
available to the OPTIONS and STATE structures.  When applicable, this
permits an acceptance test within the user_cost-function() as well as
in the USER_OPTIONS->user_acceptance_test(), e.g., to decide if the
acceptance test will fail based on only a partial calculation of the
cost function.

asa.c:
Corrected several calls to fread and fwrite when ASA_SAVE is TRUE.

========================================================================
18 Jan 95

Makefile:
Modified target "doc:" to keep README+ instead of README+.uu.

NOTES:
Added section explaining the use of Temperature_Ratio_Scale and
Temperature_Anneal_Scale.

asa_opt:
Put NOTE at bottom to keep all comment lines with no extra "white"
spaces.

readme.ms:
Mentioned section just above in NOTES, and added more info on searching
for locations in user.c to place cost_function().

user.c:
Print out final cost function and parameters in user_out.

========================================================================
13 Jan 95

All files:
Added DEFINE_OPTIONS OPTIONS_FILE_DATA to permit reading most
initialization data from asa_opt.  This should suffice for most
applications, just requiring insertion of the user's cost_function into
user.c.  Similarly, RECUR_OPTIONS_FILE and RECUR_OPTIONS_FILE_DATA were
added for use when SELF_OPTIMIZE is TRUE.

Added comments around MY_COST locations.

========================================================================
12 Jan 95

All files:
Updated Copyright 1995 notices.

========================================================================
10 Jan 95

readme.ms:
Added note to consider a possible use of Quenching OPTIONS when
adaptively modifying the number of active parameters in the fit.

========================================================================
30 Dec 94

readme.ms:
Corrected typos in describing use of OPTIONS->User_Cost_Temperature.

========================================================================
20 Dec 94

user.c:
Included examples of Cauchy and Gaussian distributions in
[recur]_user_generating_function().

========================================================================
19 Dec 94

asa.c, asa.h, readme.ms, user.c, user.h:
Corrected use of commented modifications to
[recur_]user_generating_function() by passing init_param_temp_v which
can change during reannealing.

asa.c, asa.h, readme.ms, user.c, user.h:
For USER_ACCEPTANCE_TEST, added more parameters to
[recur_]user_acceptance_test() on the same order as given to
[recur_]user_generating_function().

========================================================================
18 Dec 94

Makefile, NOTES, asa.c, asa.h, asa_user.h, readme.ms, user.c, user.h:
Added USER_GENERATING_FUNCTION to permit using an alternative function
to the ASA distribution for generating new states.
Changed name of COST_PARAMETER_SCALE to Cost_Parameter_Scale_Ratio.

========================================================================
17 Dec 94

Makefile, NOTES, asa.c, asa.h, asa_user.h, readme.ms, user.c, user.h:
Added USER_ACCEPTANCE_TEST to permit using an alternative function to
the Boltzmann distribution for the acceptance test.

========================================================================
16 Dec 94

Makefile, NOTES, asa.c, asa.h, asa_opt, asa_user.h, readme.ms, user.c, user.h:
Added OPTIONS->Reanneal_Parameters and OPTIONS->Reanneal_Cost to
independently control reannealing of the cost temperature and the
parameter temperatures.
Added USER_REANNEAL_PARAMETERS and USER_REANNEAL_COST to control
reannealing of temperatures with user-defined functions in user.c.
Breaking out separate algorithms for the cost temperature can be very
useful for systems where the scales of the acceptance criteria do not
simply correlate the cost temperature with the current best value of
the cost function.

========================================================================
15 Dec 94

NOTES:
Added sub-topics for searches on keywords.  Added reference to use of
parameter_minimum[] and parameter_maximum[] in the README to discussion
of Equality Constraints.

readme.ms:
Added mention of use of searches on key words in files in browser or
editor.

========================================================================
13 Dec 94

NOTES:
Expanded discussion on Equality Constraints.

========================================================================
8 Dec 94

NOTES, readme.ms:
Added some comments addressing the possible use of the Quenching
OPTIONS to slow down annealing by setting User_Quench_Param_Scale[] to
values less than 1.

========================================================================
7 Dec 94

readme.ms:
Added example of use of adaptively using parameter_lower_bound[] and
parameter_upper_bound[] to efficiently check subsets of new
cost_parameters[] in cost_function() for correlated constraints.

NOTES:
Updated some comments to reflect recent changes in the code.

========================================================================
23 Nov 94

NOTES, readme.ms:
Added information to NOTES that reflects on recurring queries in ASA
correspondence.

========================================================================
13 Nov 94

asa.c, asa_user.h, readme.ms:
Corrected several casts used when ASA_SAVE is set to TRUE.

Makefile:
Added OPTIONAL_DATA_INT.

========================================================================
12 Nov 94

asa.c, asa.h, readme.ms:
Added SYSTEM_CALL[TRUE] to permit user to avoid system call in asa.c,
to copy asa_save to asa_save.old, on machines that do not permit these
commands.

========================================================================
8 Nov 94 [modified 14 Apr 95]

Makefile, asa.c, asa_user.h:
In Makefile, set USER_INITIAL_COST_TEMP and
USER_INITIAL_PARAMETERS_TEMPS to TRUE when ASA_SAVE and ASA_TEMPLATE
are TRUE, to bypass any calculations of the user cost function and use
of the random number generator before asa_save is read in.  This also
gives the user the option of saving all shuffled random seeds in the
user module.

asa.c:
When ASA_SAVE is TRUE, all OPTIONS are saved in case they have been
adaptively changed by the user.

asa.c, asa.h, asa_user.h, readme.ms, user.c, user.h:
Added the Program Option OPTIONAL_DATA_INT to save integer data if
required.

========================================================================
7 Nov 94

asa.c, asa.h, asa_user.h, readme.ms, user.c:
Added ASA_SAVE to recover runs from last best accepted state.

========================================================================
6 Nov 94

asa.c, asa.h, asa_user.h, readme.ms, user.c, user.h:
Pass the random seed, first defined in the user module, throughout the
asa() calls.

========================================================================
26 Oct 94

NOTES, readme.ms:
Added comments to direct people to NOTES for parallel code.

========================================================================
23 Oct 94

asa.c, asa.h, asa_user.h, readme.ms, user.c:
Corrected ASA_PARALLEL code by adding OPTIONS->Gener_Block.
Permit OPTIONS->Gener_Block_Max to be greater than number of
processors.

asa.c, readme.ms:
If and when OPTIONS->Gener_Mov_Avr is set to 0, then
OPTIONS->Gener_Block is not changed thereafter.

========================================================================
22 Oct 94

asa.c, asa.h, asa_user.h, readme.ms, user.c:
Introduced some hooks as a structure for a parallelized ASA.

========================================================================
20 Oct 94

user.c:
In the ASA_TEMPLATE for ASA_SAMPLE, User_Tangents is set to TRUE to
illustrate the use of this OPTIONS.

========================================================================
19 Oct 94

asa.c, asa_user.h, readme.ms, user.c:
Added OPTIONS->User_Tangents[FALSE] to permit user to calculate
tangents[] when User_Tangents is set to TRUE, instead of using the
default numerical evaluation.

asa.c:
The value of number_invalid_generated_states is now kept track of
during the calculation of derivatives.

========================================================================
13 Oct 94

asa.c, asa.h:
Created asa_print_options() to move printing of user's options to a
separate procedure, making it easier to read asa.c.

========================================================================
11 Oct 94

user.c:
Changed cast on kranf in randflt() to unsigned to permit use of
arbitrary values, e.g., that might arise from using task id's.

asa.c, asa.h:
For the sake of some efficiency, MIN_EXPONENT and MAX_EXPONENT,
arguments to the macro EXPONENT_CHECK(), were changed to static
variables.

asa.c:
A bug was corrected in one of the loops testing both
Sequential_Parameters and PARAMETER_RANGE_TOO_SMALL(), that could cause
a never-ending loop.

========================================================================
5 Oct 94

NOTES, readme.ms:
Added emphasis in OPTIONS FOR LARGE SPACES section that these
suggestions are to _speed up_ annealing/quenching, while some
suggestions in the README are to _slow down_ annealing.

========================================================================
3 Oct 94

Makefile, NOTES, readme.ms:
Used a more standard format for FLAGS, replacing CFLAGS with
CDEBUGFLAGS, CFLAGS and LDFLAGS.

========================================================================
30 Sep 94

NOTES:
Added simple routine to enable users to change random seed.

asa.c, asa.h, asa_user.h, readme.ms:
Completed ANSI prototypes for parameter calls to
*user_random_generator(...) and *user_cost_function(...), to enable
code to compile smoothly under C++.

========================================================================
30 Aug 94

readme.ms:
Added availability of code and papers via WWW
http://alumni.caltech.edu/~ingber/

========================================================================
19 Aug 94

readme.ms, user.c:
Added MY_COST guides for quick reference to insert user's own cost
function.

========================================================================
28 Jun 94

readme.ms:
Added acknowledgment of award from the Pittsburgh Supercomputing
Center through the National Science Foundation (NSF).  Added
information for requesting commercial consulting appointments.

========================================================================
9 Jun 94

readme.ms:
Announced parallelizing ASA project.

========================================================================
6 Jun 94

user.c:
Deleted free statements for USER_OPTIONS->Cost_Schedule,
USER_OPTIONS->Reanneal_Params_Function, RECUR_USER_OPTIONS->Cost_Schedule,
RECUR_USER_OPTIONS->Reanneal_Params_Function which causes crashes on some
machines when USER_COST_SCHEDULE and USER_REANNEAL_PARAMETERS are used.

user.c:
Fixed memory leak when ASA_SAMPLE=TRUE.

========================================================================
4 Jun 94

NOTES:
Removed contributed code that had Copyright other than the GPL.

user.c:
Slowed down USER_COST_SCHEDULE in sample() when ASA_SAMPLE and
ASA_TEMPLATE are TRUE (template in Makefile) to permit better sampling
at all four local optima of the test function.

========================================================================
27 May 94

Makefile, asa.c, asa_user.h, readme.ms, user.c, user.h:
When ASA_SAMPLE is set to TRUE, data is collected by ASA during its
global optimization process to importance-sample the user's variable
Five OPTIONS become available to monitor the sampling: N_Accepted,
Bias_Acceptance, Bias_Generated, Average_Weights, and Limit_Weights.

========================================================================
4 May 94

NOTES:
Included more info on using time modules on PCs.

========================================================================
27 Apr 94

user.c:
Corrected test of argc to be argc > 1.  This caused problems on some
machines.

readme.ms:
Added information about asa_new.

========================================================================
19 Apr 94

readme.ms:
Corrected typo in defining range of RNG for acceptance criteria.

========================================================================
18 Apr 94

readme.ms:
Formatted Table of Contents to include section numbers.

========================================================================
17 Apr 94

asa.c, readme.ms, user.c:
Permit curvature calculations whenever tangents are calculated if
OPTIONS->Curvature_0 is set to -1.

========================================================================
16 Apr 94

readme.ms:
Reformatted page numbering of Table of Contents.

========================================================================
15 Apr 94

Makefile, readme.ms:
Include README+.uu instead of README+Z.uu in ASA-shar.

asa.h, asa_user.h:
Moved some TIME_CALC items from asa_user.h to asa.h.

========================================================================
13 Apr 94

user.c:
Placed comments on using 'ptr_out = stdout;' if printout is desired to
stdout instead of user_out.

========================================================================
10 Apr 94

asa.c, asa.h, readme.ms, user.h:
ASA can print to stdout if ASA_OUT or USER_OPTIONS->Asa_Out_File is set
to "STDOUT".  #include <string.h> was added to asa.h and user.h.

Makefile, asa.c, asa.h, asa_user.h, readme.ms, user.c, user.h:
Created asa_user.h to contain all common definitions and macros
previously repeated in asa.h and user.h.

asa.c, asa.h, asa_user.h, readme.ms, user.c, user.h:
The time module was redefined in the user and asa modules so that only
one copy of this code now resides in asa.c

asa.c:
At the risk of offending C purists, a goto EXIT_ASA was inserted at
several locations, eliminating over 300 lines of code, making this file
more readable (usually the rationale for _not_ using goto).

========================================================================
8 Apr 94
 
readme.ms:
Put in caution that passing asa.[13nl] which is the equivalent of
README[+] through man may strip out some items like \\"asa_out\\".

asa.c, asa.h, readme.ms, user.c, user.h:
Added Limit_Generated OPTION, but now permit either Limit_Acceptances
or Limit_Generated to take 0 to run without these constraints, e.g.,
which can be useful for machines that do not process large integers.
 
readme.ms:
Defined Table of Contents at end.
 
========================================================================
7 Apr 94

readme.ms:
Added an index of all headers.

========================================================================
6 Apr 94

The inclusion of user-defined functional changes in addition to ASA
parameter modifications justifies a change in the major version
number.

asa.c:
Made off-diagonal curvature calculation a bit more efficient.

NOTES, readme.ms:
Added some information on the use of USER_COST_SCHEDULE.

========================================================================
5 Apr 94

asa.c:
Curvatures are now calculated correctly at boundaries of specified
ranges.

asa.c:
Some initialization equations were copied into the main annealing loop
to permit greater adaptive use of Temperature_Ratio_Scale,
Temperature_Anneal_Scale, Cost_Parameter_Scale_Ratio, QUENCH_PARAMETERS
and QUENCH_COST OPTIONS.

readme.ms:
Added comment on using QUENCH_COST OPTION to slow down cost temperature
schedule.

asa.c, asa.h, readme.ms, user.c, user.h:
The function used for the cost_function temperature  schedule is of the
form test_temperature in asa.c.  You can define your own function of
test_temperature adaptively in user.c in Cost_Schedule() (and in
recur_Cost_Schedule() if SELF_OPTIMIZE is TRUE) by setting the
Pre-Compile DEFINE_OPTIONS USER_COST_SCHEDULE to TRUE.

========================================================================
31 Mar 94

readme.ms:
Added info on bitftp service and the current IP number of the Caltech
archive.

========================================================================
29 Mar 94

readme.ms:
README+ is only compressed and uuencoded in the ASA-shar[.Z] versions.

========================================================================
17 Mar 94

readme.ms:
Added some comments to the use of QUENCH_COST.

========================================================================
12 Mar 94

Makefile:
Added README+ to doc: compilation to give enhanced text.  This is
compressed and uuencoded to pass through shar.

========================================================================
11 Mar 94

Makefile:
Formatted README to include indents.

========================================================================
9 Mar 94

NOTES:
Added some comments to the FORTRAN section.

========================================================================
8 Mar 94

asa.c:
Added a missing *curvature_flag test to calculation of curvature[].

NOTES:
Added some instructions for calling FORTRAN cost functions from ASA.

========================================================================
4 Mar 94

readme.ms:
Added ASA.tar.Z version.

========================================================================
3 Mar 94

readme.ms:
Deleted IP number for ftp.alumni.caltech.edu as this is subject to
change.

========================================================================
17 Feb 94

asa.c, asa.h:
Reset Sequential_Parameters to its starting value on exiting asa().
This could be important when doing multiple runs.

========================================================================
16 Feb 94

user.c:
Clarified notation used in ASA test problem.

========================================================================
15 Feb 94

asa.c, asa.h, asa_opt, readme.ms, user.c, user.h:
Added adaptive Sequential_Parameters to OPTIONS.

NOTES, readme.ms, user.c:
Several small changes to reflect new ASA_LIB OPTION.

========================================================================
13 Feb 94

asa.c, asa.h, user.c, user.h:
Added Pre-Compile OPTION ASA_LIB to facilitate calls of asa() from
another program when this is set to TRUE.

user.h:
Removed extra main prototype when SELF_OPTIMIZE is TRUE and HAVE_ANSI
is FALSE.

========================================================================
9 Feb 94

NOTES, readme.ms:
Noted minor change of archive address to ftp.alumni.caltech.edu
[131.215.48.62].

========================================================================
3 Feb 94

asa.c, asa.g, user.c, user.h:
Reformatted files using GNU indent-1.9.1.

========================================================================
1 Feb 94

readme.ms:
Added directions for compiling the ASA test problem without the use of
the Makefile.

========================================================================
30 Jan 94

readme.ms:
The subdirectory TESTS has been eliminated, and replaced by the two
files test_asa and test_usr.

user.c:
I wrote the ASA test problem from scratch to closely follow its
published description.  It now runs a bit faster under gcc.

========================================================================
27 Jan 94

Makefile, asa.c, asa.h, readme.ms, user.c, user.h, TESTS/asa...:
Added Pre-Compile DEFINE_OPTIONS USER_REANNEAL_PARAMETERS.  When this is
TRUE, the user can define the reannealing function, adaptively if
required, in user.c in function user_reanneal() (and in
recur_user_reanneal() if SELF_OPTIMIZE is TRUE).

========================================================================
18 Jan 94

NOTES:
The section PAPERS USING ASA was broken out into a separate file,
asa_papers, in ftp.caltech.edu:pub/ingber.  This is to minimize
updating versions of the ASA directory due to changes in this section.

========================================================================
17 Jan 94

NOTES:
Updated locations of papers in section PAPERS USING ASA.

========================================================================
14 Jan 94

asa.c:
Deleted quench flags as they are now unnecessary.

========================================================================
13 Jan 94

asa.c, asa.h:
Fixed bug in use of OPTIONS->User_Temperature_Ratio.

readme.ms:
Corrected function parameter lists to agree with changes in user.c and
user.h.

========================================================================
12 Jan 94

user.c, user.h:
Cleaned up a few small memory leaks.  Removed several flags that could
be replaced by reference to USER_OPTIONS and RECUR_USER_OPTIONS.

========================================================================
11 Jan 94

NOTES, readme.ms:
Changed names of directories to those in newly overhauled archive.

========================================================================
10 Jan 94

NOTES:
Updated references in section PAPERS USING ASA.

========================================================================
8 Jan 94

readme.ms:
Added info that ASA.zip is now maintained in the ASA archive.

========================================================================
1 Jan 94

NOTES:
Under PAPERS USING ASA, added reference to paper by Tang, Tracy,
Boozer, deBrauw, and Brown.

========================================================================
13 Dec 93

user.c:
Corrected dimension of asa_file[].

========================================================================
26 Nov 93

ASA version 2.1:
Experimentation with SELF_OPTIMIZE, Quenching and ASA_TEMPLATEs has
progressed to a stage warranting a change in the major version number.

NOTES:
Added ASA-related papers available in the Caltech archive.

========================================================================
22 Nov 93

asa.c, user.c:
Clarified use of OPTIONAL_DATA in ASA_TEMPLATE when used with
SELF_OPTIMIZE.

readme.ms:
Added outline of use of each ASA_TEMPLATE.

Makefile:
Added comments on the use of the provided sets of DEFINE_OPTIONS.

========================================================================
17 Nov 93

user.c:
Cleaned up USER_ASA_OUT ASA_TEMPLATE string calls to work under Sun acc
without errors and under gcc without warnings.

========================================================================
16 Nov 93

NOTES:
Updated references to papers.

CHANGES:
Updated references.

========================================================================
15 Nov 93

asa.c, user.c:
More fixes to handle memory leaks.

========================================================================
14 Nov 93

asa.c, user.c:
Added free() calls to get rid of pesky memory leaks which arose under
SELF_OPTIMIZE.

Makefile:
Corrected DEFINE_OPTIONS to properly use USER_ASA_OUT and ASA_TEMPLATE
for multiple calls to asa.

========================================================================
12 Nov 93

asa.c:
Added modification to keep parameters within bounds when calculating
*tangents in cost_derivatives().

========================================================================
6 Nov 93

Makefile, readme.ms:
Changed packaged code to be in both ASA-shar.Z and ASA.tar.gz formats.

asa.c:
Added tests for integer parameters in generate_new_state(), in case
some system rounds differently.

========================================================================
4 Nov 93

Makefile, asa.c, asa.h, readme.ms, user.c, user.h, TESTS/asa...:
Added TIME_STD Pre-Compile Option to use Unix-standard macros for time
routines, as required by some systems, e.g., hpux.

========================================================================
3 Nov 93

NOTES:
Included papers by wu@mcrcim.mcgill.edu and gblais@mcrcim.mcgill.edu
under PAPERS USING ASA.

========================================================================
23 Oct 93

asa.c:
INT_ALLOC and INT_LONG defines had to be corrected around a few
fprintf statements.

readme.ms, TESTS: 
On the Sun, gcc-2.5.0 update runs were performed.  Since the change in
definitions of MIN_DOUBLE and MAX_DOUBLE, setting SMALL_FLOAT=E-12 does
not agree with SMALL_FLOAT=E-18 and SMALL_FLOAT=E-20 (the latter two
agree), unless MIN_DOUBLE=E-18 also is set.

========================================================================
15 Oct 93

asa.c:
Added print statements for some additional OPTIONS.

readme.ms:
Due to the increased volume of interaction, I had to insert statements
that I cannot assume the task of mailing out hardcopies of code or
papers, and that my time assisting people with their queries on my
codes and papers must be limited to electronic mail correspondence.

========================================================================
14 Oct 93

Makefile, asa.c, asa.h, readme.ms, user.c, user.h:
Added ASA_TEST[FALSE] to be set to TRUE to use ASA test problem.  This
permits users to add their own problem without having to overwrite the
ASA test example.

Added ASA_TEMPLATE[FALSE] wrappers around tests associated with several
OPTIONS.  This permits use of these OPTIONS without having to delete
these extra tests.

========================================================================
18 Sep 93

user.c:
Added reference for RNG used in the user module.

========================================================================
24 Sep 93

NOTES:
Added reference to Wall Street Journal article mentioning ASA.

========================================================================
13 Sep 93

NOTES, TESTS/HP_gcc:
Added update on modifications available for HP machines.  Added HP_gcc
file in TESTS.

TESTS/SHRT2LNG:
Apparently this file was blanked out the past few versions, and has now
been restored.

========================================================================
2 Sep 93

NOTES:
Placed ftp locations in PAPERS USING ASA.

========================================================================
31 Aug 93

NOTES:
Added info on setting INT_ALLOC and INT_LONG to TRUE on a PC using MS
Quick C.

========================================================================
27 Aug 93

NOTES:
Added info on setting IO_PROTOTYPES to FALSE on a PC using Turbo C++.

========================================================================
18 Aug 93

NOTES, asa.c, asa.h, user.c, user.h:
Some minor changes to accommodate Turbo C.

========================================================================
16 Aug 93

readme.ms:
Used the standard /usr/ucb/fmt to format all paragraphs.

========================================================================
24 Jul 93

Minor editing corrections.

========================================================================
10 Jul 93

readme.ms:
Added more detail on sources of documentation and how to use a copy
of the README file as an asa manpage.

========================================================================
5 Jul 93

Makefile, asa.c, asa.h, TESTS/asa...:
Added ASA_PRINT_MORE Printing Option.

========================================================================
29 Jun 93

asa.c, asa.h, user.c, user.h:
Moved prototypes for getrusage() from .c to .h files, together with
other prototypes.

user.c:
Found a Bus error during run for some versions of gcc (2.2.2 on a
sparc/4.1.3) when using `#define ARRAY_LIMIT *parameter_dimension'
when 'if __GNUC__' is TRUE, so this was set to `#define ARRAY_LIMIT
*parameter_dimension 4'.

Makefile, asa.h, user.h, readme.ms, TESTS/*_*:
Set default of TIME_CALC to FALSE since it gives trouble on many
machines.

NOTES:
Added contributed code to permit time routines to work on HPs.

========================================================================
16 Jun 93

Makefile, asa.h, readme.ms, TESTS/asa...:
Changed definition of MIN_DOUBLE to smallest positive double.

========================================================================
12 Jun 93

NOTES:
Added short note on how to adapt user module to permit ASA to be
called from another code.

========================================================================
10 Jun 93

CHANGES:
Moved list of dates of modifications to bottom of file.  Included
dates of original RATFOR/FORTRAN code from 1987 and original C code
from 1991.

========================================================================
9 Jun 93

readme.ms:
Moved description of FUNCTION_REANNEAL_PARAMS to Pre-Compile section.
Elaborated on proper use of Pre-Compile Options.

========================================================================
8 Jun 93

Makefile, asa.c, asa.h, asa_opt, readme.ms, user.c, user.h, TESTS/...:
Changed name of MAX_FLOAT to MAX_DOUBLE.  Changed name of MIN_FLOAT
to MIN_DOUBLE.  Added EPS_DOUBLE to default to SMALL_FLOAT.  This is
considered a precursor to getting better contributions to defining
these values at a later date.  Made default of Cost_Precision to
1.0E-18, independent of these other values.  TESTS are not effected.

========================================================================
6 Jun 93

user.c:
Shortened the names of some variable asa_out* files to not exceed
8 characters.

asa.c, asa.h, readme.ms:
Added FUNCTION_REANNEAL_PARAMS in asa.h to give users more control over the
function determining reannealing.

========================================================================
5 Jun 93

Makefile, asa.c, readme.ms, TESTS/asa...:
Use SMALL_FLOAT for NO_PARAM_TEMP_TEST and NO_COST_TEMP_TEST (new names
for NO_P_TEMP_TEST and NO_C_TEMP_TEST) if they are TRUE.  Sharpened
tests of temperatures for NO_PARAM_TEMP_TEST and NO_COST_TEMP_TEST
set to FALSE.  Now all test cases agree in intermediate values.
TESTS/SUN_E-12 was deleted.

========================================================================
4 Jun 93

asa.c, asa.h, readme.ms, TESTS/asa...:
Added NO_P_TEMP_TEST and NO_C_TEMP_TEST Pre-Compile options for
testing purposes.

========================================================================
2 Jun 93

asa.c:
Fixed bug in reanneal() by placing some fabs() for some arguments
of pow().

Fixed bug in fclose() by placing statement at end of asa_exit().
This affected calculations with SELF_OPTIMIZE= TRUE.

user.c:
Edited SELF_OPTIMIZE=TRUE and USER_ASA_OUT=TRUE sections.

========================================================================
31 May 93

asa.c:
Adjusted initialization of *number_acceptances_saved = 0.

TESTS/:
All tests were updated.

user.c:
Added USER_ASA_OUT to SELF_OPTIMIZE=TRUE portion, and cleaned up
USER_ASA_OUT calls in SELF_OPTIMIZE=FALSE portions.

========================================================================
25 May 93

NOTES:
Added CONTENTS with SECTION_NAMES to search on topics.

========================================================================
29 May 93

Makefile, asa.c, asa.h, readme.ms, user.c, user.h, TESTS/asa...:
Added Pre-Compile Option USER_ASA_OUT to work with Program Option
*Asa_Out_File, to permit dynamic naming of asa() output files from
the user module.

========================================================================
24 May 93

NOTES, readme.ms:
Reorganized some references, and started list of ASA (p)reprints at
the bottom of this file, instead of increasing length of readme.ms.

asa.c:
Minor cleaning up of some statements, taking out extra parentheses.

========================================================================
22 May 93

longname.h:
Removed and made obsolete by changes in a few parameter names in the
asa module.

asa.c, asa.h, readme.ms, user.c, user.h, TESTS/asa...:
Changed all (*[a-zA-Z_]). constructs to [a-zA-Z_]-> to improve
readability.  The original form was to minimize notation for many
users, but the use of many *OPTIONS calls made this change more
reasonable.

========================================================================
17 May 93

asa.c:
Corrected typo bugs in reanneal() introduced when inserted
OPTIONS->User_Quench_Param_Scale[] factors.

========================================================================
16 May 93

asa.c, asa.h, asa_opt, readme.ms, user.c, user.h, TESTS/asa...:
Introduced two QUENCH_PARAMETERS and QUENCH_COST, to permit some
"quenching" especially in very large parameter spaces.

========================================================================
15 May 93

asa.h, user.c, user.h:
Added a __GNUC__ define.  This is useful to set ARRAY_LIMIT to
*parameter_dimension in user.c when using gcc.

asa.c, asa.h:
Removed some superfluous parameters from parameter lists.

========================================================================
15 May 93

asa.c:
Enforced fflush() for updated new best states for printout for large
parameter spaces.

readme:
ASA now can be obtained from ftp.caltech.edu where it can be maintained
in a timely manner.

========================================================================
14 May 93

asa.c:
Reorganized use of ASA_PRINT_INTERMED to be more useful for large
dimensions.

readme:
Added some comments to Program Options for large dimensions.

========================================================================
13 May 93

readme:
Updated instructions for retrieval of files.  The previous instructions
were too terse for some users.

========================================================================
11 May 93

asa.c, asa.h:
Deleted unused references to ASA_OPTIONS and ADAPTIVE define.

readme.ms:
Edited in several places and updated section on availability.

========================================================================
9 May 93

Makefile, asa.c, asa.h, readme.ms, user.c, user.h:
Added *Asa_Data to *OPTIONS when the Pre-Compile option OPTIONAL_DATA
is set to TRUE.  This permits additional information to be returned
to the user module from the asa module.  An example of usage is given
for the test problem when SELF_OPTIMIZE is TRUE.

========================================================================
8 May 93

Makefile, asa.h, readme.ms:
ASA_PRINT_INTERMED[=TRUE] is added as a Pre-Compile option.  This is
useful for large parameter spaces as well as when SELF_OPTIMIZE is
set to TRUE.

user.c:
The test problem is modified to set the dimension and indexing of
all arrays to correspond to *parameter_dimension.  This is useful to
easily change the test problem, e.g., to test large parameter spaces.

user.c:
Added some output at the end of a run when SELF_OPTIMIZE is TRUE,
in case ASA_PRINT is FALSE.

asa.c:
Closed off several fclose() statements used when SELF_OPTIMIZE is TRUE,
but ASA_PRINT is FALSE

========================================================================
7 May 93

asa.c:
Corrected allocation of memory to temperature_scale_parameters when
RATIO_TEMPERATURE_SCALES is set to TRUE.

========================================================================
5 May 93

readme.ms:
Latest updates of code and papers may be retrieved via anonymous ftp
from ftp.caltech.edu in the pub/ingber directory.

========================================================================
27 Apr 93

Makefile, asa.c, asa.h, readme.ms, user.h:
The cast on *number_parameters is set by ALLOC_INT which defaults to
the cast of LONG_INT.  On some machines, ALLOC_INT might have to be
set to TRUE to set this cast to int if there is a strict requirement
to use an unsigned int for calloc.

========================================================================
		@@CONTRIBUTORS
========================================================================

Acknowledgments to people who have contributed to the ASA code:

Ahmed Ouenes		<ouenes@baervan.nmt.edu>
Alan Cabrera		<adc@sanwabgk.com>
Barak Cohen		<goman@netvision.net.il>
Bill Wong		<bgwong@holonet.net>
Bruce Rosen		<rosen@ringer.cs.utsa.edu>
Cullen Schaffer		<schaffer@marna.hunter.cuny.edu>
Dan Adler		<adan@tudor.com>
David Hough		<david.hough@eng.sun.com>
David Zuhn		<zoo@cygnus.com>
Davyd Norris		<daffy@sci.monash.edu.au>
Edward Peschko		<peschko@mermaid.micro.umn.edu>
Eric Grosse		<ehg@research.att.com>
Geoff Kuenning		<geoff@itcorp.com>
Giacomo Indiveri	<giacomo@dibe.unige.it>
Graham Campbell		<campbell@ams.sunysb.edu>
Guy Carpenter		<guy@tfrc.csiro.au>
Heather Sherman		<heather@cco.caltech.edu>
Helmut Jarausch		<jarausch@igpm.rwth-aachen.de>
Hope Pioro		<hpioro@bank-banque-canada.ca>
Jacob Engelbrecht	<engel@virus.fki.dth.dk>
James Clark		<jjc@ai.mit.edu>
John Selverian		<selveria@rd.sylvania.com>
Kevin Burton		<kburton@noran.com>
Lee Hon Man		<89299465@cphkvx.cphk.hk>
Leslie Picardo		<picardo@alpha.ces.cwru.edu>
Mark Johnson		<mjohnson@netcom.com>
Matthew O'Hara		<mattman@cml.berkeley.edu>
Micah Altman		<micah@cco.caltech.edu>
Ravi Bansal		<xbansal@suned.zoo.cs.yale.edu>
Shinichi Sakata		<ssakata@econ.lsa.umich.edu>
Sonja Zwissler		<zwissler@askdonald.ask.uni-karlsruhe.de>
Steven Gillispie	<steve_gillispie@oscar.rad.washington.edu>
Timothy Burns		<tim@isis.usi.utah.edu>
Walter Roberson		<roberson@hamer.ibd.nrc.ca>
Wolfram Gloger		<wmglo@dent.med.uni-muenchen.de>
Wu Kenong		<wu@mcrcim.mcgill.edu>
Yuan Liu		<liu@cs.umd.edu>
Zening Ge		<zg11@midway.uchicago.edu>

========================================================================
		@@VERSION DATES
========================================================================
* Modification History:
*	02 Mar 96:	Version	12.10
*	29 Feb 96:	Version	12.9
*	28 Feb 96:	Version	12.8
*	13 Feb 96:	Version	12.7
*	09 Feb 96:	Version	12.6
*	18 Jan 96:	Version	12.5
*	17 Jan 96:	Version	12.4
*	15 Jan 96:	Version	12.3
*	15 Jan 96:	Version	12.2
*	13 Jan 96:	Version	12.1
*	10 Jan 96:	Version	11.28
*	08 Jan 96:	Version	11.27
*	08 Jan 96:	Version	11.26
*	06 Jan 96:	Version	11.25
*	05 Jan 96:	Version	11.24
*	05 Jan 96:	Version	11.23
*	05 Jan 96:	Version	11.22
*	30 Dec 95:	Version	11.21
*	29 Dec 95:	Version	11.20
*	29 Dec 95:	Version	11.19
*	19 Dec 95:	Version	11.18
*	17 Dec 95:	Version	11.17
*	08 Dec 95:	Version	11.16
*	07 Dec 95:	Version	11.15
*	07 Dec 95:	Version	11.14
*	07 Dec 95:	Version	11.13
*	07 Dec 95:	Version	11.12
*	05 Dec 95:	Version	11.11
*	05 Dec 95:	Version	11.10
*	01 Dec 95:	Version	11.9
*	20 Nov 95:	Version	11.8
*	17 Nov 95:	Version	11.7
*	16 Nov 95:	Version	11.6
*	04 Nov 95:	Version	11.5
*	04 Nov 95:	Version	11.4
*	03 Nov 95:	Version	11.3
*	03 Nov 95:	Version	11.2
*	03 Nov 95:	Version	11.1
*	01 Nov 95:	Version	10.23
*	30 Oct 95:	Version	10.22
*	30 Oct 95:	Version	10.21
*	29 Oct 95:	Version	10.20
*	28 Oct 95:	Version	10.19
*	22 Oct 95:	Version	10.18
*	22 Oct 95:	Version	10.17
*	04 Oct 95:	Version	10.16
*	01 Oct 95:	Version	10.15
*	01 Oct 95:	Version	10.14
*	01 Oct 95:	Version	10.13
*	30 Sep 95:	Version	10.12
*	29 Sep 95:	Version	10.11
*	29 Sep 95:	Version	10.10
*	29 Sep 95:	Version	10.9
*	28 Sep 95:	Version	10.8
*	28 Sep 95:	Version	10.7
*	28 Sep 95:	Version	10.6
*	24 Sep 95:	Version	10.5
*	24 Sep 95:	Version	10.4
*	16 Sep 95:	Version	10.3
*	15 Sep 95:	Version	10.2
*	15 Sep 95:	Version	10.1
*	14 Sep 95:	Version	9.8
*	13 Sep 95:	Version	9.7
*	13 Sep 95:	Version	9.6
*	08 Sep 95:	Version	9.5
*	03 Sep 95:	Version	9.4
*	01 Sep 95:	Version	9.3
*	29 Aug 95:	Version	9.2
*	25 Aug 95:	Version	9.1
*	21 Aug 95:	Version	8.14
*	19 Aug 95:	Version	8.13
*	13 Aug 95:	Version	8.12
*	08 Aug 95:	Version	8.11
*	06 Aug 95:	Version	8.10
*	04 Aug 95:	Version	8.9
*	03 Aug 95:	Version	8.8
*	03 Aug 95:	Version	8.7
*	29 Jul 95:	Version	8.6
*	15 Jul 95:	Version	8.5
*	06 Jul 95:	Version	8.4
*	06 Jul 95:	Version	8.3
*	02 Jul 95:	Version	8.2
*	15 Jun 95:	Version	8.1
*	09 Jun 95:	Version	7.17
*	05 Jun 95:	Version	7.16
*	30 May 95:	Version	7.15
*	30 May 95:	Version	7.14
*	25 May 95:	Version	7.13
*	25 May 95:	Version	7.12
*	16 May 95:	Version	7.11
*	04 May 95:	Version	7.10
*	30 Apr 95:	Version	7.9
*	23 Apr 95:	Version	7.8
*	19 Apr 95:	Version	7.7
*	19 Apr 95:	Version	7.6
*	17 Apr 95:	Version	7.5
*	16 Apr 95:	Version	7.4
*	14 Apr 95:	Version	7.3
*	14 Apr 95:	Version	7.2
*	12 Apr 95:	Version	7.1
*	02 Apr 95:	Version	6.32
*	26 Mar 95:	Version	6.31
*	25 Mar 95:	Version	6.30
*	24 Mar 95:	Version	6.29
*	24 Mar 95:	Version	6.28
*	24 Mar 95:	Version	6.27
*	17 Mar 95:	Version	6.26
*	09 Mar 95:	Version	6.25
*	08 Mar 95:	Version	6.24
*	28 Feb 95:	Version	6.23
*	26 Feb 95:	Version	6.22
*	19 Feb 95:	Version	6.21
*	18 Feb 95:	Version	6.20
*	18 Feb 95:	Version	6.19
*	18 Feb 95:	Version	6.18
*	18 Feb 95:	Version	6.17
*	17 Feb 95:	Version	6.16
*	17 Feb 95:	Version	6.15
*	17 Feb 95:	Version	6.14
*	16 Feb 95:	Version	6.13
*	16 Feb 95:	Version	6.12
*	16 Feb 95:	Version	6.11
*	14 Feb 95:	Version	6.10
*	11 Feb 95:	Version	6.9
*	11 Feb 95:	Version	6.8
*	09 Feb 95:	Version	6.7
*	08 Feb 95:	Version	6.6
*	08 Feb 95:	Version	6.5
*	07 Feb 95:	Version	6.4
*	05 Feb 95:	Version	6.3
*	01 Feb 95:	Version	6.2
*	01 Feb 95:	Version	6.1
*	27 Jan 95:	Version	5.13
*	26 Jan 95:	Version	5.12
*	18 Jan 95:	Version	5.11
*	13 Jan 95:	Version	5.10
*	13 Jan 95:	Version	5.9
*	12 Jan 95:	Version	5.8
*	30 Dec 94:	Version	5.7
*	20 Dec 94:	Version	5.6
*	19 Dec 94:	Version	5.5
*	19 Dec 94:	Version	5.4
*	18 Dec 94:	Version	5.3
*	17 Dec 94:	Version	5.2
*	16 Dec 94:	Version	5.1
*	15 Dec 94:	Version	4.12
*	13 Dec 94:	Version	4.11
*	08 Dec 94:	Version	4.10
*	23 Nov 94:	Version	4.9
*	13 Nov 94:	Version	4.8
*	12 Nov 94:	Version	4.7
*	08 Nov 94:	Version	4.6
*	07 Nov 94:	Version	4.5
*	06 Nov 94:	Version	4.4
*	05 Nov 94:	Version	4.3
*	23 Oct 94:	Version	4.2
*	23 Oct 94:	Version	4.1
*	23 Oct 94:	Version	3.25
*	22 Oct 94:	Version	3.24
*	20 Oct 94:	Version	3.23
*	19 Oct 94:	Version	3.22
*	14 Oct 94:	Version	3.21
*	01 Oct 94:	Version	3.20
*	31 Aug 94:	Version	3.19
*	19 Aug 94:	Version	3.18
*	28 Jun 94:	Version	3.17
*	09 Jun 94:	Version	3.16
*	06 Jun 94:	Version	3.15
*	04 Jun 94:	Version	3.14
*	31 May 94:	Version	3.13
*	27 Apr 94:	Version	3.12
*	27 Apr 94:	Version	3.11
*	19 Apr 94:	Version	3.10
*	18 Apr 94:	Version	3.9
*	17 Apr 94:	Version	3.8
*	16 Apr 94:	Version	3.7
*	15 Apr 94:	Version	3.6
*	10 Apr 94:	Version	3.5
*	10 Apr 94:	Version	3.4
*	08 Apr 94:	Version	3.3
*	07 Apr 94:	Version	3.2
*	06 Apr 94:	Version	3.1
*	05 Apr 94:	Version	2.32
*	05 Apr 94:	Version	2.31
*	31 Mar 94:	Version	2.30
*	29 Mar 94:	Version	2.29
*	17 Mar 94:	Version	2.28
*	16 Mar 94:	Version	2.27
*	11 Mar 94:	Version	2.26
*	10 Mar 94:	Version	2.25
*	09 Mar 94:	Version	2.24
*	08 Mar 94:	Version	2.23
*	04 Mar 94:	Version	2.22
*	03 Mar 94:	Version	2.21
*	17 Feb 94:	Version	2.20
*	16 Feb 94:	Version	2.19
*	16 Feb 94:	Version	2.18
*	15 Feb 94:	Version	2.17
*	13 Feb 94:	Version	2.16
*	10 Feb 94:	Version	2.15
*	03 Feb 94:	Version	2.14
*	01 Feb 94:	Version	2.13
*	31 Jan 94:	Version	2.12
*	28 Jan 94:	Version	2.11
*	21 Jan 94:	Version	2.10
*	17 Jan 94:	Version	2.9
*	16 Jan 94:	Version	2.8
*	13 Jan 94:	Version	2.7
*	12 Jan 94:	Version	2.6
*	12 Jan 94:	Version	2.5
*	09 Jan 94:	Version	2.4
*	21 Dec 93:	Version	2.3
*	04 Dec 93:	Version	2.2
*	26 Nov 93:	Version	2.1
*	22 Nov 93:	Version	1.59
*	17 Nov 93:	Version	1.58
*	16 Nov 93:	Version	1.57
*	15 Nov 93:	Version	1.56
*	14 Nov 93:	Version	1.55
*	14 Nov 93:	Version	1.54
*	12 Nov 93:	Version	1.53
*	11 Nov 93:	Version	1.52
*	06 Nov 93:	Version	1.51
*	26 Oct 93:	Version	1.50
*	23 Oct 93:	Version	1.49
*	15 Oct 93:	Version	1.48
*	15 Oct 93:	Version	1.47
*	14 Oct 93:	Version	1.46
*	29 Sep 93:	Version	1.45
*	24 Sep 93:	Version	1.44
*	17 Sep 93:	Version	1.43
*	14 Sep 93:	Version	1.42
*	01 Sep 93:	Version	1.41
*	18 Aug 93:	Version	1.40
*	16 Aug 93:	Version	1.39
*	28 Jul 93:	Version	1.38
*	24 Jul 93:	Version	1.37
*	10 Jul 93:	Version	1.36
*	05 Jul 93:	Version	1.35
*	04 Jul 93:	Version	1.34
*	30 Jun 93:	Version	1.33
*	29 Jun 93:	Version	1.32
*	16 Jun 93:	Version	1.31
*	12 Jun 93:	Version	1.30
*	10 Jun 93:	Version	1.29
*	09 Jun 93:	Version	1.28
*	08 Jun 93:	Version	1.27
*	06 Jun 93:	Version	1.26
*	06 Jun 93:	Version	1.25
*	05 Jun 93:	Version	1.24
*	04 Jun 93:	Version	1.23
*	02 Jun 93:	Version	1.22
*	02 Jun 93:	Version	1.21
*	31 May 93:	Version	1.20
*	31 May 93:	Version	1.19
*	29 May 93:	Version	1.18
*	25 May 93:	Version	1.17
*	25 May 93:	Version	1.16
*	24 May 93:	Version	1.15
*	22 May 93:	Version	1.14
*	17 May 93:	Version	1.13
*	16 May 93:	Version	1.12
*	16 May 93:	Version	1.11
*	15 May 93:	Version	1.10
*	14 May 93:	Version	1.9
*	14 May 93:	Version	1.8
*	13 May 93:	Version	1.7
*	11 May 93:	Version	1.6
*	09 May 93:	Version	1.5
*	08 May 93:	Version	1.4
*	07 May 93:	Version	1.3
*	05 May 93:	Version	1.2
*	20 Apr 93:	Version	1.1	first ASA release
*	05 Apr 93:	VFSR	9.4
*	04 Apr 93:	VFSR	9.3
*	22 Mar 93:	VFSR	9.1
*	05 Mar 93:	VFSR	8.2
*	27 Feb 93:	VFSR	8.1
*	18 Feb 93:	VFSR	7.7
*	15 Feb 93:	VFSR	7.6
*	07 Feb 93:	VFSR	7.4
*	04 Feb 93:	VFSR	7.3
*	01 Feb 93:	VFSR	7.1
*	28 Jan 93:	VFSR	6.46
*	18 Jan 93:	VFSR	6.40
*	01 Jan 93:	Version	1.0	development stage of ASA
*	30 Dec 92:	VFSR	6.38
*	17 Dec 92:	VFSR	6.35
*	13 Dec 92:	VFSR	6.34
*	09 Dec 92:	VFSR	6.33
*	07 Dec 92:	VFSR	6.30
*	03 Dec 92:	VFSR	6.25
*	30 Nov 92:	VFSR	6.20
*	19 Nov 92:	Beta VFSR
*	05 Nov 92:	Initial C-language GNU version of VFSR
*	Jan 1991:	Created C-language version of VFSR
*	1987:		Created RATFOR/FORTRAN version of VFSR
========================================================================
